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-значение проверки гипотезы.
Смотрите также
Примечания
Значение p-value является точным, если размеры выборок меньше 55 и нет совпадений, в противном случае используется нормальная аппроксимация для p-value.
Начиная с SciPy 1.9,
np.matrixвходные данные (не рекомендуется для нового кода) преобразуются вnp.ndarrayперед выполнением вычисления. В этом случае результатом будет скаляр илиnp.ndarrayподходящей формы вместо 2Dnp.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)
Сначала применяем
ansarito 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)