Як створити графік 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()
Ми бачимо, що точки лежать в основному вздовж прямої діагональної лінії з деякими незначними відхиленнями вздовж кожного з хвостів.
На основі цього графіка ми припустимо, що цей набір даних розподілений нормально.
Зауважте, що ми також можемо використовувати аргументи кольору та розміру, щоб змінити колір і розмір точок на графіку, якщо бажаємо:
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