Как выполнить тест андерсона-дарлинга в r


Тест Андерсона-Дарлинга — это критерий согласия, который измеряет, насколько хорошо ваши данные соответствуют заданному распределению. Этот тест чаще всего используется для определения того, соответствуют ли ваши данные нормальному распределению .

Этот тип теста полезен для проверки нормальности, которая часто используется во многих статистических тестах, включая регрессию, дисперсионный анализ, 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-значение : соответствующее 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 не соответствует нормальному распределению.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *