scipy.stats.

brunnermunzel#

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

Выполнить тест Бруннера-Мунзеля на выборках x и y.

Тест Бруннера-Мунцеля — это непараметрический тест нулевой гипотезы о том, что когда значения берутся по одному из каждой группы, вероятности получения больших значений в обеих группах равны. В отличие от U-критерия Уилкоксона-Манна-Уитни, он не требует предположения об эквивариантности двух групп. Обратите внимание, что он не предполагает одинаковости распределений. Этот тест работает с двумя независимыми выборками, которые могут иметь разные размеры.

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

Массив выборок, должен быть одномерным.

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

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

  • 'two-sided'

  • 'less': односторонний

  • 'greater': односторонний

распределение{‘t’, ‘normal’}, опционально

Определяет, как получить p-значение. Доступны следующие варианты (по умолчанию 't'):

  • ‘t’: получить p-значение по t-распределению

  • 'normal': получить p-значение по стандартному нормальному распределению.

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

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

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

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

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

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

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

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

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

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

Статистика W Бруннера-Мунцера.

p-значениеfloat

p-значение, предполагающее t-распределение. Одностороннее или двустороннее, в зависимости от выбора альтернатива и распределение.

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

mannwhitneyu

Ранговый критерий Манна-Уитни для двух выборок.

Примечания

Бруннер и Мунцель рекомендовали оценивать p-значение с помощью t-распределения, когда размер данных составляет 50 или меньше. Если размер меньше 10, лучше использовать перестановочный тест Бруннера-Мунцеля (см. [2]).

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

Ссылки

[1]

Brunner, E. и Munzel, U. "Непараметрическая проблема Бенхренса-Фишера: асимптотическая теория и аппроксимация для малых выборок". Biometrical Journal. Том 42(2000): 17-25.

[2]

Neubert, K. и Brunner, E. “A studentized permutation test for the non-parametric Behrens-Fisher problem”. Computational Statistics and Data Analysis. Vol. 51(2007): 5192-5204.

Примеры

>>> from scipy import stats
>>> x1 = [1,2,1,1,1,1,1,1,1,1,2,4,1,1]
>>> x2 = [3,3,4,3,1,2,3,1,1,5,4]
>>> w, p_value = stats.brunnermunzel(x1, x2)
>>> w
3.1374674823029505
>>> p_value
0.0057862086661515377