Як виконати тест андерсона-дарлінга в r
Тест Андерсона-Дарлінга — це тест на відповідність, який визначає, наскільки ваші дані відповідають визначеному розподілу. Цей тест найчастіше використовується для визначення того, чи відповідають ваші дані нормальному розподілу .
Цей тип перевірки корисний для перевірки нормальності, яка є загальновживаним припущенням у багатьох статистичних тестах, включаючи регресію, ANOVA, t-тести та багато інших.
Приклад: тест Андерсона-Дарлінга в R
Щоб виконати тест Андерсона-Дарлінга в R, ми можемо використати функцію ad.test() у бібліотеці nortest .
Наступний код ілюструє, як виконати тест AD, щоб перевірити, чи відповідає вектор зі 100 значень нормальному розподілу:
#install (if not already installed) and load nortest library install.packages('nortest') library(nortest) #make this example reproducible set.seed(1) #defined vector of 100 values that are normally distributed x <- rnorm(100, 0, 1) #conduct Anderson-Darling Test to test for normality ad.test(x) # Anderson-Darling normality test # #data:x #A = 0.16021, p-value = 0.9471
Цей тест повертає два значення:
A : тестова статистика.
p-value : відповідне p-значення тестової статистики.
Нульова гіпотеза тесту AD полягає в тому, що дані відповідають нормальному розподілу. Отже, якщо наше значення p для тесту менше, ніж наш рівень значущості (звичайні варіанти 0,10, 0,05 і 0,01), ми можемо відхилити нульову гіпотезу та зробити висновок, що у нас є достатньо доказів, щоб стверджувати, що наші дані не відповідають нормальна траєкторія. розподіл.
У цьому випадку наше p-значення становить 0,9471. Оскільки це число не нижче нашого рівня значущості (скажімо, 0,05), ми не маємо достатніх доказів, щоб відхилити нульову гіпотезу. Можна з упевненістю сказати, що наші дані відповідають нормальному розподілу, що має сенс, враховуючи, що ми згенерували 100 значень, які відповідають нормальному розподілу із середнім значенням 0 і стандартним відхиленням 1 за допомогою функції rnorm() у R.
Пов’язане: посібник із dnorm, pnorm, qnorm і rnorm у R
Натомість припустімо, що ми генеруємо вектор зі 100 значень, який відповідає рівномірному розподілу між 0 і 1. Ми можемо знову запустити тест AD, щоб перевірити, чи відповідають ці дані нормальному розподілу:
#make this example reproducible set.seed(1) #defined vector of 100 values that are uniformly distributed x <- runif(100, 0, 1) #conduct Anderson-Darling Test to test for normality ad.test(x) # Anderson-Darling normality test # #data:x #A = 1.1472, p-value = 0.005086
Наша статистика тесту А дорівнює 1,1472, а відповідне значення p дорівнює 0,005086. Оскільки наше p-значення менше 0,05, ми можемо відхилити нульову гіпотезу та зробити висновок, що у нас є достатньо доказів того, що ці дані не відповідають нормальному розподілу. Це результат, який ми очікували, оскільки ми знаємо, що наші дані насправді мають рівномірний розподіл.
Виконання тесту Андерсона-Дарлінга на стовпці кадру даних у R
Ми також можемо виконати тест AD для певного стовпця кадру даних у R. Наприклад, розглянемо вбудований набір даних райдужної оболонки:
#view first six lines of iris dataset
head(iris)
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa
Припустімо, ми хочемо знати, чи нормально розподілена змінна Petal.Width . Спочатку ми могли б створити гістограму, щоб візуалізувати розподіл значень:
hist(iris$Petal.Width, col = 'steelblue', main = 'Distribution of Petal Widths', xlab = 'Petal Width')
Здається, що дані не розподіляються нормально. Щоб підтвердити це, ми можемо виконати тест AD, щоб формально перевірити, чи дані розподіляються нормально чи ні:
#conduct Anderson-Darling Test to test for normality
ad.test(iris$Petal.Width)
# Anderson-Darling normality test
#
#data: iris$Petal.Width
#A = 5.1057, p-value = 1.125e-12
P-значення тесту менше 0,05, тому ми маємо достатньо доказів, щоб відхилити нульову гіпотезу та зробити висновок, що Petal.Width не відповідає нормальному розподілу.