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


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

Этот тест чаще всего используется для определения того, соответствуют ли ваши данные нормальному распределению .

Этот тип теста полезен для проверки на нормальность, которая является распространенным предположением, используемым во многих статистических тестах, включая регрессию , дисперсионный анализ , t-тесты и многие другие.

Пример: тест Андерсона-Дарлинга в Python

Чтобы провести тест Андерсона-Дарлинга в Python, мы можем использовать функцию anderson() из библиотеки scipy.stats, которая использует следующий синтаксис:

Андерсон (х, расстояние = 'норма')

куда:

  • x : массив выборочных данных
  • dist : тип дистрибутива для тестирования. По умолчанию используется «норма», но вы также можете указать «экспон» или «логистика».

Например, вот как выполнить тест Андерсона-Дарлинга на выборке из 50 нормально распределенных случайных величин:

import numpy as np

#create data
np.random.seed(0)
data = np.random.normal(size=50)

#perform Anderson-Darling Test 
from scipy.stats import anderson
anderson(data)

AndersonResult( statistic =0.15006999533388665,
 critical_values =array([0.538, 0.613, 0.736, 0.858, 1.021]),
 significance_level =array([15. , 10. , 5. , 2.5, 1. ]))

Статистика теста равна 0,150.Мы можем сравнить это значение с каждым критическим значением, соответствующим каждому уровню значимости, чтобы увидеть, значимы ли результаты теста. Например:

  • Критическое значение для α = 0,01 равно 1,021.Поскольку тестовая статистика (0,150) не превышает этого критического значения, результаты не являются значимыми при уровне значимости 0,01.
  • Критическое значение для α = 0,025 равно 0,858.Поскольку тестовая статистика (0,150) не превышает этого критического значения, результаты не являются значимыми при уровне значимости 0,025.

И так далее.

Мы видим, что результаты теста не являются значимыми на любом уровне значимости, а это означает, что мы не будем отвергать нулевую гипотезу теста. Таким образом, у нас нет достаточных доказательств того, что данные выборки не распределены нормально.

Этот результат не должен удивлять, учитывая, что мы использовали функцию np.rand.normal() для создания выборки из 50 нормально распределенных значений.

Вместо этого рассмотрим, если бы мы выполнили тест Андерсона-Дарлинга на выборке из 50 случайных целых чисел от 0 до 10:

import numpy as np

#create data
np.random.seed(0)
data = np.random.randint(0, 10, size=50)

#perform Anderson-Darling Test 
from scipy.stats import anderson
anderson(data)

AndersonResult( statistic =1.1926463985076836,
 critical_values =array([0.538, 0.613, 0.736, 0.858, 1.021]),
 significance_level =array([15. , 10. , 5. , 2.5, 1. ]))

Тестовая статистика 1.1926.Мы можем сравнить это значение с каждым критическим значением, соответствующим каждому уровню значимости, чтобы увидеть, значимы ли результаты теста. Например:

  • Критическое значение для α = 0,01 равно 1,021.Поскольку тестовая статистика (1,1926) превышает это критическое значение, результаты значимы при уровне значимости 0,01.
  • Критическое значение для α = 0,025 равно 0,858.Поскольку тестовая статистика (1,1926) превышает это критическое значение, результаты значимы на уровне значимости 0,025.

И так далее.

Мы видим, что результаты теста значимы на каждом уровне значимости, а это означает, что мы отвергнем нулевую гипотезу теста независимо от того, какой уровень значимости мы выберем. Таким образом, у нас есть достаточно доказательств, чтобы сказать, что данные выборки не распределены нормально.

Этот результат также не должен удивлять, учитывая, что мы использовали функцию np.rand.randint() для генерации выборки из 50 случайных целых чисел от 0 до 10, которые вряд ли будут следовать нормальному распределению.

Вы можете найти больше руководств по Python здесь .

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.