Як створити графік qq у ggplot2 (з прикладом)


Діаграма QQ, скорочення від «квантиль-квантиль», використовується для оцінки того, чи набір даних потенційно походить із теоретичного розподілу.

У більшості випадків цей тип графіка використовується, щоб визначити, чи відповідає набір даних нормальному розподілу.

Якщо дані розподілені нормально, точки на графіку QQ лежатимуть на прямій діагональній лінії.

І навпаки, якщо точки суттєво відхиляються від прямої діагональної лінії, то дані, швидше за все, будуть нормально розподілені.

Щоб створити діаграму QQ у ggplot2, ви можете використовувати функції stat_qq() і stat_qq_line() наступним чином:

 library (ggplot2)

ggplot(df, aes(sample=y)) +
  stat_qq() + 
  stat_qq_line()

У наступних прикладах показано, як використовувати цей синтаксис для створення діаграми QQ у двох різних сценаріях.

Приклад 1: графік QQ для нормальних даних

Наступний код показує, як створити нормально розподілений набір даних із 200 спостереженнями та створити діаграму QQ для набору даних у R:

 library (ggplot2)

#make this example reproducible
set. seeds (1)

#create some fake data that follows a normal distribution
df <- data. frame (y=rnorm(200))

#create QQ plot
ggplot(df, aes(sample=y)) +
  stat_qq() + 
  stat_qq_line()

Діаграма QQ у ggplot2

Ми бачимо, що точки лежать в основному вздовж прямої діагональної лінії з деякими незначними відхиленнями вздовж кожного з хвостів.

На основі цього графіка ми припустимо, що цей набір даних розподілений нормально.

Зауважте, що ми також можемо використовувати аргументи кольору та розміру, щоб змінити колір і розмір точок на графіку, якщо бажаємо:

 library (ggplot2)

#make this example reproducible
set. seeds (1)

#create some fake data that follows a normal distribution
df <- data. frame (y=rnorm(200))

#create QQ plot
ggplot(df, aes(sample=y)) +
  stat_qq(size= 2.5 , color=' red ') + 
  stat_qq_line() 

Приклад 2: графік QQ для ненормальних даних

У наступному коді показано, як створити графік QQ для набору даних, який відповідає експоненціальному розподілу з 200 спостереженнями:

 #make this example reproducible
set. seeds (1)

#create some fake data that follows an exponential distribution
df <- data. frame (y=rexp( 200 , rate= 3 ))

#create QQ plot
ggplot(df, aes(sample=y)) +
  stat_qq() + 
  stat_qq_line()

Бачимо, що точки значно відхиляються від діагональної лінії. Це чітко вказує на те, що набір даних не розподіляється нормально.

Це мало б мати сенс, враховуючи, що ми вказали, що дані мають відповідати експоненціальному розподілу.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в ggplot2:

Як побудувати кілька ліній у ggplot2
Як побудувати середнє значення та стандартне відхилення в ggplot2
Як змінити кольори лінії в ggplot2

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *