Главная       Скачать       Коммерческая поддержка       FAQ       Forum       О нас       Английская версия

U-критерий Манна-Уитни

U-критерий Манна-Уитни - непараметрический метод проверки гипотез, часто использующийся в качестве альтернативы t-тесту Стьюдента. Обычно этот тест используется для сравнения медиан двух распределений X и Y, не являющихся нормальными (отсутствие нормальности не позволяет применить t-тест). Для корректной работы теста требуется выполнение следующих условий:

Результатом работы теста являются три p-значения:

Замечание #1
Интересной особенностью теста является следующий факт: существует несколько взглядов на то, что же этот тест проверяет. Общепринятая интерпретация - проверка равенства медиан. Однако существуют и альтернативные интерпретации: например, можно U-тест рассматривать как проверку на равенство 0.5 вероятности того, что случайное значение из первый выборки превысит случайное значение из второй выборки. Ещё одной (очень редкой) интерпретацией является проверка двух распределений на совпадение. Здесь речь идет о том, что одной частью нуль-гипотезы является утверждение о равенстве медиан распределений, но есть и другая часть, предполагающая, что формы распределений совпадают. Обычно мы предполагаем, что нарушается именно первая часть нуль-гипотезы, однако тест отвергает всю нуль-гипотезу - и первую её часть, и вторую. Впрочем, в этом качестве U-критерий обычно не используется.

Критерий

В упрощенном изложении U-тест выглядит так. Обе выборки (размерами N и M) сливаются в один большой массив, который сортируется по возрастанию. При этом мы запоминаем, к какой выборке относится каждый элемент массива. После сортировки элементы заменяются их рангами - порядковыми номерами в массиве (от 1 до N+M). Ранги элементов из первой выборки суммируются, после чего рассчитывается U-значение:

Математическое ожидание U равно 0.5·N·M. Значения, близкие к этой величине, свидетельствуют о том, что медианы X и Y незначительно отличаются друг от друга. Большие отклонения от среднего значения говорят о значимых различиях. Зная квантили этого распределения, мы может определить уровень значимости, соответствующий полученному нами значению U.

Квантили распределения

Хотя распределение U является дискретным, при больших N и M оно может быть аппроксимировано нормальным распределением с математическим ожиданием 0.5·N·M и среднеквадратичным отклонением

Для многих практических применений этой аппроксимации бывает достаточно. В частности, она позволяет получать неплохие оценки для N, M > 10 и уровня значимости α = 0.05 (многие гипотезы проверяются именно при таких параметрах теста). Однако распределение U соответствует нормальному распределению только в окрестностях центральной точки (2-4 стандартных отклонения, в зависимости от N и M). За пределами этой области хвосты распределения уходят вниз более резко, чем хвосты нормального распределения. Это значит, что если мы попробуем использовать нормальную аппроксимацию, чтобы принимать решения в области α=0.001 и ниже, то мы можем ошибочно принять нуль-гипотезу, которую следовало бы отвергнуть. По этой причине все статистические пакеты не используют нормальную аппроксимацию для малых значений M и N. Не использует её и ALGLIB. Более того, ALGLIB не использует нормальную аппроксимацию даже для больших значений M и N. Вместо этого распределение U протабулировано для малых M и N (от 5 до 15), а для M, N > 15 используется асимптотическая аппроксимация. Этот метод позволяет получать p-значения с точностью, достаточной для большинства практических задач.

Замечание #2
Распределение U очень сложно аппроксимировать. Оно дискретное, его интегральная функция не разлагается ни в ряд, ни в цепные дроби. Поэтому код, вычисляющий квантили этого распределения, очень велик - более сотни килобайт. Я точно не знаю, как решают эту проблему другие (например в Matlab), но все же мне кажется, что лучше громоздкий код, чем никакого.

Несколько слов по поводу того, как были получены квантили распределения. Приятной особенностью распределения U является то, что в случае, если нуль-гипотеза верна, его интегральная функция может быть точно вычислена за конечное число шагов с использованием динамического программирования (замечу, что это верно для ряда дискретных распределений в непараметрической статистике). Таким образом, основной проблемой был выбор подходящей аппроксимации, с чем неплохо справились полиномы Чебышева.

Ссылки по теме

  1. 'Level of measurement', Wikipedia
  2. 'Hypothesis testing', Wikipedia
  3. 'P-value', Wikipedia
  4. 'Mann-Whitney U test', Wikipedia

Manual entries

C++ mannwhitneyu subpackage   
C# mannwhitneyu subpackage   

This article is intended for personal use only.

Скачать ALGLIB

C#

Исходный код на C#

Downloads page

 

C++

Исходный код на C++

Downloads page

 

C++, арифметика высокой точности

Исходный код на C++, использующий библиотеки MPFR/GMP.

Исходный код GMP доступен на сайте gmplib.org. Исходный код MPFR доступен на сайте www.mpfr.org.

Downloads page

 

FreePascal

Исходный код на Free Pascal.

Downloads page

 

Delphi

Исходный код на Delphi.

Downloads page

 

VB.NET

Исходный код на VB.NET.

Downloads page

 

VBA

Исходный код на VBA.

Downloads page

 

Python

Исходный код на Python (CPython и IronPython).

Downloads page

 

 

ALGLIB® - numerical analysis library, 1999-2017.
ALGLIB is registered trademark of the ALGLIB Project.