Урок по треку Статистика и A/B-тесты 7 мин

Хи-квадрат, Фишер и Манна-Уитни

Хи-квадрат, точный тест Фишера, Манна-Уитни и что он на самом деле проверяет.

Не все метрики это средние. Иногда сравнивают распределения по категориям (какой тариф выбирают), иногда данные такие кривые, что среднее теряет смысл. Для этого есть хи-квадрат, точный тест Фишера и ранговые тесты вроде Манна-Уитни.

Хи-квадрат: наблюдаемое против ожидаемого

Есть таблица сопряжённости: строки это группы, колонки это исходы.

купилне купил
A120880
B150850

Если группа не влияет на исход (H0: независимость), ожидаемое значение в ячейке:

E = (сумма строки × сумма колонки) / общий итог

Статистика:

χ² = Σ (O - E)² / E

Число степеней свободы: (строк - 1) × (колонок - 1). Для таблицы 2×2 это 1. Большое χ² значит, что наблюдаемое сильно отличается от ожидаемого при независимости.

Полезный факт: для таблицы 2×2 без поправки χ² равен квадрату z-статистики двухвыборочного z-теста долей. Это одна и та же проверка.

Где применяется:

  • Тест независимости: связана ли платформа с выбором тарифа.
  • Тест согласия: совпадает ли распределение с ожидаемым. Классика A/B это SRM-проверка: разделили трафик 50/50, а пришло 50 600 и 49 400. Хи-квадрат по одной строке против ожидаемых 50 000 и 50 000 показывает, случайно ли такое расхождение.

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

Поправка Йейтса для 2×2 делает тест консервативнее. На больших выборках A/B она почти ничего не меняет, на маленьких лучше сразу взять Фишера.

Точный тест Фишера

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

Манна-Уитни: что он на самом деле проверяет

Тест Манна-Уитни (он же Уилкоксона для независимых выборок) работает с рангами: все наблюдения объединяют, сортируют и смотрят, чьи ранги в среднем выше.

Статистика U для группы A равна числу пар (a, b), где a > b, плюс половина ничьих. Если U близко к n_a × n_b / 2, группы перемешаны равномерно.

Главная ловушка собеса: Манна-Уитни не проверяет равенство медиан. Он проверяет, что случайное наблюдение из A с вероятностью 1/2 больше случайного из B (стохастическое равенство). Медианы могут быть одинаковыми, а тест значим (разная форма распределений), и наоборот. Как тест медиан его можно читать только при допущении, что распределения отличаются лишь сдвигом.

Почему это важно для A/B: бизнес обычно хочет знать, выросла ли средняя выручка на пользователя, потому что деньги складываются. Манна-Уитни может показать «значимо», когда среднее не изменилось или даже упало: например, больше людей стали покупать дёшево, а крупные покупки исчезли. Поэтому для денежных метрик чаще используют t-тест на больших выборках, бутстреп среднего или t-тест после винзоризации.

Где Манна-Уитни уместен: порядковые шкалы (оценки 1-5), маленькие выборки с выбросами, метрики, где интересен именно «типичный пользователь».

Ранги и ничьи

При большом числе одинаковых значений (например, 90% пользователей с нулевой выручкой) много ничьих. Ранговые тесты используют средние ранги и поправку на ничьи, но информативность падает: тест в основном сравнивает долю ненулевых.

Частые ошибки

  • «Манна-Уитни сравнивает медианы».
  • Хи-квадрат по событиям, а не по пользователям: наблюдения зависимы.
  • Хи-квадрат при ожидаемых частотах 1-2 вместо Фишера.
  • Переход на непараметрический тест «потому что данные не нормальные» при огромной выборке, где t-тест работает.
  • Игнорирование SRM: если сплит сломан, результат теста нельзя интерпретировать.

Что спросят на собесе

  • Как считается хи-квадрат и что такое ожидаемые частоты?
  • Как проверить SRM?
  • Что проверяет тест Манна-Уитни?
  • Почему для выручки Манна-Уитни может ввести в заблуждение?
  • Когда нужен точный тест Фишера?

Закрепите за 5 минут

После урока в тренажёре 3-5 проверочных вопросов, дальше модуль уходит в повторения.