scipy.stats.

ansari#

scipy.stats.ansari(x, y, альтернатива='two-sided', *, ось=0, nan_policy='propagate', keepdims=False)[источник]#

Выполнить тест Ансари-Брэдли для равных параметров масштаба.

Тест Ансари-Брэдли ([1], [2]) - это непараметрический тест на равенство параметра масштаба распределений, из которых были взяты две выборки. Нулевая гипотеза утверждает, что отношение масштаба распределения, лежащего в основе x к масштабу распределения, лежащего в основе y равен 1.

Параметры:
x, yarray_like

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

альтернатива{‘two-sided’, ‘less’, ‘greater’}, необязательный

Определяет альтернативную гипотезу. По умолчанию 'two-sided'. Доступны следующие опции:

  • ‘two-sided’: отношение масштабов не равно 1.

  • ‘less’: отношение масштабов меньше 1.

  • ‘greater’: отношение масштабов больше 1.

Добавлено в версии 1.7.0.

осьint или None, по умолчанию: 0

Если это целое число, ось входных данных, по которой вычисляется статистика. Статистика каждого среза по оси (например, строки) входных данных появится в соответствующем элементе вывода. Если None, вход будет сведён в одномерный массив перед вычислением статистики.

nan_policy{‘propagate’, ‘omit’, ‘raise’}

Определяет, как обрабатывать входные значения NaN.

  • propagate: если NaN присутствует в срезе оси (например, строке), вдоль которой вычисляется статистика, соответствующая запись вывода будет NaN.

  • omit: NaN будут пропущены при выполнении расчета. Если в срезе оси, вдоль которого вычисляется статистика, остается недостаточно данных, соответствующая запись вывода будет NaN.

  • raise: если присутствует NaN, то ValueError будет вызвано исключение.

keepdimsbool, по умолчанию: False

Если установлено значение True, оси, которые были сокращены, остаются в результате как размерности с размером один. С этой опцией результат будет корректно транслироваться относительно входного массива.

Возвращает:
статистикаfloat

Статистика теста Ансари-Брэдли.

p-значениеfloat

p-значение проверки гипотезы.

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

fligner

Непараметрический тест на равенство k дисперсий

mood

Непараметрический тест на равенство двух параметров масштаба

Примечания

Значение p-value является точным, если размеры выборок меньше 55 и нет совпадений, в противном случае используется нормальная аппроксимация для p-value.

Начиная с SciPy 1.9, np.matrix входные данные (не рекомендуется для нового кода) преобразуются в np.ndarray перед выполнением вычисления. В этом случае результатом будет скаляр или np.ndarray подходящей формы вместо 2D np.matrix. Аналогично, хотя маскированные элементы маскированных массивов игнорируются, результатом будет скаляр или np.ndarray вместо маскированного массива с mask=False.

Ссылки

[1]

Ansari, A. R. и Bradley, R. A. (1960) Ранговые критерии для дисперсий, Annals of Mathematical Statistics, 31, 1174-1189.

[2]

Спрент, Питер и Н.К. Смитон. Прикладные непараметрические статистические методы. 3-е изд. Chapman and Hall/CRC. 2001. Раздел 5.8.2.

[3]

Nathaniel E. Helwig "Nonparametric Dispersion and Equality Tests" на http://users.stat.umn.edu/~helwig/notes/npde-Notes.pdf

Примеры

>>> import numpy as np
>>> from scipy.stats import ansari
>>> rng = np.random.default_rng()

Для этих примеров мы создадим три случайных набора данных. Первые два, размером 35 и 25, взяты из нормального распределения со средним 0 и стандартным отклонением 2. Третий набор данных имеет размер 25 и взят из нормального распределения со стандартным отклонением 1.25.

>>> x1 = rng.normal(loc=0, scale=2, size=35)
>>> x2 = rng.normal(loc=0, scale=2, size=25)
>>> x3 = rng.normal(loc=0, scale=1.25, size=25)

Сначала применяем ansari to x1 и x2. Эти выборки взяты из одного и того же распределения, поэтому мы ожидаем, что тест Ансари-Брэдли не должен привести нас к выводу, что масштабы распределений различны.

>>> ansari(x1, x2)
AnsariResult(statistic=541.0, pvalue=0.9762532927399098)

С p-значением, близким к 1, мы не можем заключить, что существует значительная разница в масштабах (как и ожидалось).

Теперь примените тест к x1 и x3:

>>> ansari(x1, x3)
AnsariResult(statistic=425.0, pvalue=0.0003087020407974518)

Вероятность наблюдения такого экстремального значения статистики при нулевой гипотезе о равенстве масштабов составляет всего 0,03087%. Мы рассматриваем это как свидетельство против нулевой гипотезы в пользу альтернативной: масштабы распределений, из которых были взяты выборки, не равны.

Мы можем использовать альтернатива параметр для выполнения одностороннего теста. В приведенном выше примере масштаб x1 больше чем x3 и поэтому отношение масштабов x1 и x3 больше 1. Это означает, что p-значение, когда alternative='greater' должно быть близко к 0, и, следовательно, мы должны быть в состоянии отвергнуть нулевую гипотезу:

>>> ansari(x1, x3, alternative='greater')
AnsariResult(statistic=425.0, pvalue=0.0001543510203987259)

Как мы видим, p-значение действительно довольно низкое. Использование alternative='less' должно, таким образом, давать большое p-значение:

>>> ansari(x1, x3, alternative='less')
AnsariResult(statistic=425.0, pvalue=0.9998643258449039)