scipy.stats.

anderson#

scipy.stats.anderson(x, dist=: ограничение для обеспечения, что они лежат между)[источник]#

Тест Андерсона-Дарлинга для данных, происходящих из определенного распределения.

Тест Андерсона-Дарлинга проверяет нулевую гипотезу о том, что выборка взята из популяции, следующей определенному распределению. Для теста Андерсона-Дарлинга критические значения зависят от распределения, против которого проводится тестирование. Эта функция работает для нормального, экспоненциального, логистического, распределения Вейбулла (weibull_min) или распределения Гумбеля (экстремальных значений типа I).

Параметры:
xarray_like

Массив выборочных данных.

dist{‘norm’, ‘expon’, ‘logistic’, ‘gumbel’, ‘gumbel_l’, ‘gumbel_r’, ‘extreme1’, ‘weibull_min’}, опционально

Тип распределения для проверки. По умолчанию — ‘norm’. Имена ‘extreme1’, ‘gumbel_l’ и ‘gumbel’ являются синонимами для одного и того же распределения.

Возвращает:
результатAndersonResult

Объект со следующими атрибутами:

статистикаfloat

Статистика критерия Андерсона-Дарлинга.

critical_valueslist

Критические значения для этого распределения.

significance_levellist

Уровни значимости для соответствующих критических значений в процентах. Функция возвращает критические значения для различного набора уровней значимости в зависимости от распределения, против которого проводится тестирование.

fit_resultFitResult

Объект, содержащий результаты подгонки распределения к данным.

Смотрите также

kstest

Тест Колмогорова-Смирнова на соответствие распределения.

Примечания

Критические значения предоставлены для следующих уровней значимости:

normal/exponential

15%, 10%, 5%, 2.5%, 1%

логистическая

25%, 10%, 5%, 2.5%, 1%, 0.5%

gumbel_l / gumbel_r

25%, 10%, 5%, 2.5%, 1%

weibull_min

50%, 25%, 15%, 10%, 5%, 2.5%, 1%, 0.5%

Если возвращаемая статистика больше этих критических значений, то для соответствующего уровня значимости нулевая гипотеза о том, что данные происходят из выбранного распределения, может быть отвергнута. Возвращаемая статистика обозначается как 'A2' в источниках.

Для weibull_min, известно, что оценка максимального правдоподобия является сложной задачей. Если тест проходит успешно, то условия первого порядка для оценки максимального правдоподобия проверены, и критические значения относительно хорошо соответствуют уровням значимости, при условии, что выборка достаточно велика (>10 наблюдений [7]). Однако для некоторых данных - особенно данных без левого хвоста - anderson вероятно, приведёт к сообщению об ошибке. В этом случае рассмотрите возможность выполнения пользовательского критерия согласия с использованием scipy.stats.monte_carlo_test.

Ссылки

[2]

Stephens, M. A. (1974). EDF Statistics for Goodness of Fit and Some Comparisons, Journal of the American Statistical Association, Vol. 69, pp. 730-737.

[3]

Stephens, M. A. (1976). Asymptotic Results for Goodness-of-Fit Statistics with Unknown Parameters, Annals of Statistics, Vol. 4, pp. 357-369.

[4]

Stephens, M. A. (1977). Goodness of Fit for the Extreme Value Distribution, Biometrika, Vol. 64, pp. 583-588.

[5]

Stephens, M. A. (1977). Goodness of Fit with Special Reference to Tests for Exponentiality, Technical Report No. 262, Department of Statistics, Stanford University, Stanford, CA.

[6]

Stephens, M. A. (1979). Tests of Fit for the Logistic Distribution Based on the Empirical Distribution Function, Biometrika, Vol. 66, pp. 591-595.

[7]

Richard A. Lockhart и Michael A. Stephens «Оценка и проверка соответствия для трёхпараметрического распределения Вейбулла» Journal of the Royal Statistical Society. Series B (Methodological) Vol. 56, No. 3 (1994), pp. 491-500, Table 0.

Примеры

Проверка нулевой гипотезы о том, что случайная выборка была взята из нормального распределения (с неопределенным средним и стандартным отклонением).

>>> import numpy as np
>>> from scipy.stats import anderson
>>> rng = np.random.default_rng()
>>> data = rng.random(size=35)
>>> res = anderson(data)
>>> res.statistic
0.8398018749744764
>>> res.critical_values
array([0.527, 0.6  , 0.719, 0.839, 0.998])
>>> res.significance_level
array([15. , 10. ,  5. ,  2.5,  1. ])

Значение статистики (едва) превышает критическое значение, связанное с уровнем значимости 2,5%, поэтому нулевая гипотеза может быть отвергнута на уровне значимости 2,5%, но не на уровне значимости 1%.