scipy.stats.

ranksums#

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

Вычислить статистику ранговой суммы Уилкоксона для двух выборок.

Критерий суммы рангов Уилкоксона проверяет нулевую гипотезу о том, что два набора измерений взяты из одного распределения. Альтернативная гипотеза состоит в том, что значения в одной выборке с большей вероятностью будут больше, чем значения в другой выборке.

Этот тест следует использовать для сравнения двух выборок из непрерывных распределений. Он не обрабатывает связи между измерениями в x и y. Для обработки связей и необязательной поправки на непрерывность см. scipy.stats.mannwhitneyu.

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

Данные из двух выборок.

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

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

  • 'two-sided': одно из распределений (лежащее в основе x или y) стохастически больше другого.

  • ‘less’: распределение, лежащее в основе x стохастически меньше распределения, лежащего в основе y.

  • ‘greater’: распределение, лежащее в основе x стохастически больше чем распределение, лежащее в основе y.

Добавлено в версии 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-значение теста.

Примечания

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

Ссылки

Примеры

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

>>> import numpy as np
>>> from scipy.stats import ranksums
>>> rng = np.random.default_rng()
>>> sample1 = rng.uniform(-1, 1, 200)
>>> sample2 = rng.uniform(-0.5, 1.5, 300) # a shifted distribution
>>> ranksums(sample1, sample2)
RanksumsResult(statistic=-7.887059,
               pvalue=3.09390448e-15) # may vary
>>> ranksums(sample1, sample2, alternative='less')
RanksumsResult(statistic=-7.750585297581713,
               pvalue=4.573497606342543e-15) # may vary
>>> ranksums(sample1, sample2, alternative='greater')
RanksumsResult(statistic=-7.750585297581713,
               pvalue=0.9999999999999954) # may vary

P-значение меньше 0.05 указывает, что этот тест отвергает гипотезу на уровне значимости 5%.