Это небольшая статья не ставит себе целью подробно и математически строго изложить все подробности. Не будет она и практическим описанием алгоритмической стороны дела, так как статьи об этом пребывают в интернете в огромном количестве и без моей помощи. Это скорее попытка подсветить основные недоразумения и оградить от самых распространенных ошибок. К сожалению, приходится констатировать, что популярность и простота критерия Манна-Уитни, как это часто бывает, в итоге обернулась против него самого, что по понятным причинам стало особенно заметно в последнее время. Причем ошибки кроются не в вычислениях, а в неправильном понимании того, для чего собственно этот тест предназначен.

Далее предполагается, что читатель знаком с основами классической методологии статистической проверки гипотез и соответствующей терминологией.

В 1947 году появилась статья (H. Mann, D. Whitney) (1), где авторы предложили критерий, способный различать два непрерывных распределения. Таким образом, его нулевую гипотезу можно формулировать так: «Обе выборки порождены одним и тем же распределением», т.е. H0: F(t) = G(t), где F() и G() - функции распределения непрерывных случайных величин X и Y, соответственно. Обратите внимание, мы сейчас формулируем равенство именно в терминах функций распределения (cumulative distribution functions, CDF), а не плотностей (probability density functions, PDF).

Что с альтернативной гипотезой? Здесь и начинается путаница. В оригинальной статье альтернатива представлена следующим образом: HA: F(t) > G(t) (или F(t) < G(t), но далее мы, без потери общности, будем рассматривать только первый вариант). Итак, в авторской версии альтернатива состоит в том, что одна из функций распределения мажорирует другую. В более привычном для практики виде это означает, что плотность случайной величины X "смещена" влево относительно плотности Y (рис. 1).

 Рисунок 1. СЛЕВА: функции двух бета-распределений, не пересекающихся на интервале (0, 1), F>G. СПРАВА: плотности этих распределений. Видно, что формы кривых не идентичны
Рисунок 1. СЛЕВА: функции двух бета-распределений, не пересекающихся на интервале (0, 1), F>G. СПРАВА: плотности этих распределений. Видно, что формы кривых не идентичны

На всякий случай заметим, что мажорирование F() над G() совсем не обязывает эти функции и соответствующие им плотности иметь одинаковую форму. Это важно, потому что зачастую под сдвигом распределений подразумевают только «параллельный» сдвиг, когда обе плотности по своей форме оказываются клонами друг друга. Альтернативная гипотеза критерия Манна-Уитни не накладывает такого ограничения.

Про неравенство F(t) > G(t) принято говорить, что Y стохастически доминирует над X. Из этого неравенства, помимо всего прочего, вытекает, что вероятность извлечь случайную пару наблюдений X и Y, в которой Y>X, превосходит вероятность получить пару, в которой Y<X. Запишем это так: Prob(Y>X) > 0.5.

Случай F(t) > G(t) иногда называют «стохастическим доминированием первого порядка» или «строгим доминированием». Однако в обиход вошло просто «стохастическое неравенство», причем этим термином обозначают именно ситуацию, когда Prob(Y>X) > 0.5, независимо от того, как сложились отношения между F(t) и G(t). Сразу же зафиксируем, что из F(t) > G(t) следует Prob(Y>X) > 0.5, однако обратное в общем случае неверно. Действительно, можно без труда выдумывать примеры, когда функции F(t) и G(t) пересекаются, но при этом одна из случайных величин стохастически больше другой в нестрогом смысле.

В статье (1) показано, что критерий состоятелен для альтернативы вида F(t) > G(t). Это означает, что по мере неограниченного роста размера выборок мощность критерия растет и стремится к единице для любого уровня значимости. Состоятельность — естественное, и если угодно, минимальное требование, которое можно предъявить к любому критерию. Действительно, увеличение объема данных, «информации», должно по идее увеличивать точность наших выводов, так что в конце концов критерий практически наверняка разглядит даже микроскопическую ложь в нулевой гипотезе, если она там есть.

Скрытый текст

Верно, однако, и то, что состоятельность, как следует из определения — асимптотическое свойство. А выборки, с которыми мы работаем в реальной жизни, к сожалению, не склонны «неограниченно увеличиваться в размерах» (по крайней мере, бесплатно). Но если имеющийся на руках ограниченный объем данных все-таки уже обеспечивает требуемую мощность, то, возможно, несостоятельность критерия не обязательно должна немедленно стать для него смертным приговором. Это, конечно, не призыв осознанно выбирать несостоятельные критерии, когда у нас есть выбор. Просто давайте не забывать, что прагматическая цель проверки гипотезы — это в первую очередь управление вероятностями ошибок в конкретной ситуации, и если эта цель здесь и сейчас достигнута, разговоры об асимптотике могут только сбить с толку.

Так вот, со временем выяснилось, что тест Манна-Уитни состоятелен и против более общей альтернативы, а именно HA: Prob(Y>X) > 0.5. Это дает нам право сформулировать его гипотезы так:



H0: F(t) = G(t)

против альтернативы HA: Prob(Y>X) > 0.5

Такая запись может (и должна) вызывать когнитивный диссонанс, и, вообще-то, не совсем корректна; но я сделал это умышленно, чтобы подчеркнуть: мы проверяем нулевую гипотезу о том, что два распределения одинаковы, однако данный тест призван состоятельно детектировать не любое нарушение такой гипотезы, а только особый случай — стохастическое неравенство. Говоря не строго, чем больше вероятность Prob(Y>X) отличается от 0.5, тем надежнее этот тест различает распределения, в этом и состоит его специфика.

Ту же мысль, казалось бы, можно попробовать выразить по-другому: MW-тест предназначен для проверки стохастического равенства — H0: Prob(Y>X) = 0.5 — но тут нас поджидает ловушка. Проблема в том, что это равенство возможно и при разных распределениях. В качестве иллюстрации проведите несложный эксперимент: сгенерируйте множество пар выборок из двух нормальных распределений с одинаковыми математическими ожиданиями, но разными дисперсиями, и для каждой пары выполните тест Манна-Уитни. Вы увидите, что значения p-value распределятся неравномерно, причем малые ее значения будут встречаться чаще. Другими словами, тест добросовестно улавливает, что нулевая гипотеза F(t) = G(t) не верна. Однако, как легко видеть, здесь выполняется равенство Prob(Y>X) = 0.5, а значит, будь нулевая гипотеза такой, тест несправедливо отклонял бы ее чаще, чем предусмотрено выбранным уровнем значимости. Делаем вывод: применять тест Манна-Уитни для проверки нулевой гипотезы Prob(Y>X) = 0.5 небезопасно. Более надежным выбором для такого случая является критерий Бруннера-Мюнцеля (Brunner Munzel Test), который не делает жестких предположений о равенстве распределений при нулевой гипотезе.

Впрочем, надо признать, что это слишком уж частная ситуация, практическая ценность которой вызывает некоторые сомнения — часто ли встречаются пары разных распределений, для которых вероятность Prob(Y>X) строго равна 0.5, или хотя бы очень близка к этому числу? Тем не менее, главная «мораль» этой истории, пожалуй, в другом. Если продолжать этот наш эксперимент с выборками всё большего размера, можно увидеть, что мощность теста при этом не растет: она постепенно стабилизируется около значения уровня значимости. Действительно, этот частный пример иллюстрирует тот (доказанный) факт, что если нулевая гипотеза F(t) = G(t) не верна, но при этом имеет место стохастическое равенство распределений, Prob(Y>X) = 0.5, то тест Манна-Уитни становится несостоятельным. Вообще, чем ближе истинная вероятность Prob(Y>X) к 0.5, тем медленнее растет мощность теста Манна-Уитни с увеличением количества данных, а при строгом равенстве Prob(Y>X) = 0.5 рост вообще останавливается. Насколько фатально для вас в вашей конкретной ситуации такое поведение мощности — решать вам (см. врезку 1). Главное, чтобы вы были в курсе этих проблем.

Скрытый текст

На первый взгляд может показаться странным, каким образом тест, построенный на использовании рангов, способен выявлять различия в распределениях, быть чувствительным к их форме. Казалось бы, переход к рангам сопряжен с потерей важной информации о подробностях распределения. На самом деле, ничего странного здесь нет. Если распределения одинаковы, входящие в U-статистику суммы рангов в смешанной выборке ведут себя определенным предсказуемым образом — на этом и основано распределение статистики при верной нулевой гипотезе. Ранги будут перемешаны практически случайно и равномерно, что облегчает анализ вероятностных свойств их сумм. Любое отклонение от этого паттерна приведет к изменению этого распределения. Это справедливо даже для симметричных случаев, подобного тому, который мы только что рассмотрели. Например, наблюдения, пришедшие из распределения с более тяжелыми хвостами, будут сравнительно чаще встречаться ближе к окраинам вариационного ряда, что приведет к заметному увеличению дисперсии суммы их рангов по сравнению с ожидаемым при равенстве распределений F и G.

К сказанному еще нужно добавить, что если вас действительно интересует гипотеза F(t) = G(t), но с «универсальной» альтернативой F(t) ≠ G(t), никак не связанной со стохастическими неравенствами, то лучше предпочесть другие критерии (Смирнова-Колмогорова, Лемана-Розенблатта, и т. д.), так как они, как правило, более мощные и не имеют указанных проблем с состоятельностью. У каждого из них есть свои особенности и ограничения, это правда, и все же в большинстве случаев они будут предпочтительнее.

Далее, из равенства распределений, конечно, следует и равенство математических ожиданий, медиан, и всего остального. Не отвергая гипотезу F(t) = G(t), мы тем самым автоматически соглашаемся и с равенством всех моментов и квантилей. Однако здесь мы сталкиваемся с очевидными проблемами:

1. Всегда ли из неравенства Prob(Y>X) ≠ 0.5 следуют неравенства E(x) ≠ E(y), или, например, med(x) ≠ med(y)? Нет, не всегда. Так что когда MW-тест отвергает свою «законную» нулевую гипотезу F(t) = G(t), он делает это в пользу своей же альтернативы Prob(Y>X) ≠ 0.5, и это не равно отвержению гипотез вида E(x)=E(y). Действительно, можно без труда представить себе два разных распределения с одинаковыми средними (или медианами, или чем-то еще). И ситуация тут на самом деле еще серьезнее и опаснее. Y может стохастически превосходить X в «обиходном» смысле, а вот его среднее или медиана вполне могут оказаться меньше, чем у X (подумайте, почему). Как и было обещано в преамбуле, мы не будем здесь возиться с доказательствами и рассмотрением всех частностей. Но сейчас важно хотя бы на словах уяснить: критерий Манна-Уитни не предназначен для сравнения средних или медиан. Его, стало быть, весьма рискованно рассматривать как, скажем, непараметрическую замену t-критерию Стьюдента. Разумеется, в некоторых частных случаях (например, в случаях чистого сдвига F(t) > G(t)) он может быть адекватным в таком качестве, но действовать по принципу «даже сломанные часы дважды в сутки не врут» - не самая лучшая идея, и это во-первых. А во-вторых:

2. Даже если имеет место F(t) > G(t), что открывает дорогу к желанным гипотезам о сравнении средних/медиан, остается непростой вопрос размера эффекта и расчета мощности. Для решения таких задач придется заниматься ad-hoc моделированием и симуляциями. При этом не следует поддаваться соблазну просто прибавить к распределению «аплифт» и на основании этого оценивать мощность. Такая прибавка как раз просто сдвинет второе распределение, то есть искусственно создаст для MW-теста самую благоприятную ситуацию, однако далеко не факт, конечно, что в действительности ваши реальные распределения будут отличаться только сдвигом, и тогда вы рискуете получить сильно завышенную оценку мощности.

****

Теперь коснемся одного более прикладного вопроса, о котором тоже часто забывают. Вспомним, что MW-тест работает с непрерывными случайными величинами. В идеальном мире это значило бы, что с вероятностью 1 в выборках нет ни одного повторяющегося значения. А так как алгоритм этого критерия работает с рангами наблюдений, то и все ранги будут уникальными, связанных рангов (tied ranks) среди них не будет. В действительности это далеко не всегда правда. Даже если наши X и Y действительно по природе своей непрерывны, связанные ранги могут легко появиться, хотя из-за обычных округлений. В принципе MW-тест предусматривает поправку на связанные ранги (например, в scipy.stats.mannwhitneyu эта поправка включается по умолчанию). По поводу ее надежности из разных источников поступают довольно противоречивые сведения, поэтому здесь нам придется ограничиться лишь осторожным советом не слишком доверять тесту Манна-Уитни, если одинаковых значений в выборках слишком много.

Скрытый текст

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

****

В ситуациях с двумя независимыми выборками, и особенно в контексте рандомизированных экспериментов с контрольной группой (AB-тестирование, клинические испытания), напрашивается сравнение механизма разделения на группы с работой бинарного классификатора. То есть метку принадлежности к группе можно отождествить с результатом работы такого классификатора. Тогда ничто не мешает нам построить ROC-кривую и проанализировать ее. Можно показать, что значение U-статистики Манна-Уитни очень тесно связанно с площадью под ROC-кривой — популярной в машинном обучении метрикой AUC. Эти две величины прямо пропорциональны друг другу: AUC = U/(n*m), где n и m это размеры выборок. Чего-то подобного и следовало ожидать, ведь AUC это не что иное, как оценка той самой вероятности Prob(Y>X).

Это дает возможность использовать метрику AUC в качестве размера эффекта для теста Манна-Уитни. Часто так и делают. Главное — снова не запутаться в гипотезах и не думать, что тест позволяет напрямую судить о статистической значимости этого эффекта.

Вспомним, что AUC по своей сути является интегральной характеристикой классификатора, попыткой одним числом описать сразу всю ROC-кривую. Если ML-алгоритму удается «раздвинуть» два класса так, чтобы их CDF их score-значений не пересекались, ROC-кривая будет целиком лежать по одну сторону от диагонали (Рис. 2, слева). В противном же случае (Рис. 2. справа) для различных интервалов значений своего score классификатор выдает разнонаправленные решения. Такая ситуация выявляет потенциальную слабость метрики AUC, хоть и не делает совсем бесполезным сам классификатор.

 Рисунок 2. ROC-кривая, если CDF не пересекаются (слева), и в противном случае (справа)
Рисунок 2. ROC-кривая, если CDF не пересекаются (слева), и в противном случае (справа)

Увы, MW-тест разделяет эту слабость и может обмануть вас, если использовать его не по назначению. На Рисунке 2 справа, кстати, показан наш пример с двумя разными нормальными распределениями, рассмотренный выше. Теоретическое значение AUC (оно же — вероятность Prob(Y>X)) здесь строго равно 0.5, однако, как мы уже видели, никакого противоречия со статистической значимостью теста тут нет. Здесь самое время снова вспомнить про критерий Брюннера-Мюнцеля, который позволяет получить доверительный интервал для Prob(Y>X), если вас непосредственно интересует эта вероятность и точность ее оценки. Другие возможные решения — прибегнуть к одному из bootstrap-методов для получения доверительного интервала для AUC, или использовать метод ДеЛонга (см., например, пакеты ROCit или pROC в R).

В награду тем, кто смог продраться через это мое, надо признать, довольно занудное сочинение, предлагаю краткий конспект с итогами и напутствиями:

  • Не используйте MW для сравнения математических ожиданий (средних) и медиан, он годится для таких задач лишь в ограниченном круге частных случаев, и даже тогда не всегда предоставляет возможности непосредственно вычислять мощность и минимальный размер эффекта.

  • Из значимого результата MW-теста еще не следует неравенство Prob(Y>X)≠0.5. Так что если выявление этого неравенства ваша единственная цель, гораздо логичнее предпочесть критерий Бруннера-Мюнцеля, так как он отвечает именно на этот вопрос.

  • Универсальная и безопасная нулевая гипотеза MW-критерия это H0: F(t) = G(t). Но если вас интересует исключительно равенство распределений без явной привязки к конкретным отличиям между ними, то опять же пользуйтесь теми критериями, которые для этого созданы, так как альтернативная гипотеза теста Манна-Уитни довольно специфична, и у ее границ у теста начинаются проблемы с тем, как его мощность реагирует на увеличение количества данных.

После всего сказанного напрашивается страшный вопрос: для каких же все-таки задач, возникающих на практике, годится тест Манна-Уитни? Прекрасный вопрос, однако ответ на него это тема для других статей, которые, хочется верить, напишут другие авторы. А роль этой статьи, как и было сказано в ее начале, была гораздо скромнее.