mood#
- scipy.stats.mood(x, y, ось=0, альтернатива='two-sided', *, nan_policy='propagate', keepdims=False)[источник]#
Выполнить тест Муда на равенство параметров масштаба.
Двухвыборочный тест Муда для параметров масштаба — это непараметрический тест для нулевой гипотезы о том, что две выборки взяты из одного и того же распределения с одинаковым параметром масштаба.
- Параметры:
- x, yarray_like
Массивы выборочных данных. Всего должно быть не менее трёх наблюдений.
- осьint или None, по умолчанию: 0
Если это целое число, ось входных данных, по которой вычисляется статистика. Статистика каждого среза по оси (например, строки) входных данных появится в соответствующем элементе вывода. Если
None, вход будет сведён в одномерный массив перед вычислением статистики.- альтернатива{‘two-sided’, ‘less’, ‘greater’}, необязательный
Определяет альтернативную гипотезу. По умолчанию 'two-sided'. Доступны следующие опции:
‘two-sided’: масштабы распределений, лежащих в основе x и y различаются.
'less': масштаб распределения, лежащего в основе x меньше, чем масштаб распределения, лежащего в основе y.
‘greater’: масштаб распределения, лежащего в основе x больше чем масштаб распределения, лежащего в основе y.
Добавлено в версии 1.7.0.
- nan_policy{‘propagate’, ‘omit’, ‘raise’}
Определяет, как обрабатывать входные значения NaN.
propagate: если NaN присутствует в срезе оси (например, строке), вдоль которой вычисляется статистика, соответствующая запись вывода будет NaN.omit: NaN будут пропущены при выполнении расчета. Если в срезе оси, вдоль которого вычисляется статистика, остается недостаточно данных, соответствующая запись вывода будет NaN.raise: если присутствует NaN, тоValueErrorбудет вызвано исключение.
- keepdimsbool, по умолчанию: False
Если установлено значение True, оси, которые были сокращены, остаются в результате как размерности с размером один. С этой опцией результат будет корректно транслироваться относительно входного массива.
- Возвращает:
- resSignificanceResult
Объект, содержащий атрибуты:
- статистикаскаляр или ndarray
Z-оценка для проверки гипотезы. Для одномерных входных данных возвращается скаляр.
- p-значениескалярный ndarray
P-значение для проверки гипотезы.
Смотрите также
Примечания
Предполагается, что данные взяты из вероятностных распределений
f(x)иf(x/s) / sсоответственно, для некоторой функции плотности вероятности f. Нулевая гипотеза состоит в том, чтоs == 1.Для многомерных массивов, если входы имеют формы
(n0, n1, n2, n3)и(n0, m1, n2, n3), тогда еслиaxis=1, результирующие значения z и p будут иметь форму(n0, n2, n3). Обратите внимание, чтоn1иm1не обязательно должны быть равны, но другие размерности должны.Начиная с SciPy 1.9,
np.matrixвходные данные (не рекомендуется для нового кода) преобразуются вnp.ndarrayперед выполнением вычисления. В этом случае результатом будет скаляр илиnp.ndarrayподходящей формы вместо 2Dnp.matrix. Аналогично, хотя маскированные элементы маскированных массивов игнорируются, результатом будет скаляр илиnp.ndarrayвместо маскированного массива сmask=False.Ссылки
- [1] Mielke, Paul W. "Note on Some Squared Rank Tests with Existing Ties."
Technometrics, vol. 9, no. 2, 1967, pp. 312-14. JSTOR, https://doi.org/10.2307/1266427. Доступ 18 мая 2022 г.
Примеры
>>> import numpy as np >>> from scipy import stats >>> rng = np.random.default_rng() >>> x2 = rng.standard_normal((2, 45, 6, 7)) >>> x1 = rng.standard_normal((2, 30, 6, 7)) >>> res = stats.mood(x1, x2, axis=1) >>> res.pvalue.shape (2, 6, 7)
Найдите количество точек, где разница в масштабе не значима:
>>> (res.pvalue > 0.1).sum() 78
Выполнить тест с различными масштабами:
>>> x1 = rng.standard_normal((2, 30)) >>> x2 = rng.standard_normal((2, 35)) * 10.0 >>> stats.mood(x1, x2, axis=1) SignificanceResult(statistic=array([-5.76174136, -6.12650783]), pvalue=array([8.32505043e-09, 8.98287869e-10]))