Математика для аналитика
Модуль 4 · p-value, мощность, размер выборки

Статистический вывод и A/B-тесты

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

Прочитано
— из 8
4.1

Выборка, генеральная совокупность и смещение отбора

Любой вывод из данных верен ровно настолько, насколько выборка похожа на ту совокупность, о которой вы собираетесь говорить.

Суть

Генеральная совокупность — это множество всех объектов, о которых вы хотите высказаться: все клиенты компании, все заказы за квартал, все письма, которые будут отправлены в будущем. Выборка — то подмножество, которое реально попало в вашу таблицу. Статистический вывод — это процедура переноса утверждения с выборки на совокупность, и весь дальнейший аппарат обслуживает один вопрос: насколько такой перенос допустим.

У совокупности есть параметры — истинная доля конверсии, истинное среднее время доставки. Их обозначают греческими буквами: π для доли, μ для среднего, σ для стандартного отклонения. Мы их не знаем и не узнаем никогда. По выборке мы считаем оценки — p для доли, для среднего, s для отклонения. Оценка отличается от параметра по двум причинам, и различать их принципиально важно.

оценка = истинное значение + случайный шум + систематическое смещение

Случайный шум возникает потому, что в выборку попали одни объекты, а не другие. Он неустраним, но управляем: его величина падает пропорционально 1/√n, и весь аппарат доверительных интервалов и p-value описывает именно его. Систематическое смещение возникает потому, что механизм попадания в выборку связан с изучаемой величиной. Оно не падает с ростом n. Миллион наблюдений, отобранных смещённо, даёт узкий доверительный интервал вокруг неверного числа — и это опаснее, чем маленькая честная выборка, потому что выглядит убедительнее.

Что делает выборку репрезентативной

Формально репрезентативность обеспечивается вероятностным отбором: у каждого объекта совокупности есть известная ненулевая вероятность попасть в выборку. Отбор с равными вероятностями даёт всем одинаковые шансы. Стратифицированный отбор делит совокупность на слои (города, тарифы, давность регистрации) и берёт случайную выборку внутри каждого слоя — это снижает шум, если метрика сильно различается между слоями. Кластерный отбор берёт целые группы (например, все заказы одного склада) и, наоборот, шум увеличивает, потому что наблюдения внутри кластера похожи друг на друга.

Выборки, которые аналитик получает по умолчанию, вероятностными не являются. «Первые 10 000 строк» упорядочены по времени и потому смещены в сторону старых клиентов. «Данные за понедельник» смещены по дню недели. «Те, кто ответил на опрос» смещены по вовлечённости. Ни один из этих способов не даёт права писать в отчёте «в среднем по базе».

Три механизма смещения отбора

Первый — ошибка охвата: рамка отбора не совпадает с совокупностью. Вы хотите говорить обо всех клиентах, а рассылка уходит только на подтверждённые адреса. Клиенты без подтверждённого адреса физически не могут попасть в выборку, и если они отличаются по поведению, оценка сдвинута.

Второй — самоотбор: объект сам решает, попадать ли в данные. Это опросы, отзывы, добровольные формы обратной связи. В отзывы попадают преимущественно те, у кого опыт был очень хорошим или очень плохим; средний спокойный клиент молчит.

Третий — отбор по выживанию: в данных остаются те, кто дожил до момента измерения. Если вы считаете среднее время жизни клиента только по тем, кто ушёл, вы систематически недооцениваете его, потому что самые лояльные ещё не ушли и в расчёт не попали. Родственная проблема — отсев внутри эксперимента: если в одной группе пользователи чаще бросают сценарий на середине, то сравнение по дошедшим до конца сравнивает уже разные совокупности.

Как это проверяется на практике

Смещение нельзя измерить изнутри выборки — по самим данным они выглядят нормально. Проверка всегда опирается на внешнее знание. Сравните распределение известных характеристик выборки и совокупности: доли по городам, по тарифам, по давности регистрации. Если в базе 40 % клиентов из регионов, а в выборке 12 %, смещение налицо. Посчитайте долю дошедших до измерения: низкая доля отклика сама по себе не доказывает смещения, но резко повышает его вероятность. Опишите в отчёте рамку отбора одной строкой: кто мог попасть в данные и кто не мог. Эта строка ловит больше ошибок, чем любые вычисления.

Пример

Компания отправляет опрос об удовлетворённости доставкой на 20 000 адресов, отвечают 1 200 человек — доля отклика 6 %. Средняя оценка по ответившим 4,3 из 5. Утверждение «клиенты оценивают доставку на 4,3» относится не к клиентам, а к тем 6 %, кто дошёл до формы. Проверка по внешним данным показывает: среди ответивших 78 % сделали заказ за последние 30 дней, тогда как по всей базе таких 41 %. Выборка сдвинута в сторону активных клиентов, а активные клиенты чаще довольны — оценка 4,3 завышена, и увеличение рассылки до 200 000 адресов её не исправит.

Частая ошибка

В отчёте пишут «конверсия рассылки — 12 %», а в расчёте знаменатель равен числу открывших письмо, а не числу получателей. Открывшие — это самоотобранная подгруппа наиболее вовлечённых, и их конверсия всегда выше. Заметить ошибку помогает одно правило: рядом с любой долей указывайте, что стоит в знаменателе и сколько это в абсолютных числах. Если знаменатель метрики сам зависит от поведения пользователя, метрика не сравнима между периодами и между вариантами теста.

Запомнить
  • Случайный шум уменьшается с ростом выборки как 1/√n, систематическое смещение не уменьшается никогда.
  • Смещение задаётся механизмом попадания в данные: охват, самоотбор, выживание, отсев по ходу измерения.
  • По самим данным смещение не видно — его ловят сравнением с внешним знанием о совокупности.
  • В отчёте всегда фиксируйте рамку отбора и знаменатель метрики.
4.2

Стандартная ошибка и доверительные интервалы

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

Суть

Представьте, что вы могли бы повторить сбор данных много раз: каждый раз новая случайная выборка того же размера, каждый раз чуть другая оценка. Множество этих гипотетических оценок образует распределение — выборочное распределение статистики. Его центр совпадает с истинным значением (если отбор не смещён), а разброс и есть стандартная ошибка, SE. Это стандартное отклонение не отдельных наблюдений, а самой оценки.

Различие между σ и SE — источник половины путаницы в отчётах. σ описывает, насколько разные клиенты не похожи друг на друга: время доставки у одного 20 минут, у другого 50. SE описывает, насколько неточно вы знаете среднее по всем клиентам. Первое почти не зависит от того, сколько данных вы собрали; второе падает с ростом n.

SE(x̄) = σ / √n
SE(p) = √(p × (1 − p) / n)

Вторая формула — частный случай первой. Для доли каждое наблюдение равно 0 или 1, и дисперсия такой величины равна p × (1 − p). Отсюда следует неявное на первый взгляд свойство: точность оценки доли зависит от самой доли. При p = 0,5 множитель p × (1 − p) максимален и равен 0,25; при p = 0,04 он равен 0,0384, то есть в шесть с лишним раз меньше. Редкие события измеряются точнее в абсолютных пунктах, но хуже в относительных.

Откуда берётся деление на корень из n

Дисперсия суммы независимых величин равна сумме дисперсий. Сумма n наблюдений имеет дисперсию n × σ². Среднее — это сумма, делённая на n, а при делении величины на константу дисперсия делится на квадрат константы: n × σ² / n² = σ² / n. Извлекаем корень и получаем σ / √n. Отсюда практическое следствие: чтобы удвоить точность, выборку надо увеличить вчетверо. Рост базы с 1 000 до 4 000 сокращает ошибку вдвое, с 4 000 до 16 000 — ещё вдвое.

Ключевое условие здесь — независимость наблюдений. Если один клиент сделал 40 заказов, эти 40 строк не дают 40 единиц информации, и формула занижает SE. Тогда единицей анализа берут клиента, а не заказ.

Как строится доверительный интервал

Центральная предельная теорема утверждает, что при достаточно большом n выборочное распределение среднего близко к нормальному независимо от того, как распределены сами наблюдения. У нормального распределения примерно 95 % массы лежит в пределах 1,96 стандартных отклонений от центра. Отсюда стандартная конструкция:

95 % ДИ = оценка ± 1,96 × SE

Читается интервал так: если повторять всю процедуру много раз, около 95 % построенных интервалов накроют истинное значение. Утверждение относится к процедуре, а не к конкретному интервалу: у уже посчитанного интервала истинное значение либо внутри, либо нет. Для 90 % берут множитель 1,645, для 99 % — 2,576. Более высокая уверенность оплачивается шириной.

Нормальное приближение для долей работает, когда в обеих категориях достаточно наблюдений — практическое правило требует не менее 10 успехов и 10 неуспехов. При 3 конверсиях из 500 приближение ломается, границы могут выйти за пределы отрезка от 0 до 1, и нужен точный метод или бутстрап.

Пример

Рассылка ушла на 4 000 адресов, заявку оставили 168 человек. Оценка конверсии p = 168 / 4000 = 0,042, то есть 4,2 %. Считаем стандартную ошибку: p × (1 − p) = 0,042 × 0,958 = 0,040236; делим на n: 0,040236 / 4000 = 0,0000100590; корень даёт SE = 0,00317, то есть 0,317 процентного пункта. Половина ширины интервала: 1,96 × 0,00317 = 0,00622. Итог: 95 % ДИ от 0,042 − 0,00622 = 0,0358 до 0,042 + 0,00622 = 0,0482, то есть от 3,58 % до 4,82 %. Для среднего срока доставки картина та же: при x̄ = 34,5 минуты, s = 9 минут и n = 900 получаем SE = 9 / √900 = 9 / 30 = 0,3 минуты и интервал 34,5 ± 1,96 × 0,3, то есть от 33,91 до 35,09 минуты.

Частая ошибка

В отчёте показывают два столбика с подписями 4,2 % и 4,8 % и делают вывод, что второй вариант лучше. Без интервалов сравнивать нечего: в примере выше интервал первого варианта тянется до 4,82 %, то есть разница укладывается в шум. Заметить проблему помогает привычка писать рядом с каждой цифрой её SE или интервал и смотреть, перекрываются ли они. Обратное правило тоже стоит знать: неперекрытие интервалов означает значимую разницу, но перекрытие само по себе её не отменяет — корректный тест строится по интервалу для разности, а не по двум отдельным интервалам.

Запомнить
  • σ описывает разброс между наблюдениями, SE — неточность оценки; путать их нельзя.
  • SE падает как 1/√n: вчетверо больше данных дают вдвое более узкий интервал.
  • 95 % ДИ = оценка ± 1,96 × SE; уровень 95 % относится к процедуре, а не к отдельному интервалу.
  • Формула для доли требует не менее 10 успехов и 10 неуспехов и независимости наблюдений.
4.3

Гипотезы, ошибки I и II рода, мощность

Проверка гипотезы — это правило принятия решения при неполной информации, и у него есть два вида ошибок, цену которых вы назначаете сами до начала теста.

Суть

Формальная процедура начинается с двух взаимоисключающих утверждений. Нулевая гипотеза H₀ говорит, что эффекта нет: конверсии двух тем письма равны, средние сроки доставки у двух маршрутов совпадают. Альтернативная гипотеза H₁ говорит, что эффект есть. Асимметрия здесь намеренная: мы предполагаем отсутствие эффекта и требуем от данных достаточных оснований отказаться от этого предположения. Так устроено потому, что «эффекта нет» — это одно конкретное значение, для которого можно посчитать распределение статистики, а «эффект есть» — бесконечное множество значений.

Логика близка к презумпции невиновности. Мы не доказываем, что H₀ верна; мы либо находим достаточно улик против неё, либо признаём улики недостаточными. Второе не равно оправданию по существу.

Две ошибки и их цена

Решение принимается в мире, где истина нам неизвестна, поэтому возможны две разные ошибки.

Решение / истинаЭффекта нетЭффект есть
Отвергли H₀Ошибка I рода (α)Верное решение (мощность)
Не отвергли H₀Верное решениеОшибка II рода (β)

Ошибка I рода — увидеть эффект, которого нет, и раскатить бесполезное изменение. Её вероятность мы задаём напрямую уровнем значимости α, чаще всего 0,05. Это означает: если эффекта нет, в 5 % повторов теста мы всё равно объявим победу.

Ошибка II рода — не увидеть реальный эффект и отказаться от работающего изменения. Её вероятность β не задаётся напрямую; она следует из размера выборки, величины эффекта и разброса данных. Дополнение к ней и есть мощность.

мощность = 1 − β

Стандартный ориентир — мощность 0,8: тест обнаружит заявленный эффект в 80 % случаев, когда эффект действительно такого размера. Оставшиеся 20 % — доля пропусков, с которой вы согласились заранее.

От чего зависит мощность

Мощность растёт при увеличении размера выборки, при увеличении истинного эффекта, при уменьшении разброса данных и при повышении α. Первые три рычага честные, четвёртый — обмен одной ошибки на другую: подняв α до 0,10, вы удвоите долю ложных срабатываний.

Отсюда важное следствие: минимальный обнаружимый эффект однозначно связан с размером групп. Для доли при α = 0,05 и мощности 0,8 работает приближение

MDE ≈ √(16 × p × (1 − p) / n)

Здесь n — размер одной группы. При базовой конверсии 4 % и группах по 4 000 человек: 16 × 0,04 × 0,96 = 0,6144; делим на 4 000 — получаем 0,00015360; корень равен 0,0124. То есть тест способен уверенно поймать сдвиг в 1,24 процентного пункта — это 1,24 / 4 ≈ 31 % относительного прироста. Изменение темы письма, дающее прирост на 5 %, такой тест не различит, и отрицательный результат будет говорить о нехватке данных, а не об отсутствии эффекта.

Односторонние и двусторонние гипотезы

Двусторонняя альтернатива утверждает «значения различаются», односторонняя — «вариант B лучше». Односторонний тест при том же α мощнее, но полностью слеп к ухудшению: если новая тема письма снизит конверсию, тест этого не покажет. Для продуктовых экспериментов, где ухудшение — реальный и значимый исход, по умолчанию берут двусторонний вариант. Выбор делается до просмотра данных; переключение на односторонний после того, как стало видно направление эффекта, — это скрытое удвоение α.

Пример

Тестируем новую тему письма. H₀: конверсия в заявку одинакова; H₁: различается. Задаём α = 0,05 и мощность 0,8. Базовая конверсия 4 %, бизнес считает осмысленным относительный прирост от 20 %, то есть абсолютный сдвиг 0,8 процентного пункта. При группах по 4 000 человек MDE равен 1,24 пункта — больше, чем интересующий нас эффект. Значит, тест на 4 000 в группе спроектирован неверно: даже реальный прирост на 0,8 пункта он с высокой вероятностью пропустит, и вывод «разницы нет» будет отражать размер выборки, а не поведение клиентов.

Частая ошибка

Формулировка «тест показал, что варианты одинаковы» при незначимом результате. Незначимость означает лишь, что данных не хватило отвергнуть H₀; она совместима и с нулевым эффектом, и с эффектом размером в половину MDE. Заметить подмену помогает проверка: указана ли в отчёте мощность или MDE. Если их нет, вывод об отсутствии различий не обоснован. Корректная формулировка звучит так: «различий не обнаружено; тест позволял уверенно детектировать эффект от 1,24 пункта, доверительный интервал для разности — от −0,4 до +0,9 пункта».

Запомнить
  • α задаётся до теста и равна доле ложных срабатываний при отсутствии эффекта; β следует из дизайна.
  • Мощность 1 − β растёт с размером выборки и величиной эффекта и падает с ростом разброса.
  • Отсутствие значимости — не доказательство равенства; рядом всегда нужен MDE или интервал для разности.
  • Сторонность гипотезы фиксируется до просмотра данных.
4.4

p-value: что это и чем оно не является

p-value — самая цитируемая и самая неверно трактуемая величина в аналитике, поэтому её определение стоит выучить дословно.

Суть

Определение звучит так: p-value — это вероятность получить наблюдаемое различие или ещё более сильное, при условии что нулевая гипотеза верна. Каждое слово здесь несёт нагрузку. «При условии что H₀ верна» — расчёт ведётся в воображаемом мире без эффекта. «Или ещё более сильное» — учитывается не только само значение, но и весь хвост распределения за ним.

p = P(данные такие же или более экстремальные | H₀ верна)

Механика расчёта одинакова для всех критериев. Сначала считается статистика — стандартизованное расстояние между наблюдаемым и ожидаемым при H₀, измеренное в стандартных ошибках. Затем берётся известное распределение этой статистики при H₀ (нормальное, t, хи-квадрат) и вычисляется площадь хвоста за наблюдённым значением. Для двусторонней гипотезы берутся оба хвоста.

Маленькое p означает, что данные плохо согласуются с миром без эффекта. Это довод против H₀ — и ровно столько, ничего больше. Порог 0,05 не имеет математического обоснования; это соглашение, унаследованное из практики начала XX века. Разница между p = 0,049 и p = 0,051 не соответствует никакому содержательному различию.

Три неверные трактовки

Первая: «p = 0,03 означает, что вероятность ошибки 3 %» или «вероятность того, что H₀ верна, — 3 %». Здесь переставлены местами условие и событие. Считается P(данные | H₀), а трактуется как P(H₀ | данные). Это разные величины, как «вероятность промокнуть, если идёт дождь» и «вероятность того, что идёт дождь, если вы промокли». Вторая зависит ещё и от того, насколько дождь вообще вероятен в этих краях, — то есть от априорной доли реально работающих гипотез. Иллюстрация: пусть из 1 000 проверяемых идей действительно работают 100. При мощности 0,8 мы поймаем 80 из них. Из 900 пустых идей при α = 0,05 значимыми окажутся 45. Значимых результатов будет 125, из них ложных 45 — это 36 %, а вовсе не 5 %. Чем больше слабых гипотез вы перебираете, тем выше доля мусора среди «побед».

Вторая: «p > 0,05 означает, что эффекта нет». Большое p говорит только о том, что данные совместимы с H₀ — но они совместимы и с множеством ненулевых значений эффекта. При маленькой выборке p будет большим почти всегда, включая случаи с крупным реальным эффектом. Отсутствие доказательства не есть доказательство отсутствия. Чтобы утверждать эквивалентность, нужен либо узкий доверительный интервал вокруг нуля, либо специальная процедура проверки эквивалентности, где нулевой гипотезой служит наличие различия.

Третья: «p = 0,001 означает более сильный эффект, чем p = 0,04» и «результат воспроизведётся с вероятностью 99,9 %». p зависит от двух вещей сразу — от величины эффекта и от размера выборки. На выборке в миллион пользователей прирост конверсии на 0,01 процентного пункта даст крошечное p и нулевую практическую ценность. p не является ни мерой размера эффекта, ни мерой его важности, ни вероятностью повторения результата: при мощности 0,8 повтор эксперимента даст значимость лишь примерно в 80 % случаев, каким бы малым ни было исходное p. Величину эффекта показывает доверительный интервал для разности, и именно его нужно приводить в отчёте.

Как читать p-value правильно

Рабочая формулировка выглядит так: «наблюдаемое различие в 0,9 процентного пункта или большее возникло бы примерно в 6 % случаев, если бы варианты на самом деле не различались». Дальше решение принимается с учётом цены ошибок, стоимости внедрения и доверительного интервала. p — вход в рассуждение, а не его вывод. Приводить его без размера эффекта, интервала и размера выборки не имеет смысла.

Пример

Тест темы письма: контроль 168 заявок из 4 000 (4,2 %), вариант 204 из 4 000 (5,1 %). Объединённая доля: (168 + 204) / 8 000 = 372 / 8 000 = 0,0465. Стандартная ошибка разности при H₀: √(0,0465 × 0,9535 × (1/4000 + 1/4000)) = √(0,044341 × 0,0005) = √0,0000221705 = 0,00471. Статистика z = 0,009 / 0,00471 = 1,91, двустороннее p ≈ 0,056. Доверительный интервал для разности: 0,9 ± 1,96 × 0,471 пункта, то есть от −0,02 до +1,82 процентного пункта. Вывод: данные скорее указывают на прирост, но интервал накрывает ноль, и говорить о подтверждённом эффекте нельзя. Формулировка «вариант проиграл» здесь так же неверна, как «вариант выиграл».

Частая ошибка

В сводной таблице экспериментов остаётся единственная колонка «p-value», по которой сортируют и раскрашивают строки. Из такой таблицы нельзя понять ни величину прироста, ни его точность, и она поощряет округление 0,053 до «почти значимо». Заметить проблему помогает вопрос к любой строке отчёта: могу ли я назвать величину эффекта и границы интервала. Если из таблицы это не следует, добавьте три колонки — разность, её доверительный интервал и размер групп; p-value после этого перестаёт быть главным числом.

Запомнить
  • p — это P(данные | H₀), а не P(H₀ | данные) и не вероятность ошибки.
  • Большое p не доказывает равенства; маленькое p не измеряет величину эффекта.
  • Доля ложных «побед» среди значимых результатов зависит от того, сколько пустых гипотез вы перебрали.
  • p приводится только вместе с размером эффекта, доверительным интервалом и размером выборки.
4.5

Выбор критерия: t-тест, тест пропорций, хи-квадрат, Манна—Уитни

Критерий выбирается не по привычке, а по типу метрики, числу сравниваемых групп и форме распределения данных.

Суть

Все перечисленные критерии устроены одинаково: они сводят наблюдаемое различие к статистике, распределение которой при H₀ известно, и по ней считают p-value. Различаются они тем, что считают различием и какие предположения делают о данных. Первый вопрос при выборе — какова метрика.

МетрикаДве группыТри и более групп
Доля (да/нет)z-тест пропорцийХи-квадрат однородности
Числовая, симметричнаяt-тест УэлчаДисперсионный анализ
Числовая, скошеннаяМанна—Уитни или бутстрапКраскела—Уоллиса или бутстрап

t-тест и тест пропорций

t-тест сравнивает средние двух групп. Его статистика — это разность средних, делённая на стандартную ошибку разности:

t = (x̄₁ − x̄₂) / √(s₁²/n₁ + s₂²/n₂)

Знаменатель складывает дисперсии, потому что группы независимы и дисперсия разности равна сумме дисперсий. Версия Уэлча, которая не требует равенства дисперсий в группах, — разумный вариант по умолчанию: она почти не теряет мощности, когда дисперсии равны, и защищает, когда они различаются. Требование нормальности относится не к самим наблюдениям, а к выборочному распределению среднего, поэтому при n порядка нескольких сотен t-тест работает и на ненормальных данных. Ломается он не от асимметрии, а от тяжёлых хвостов и выбросов: одна доставка длиной в 400 минут заметно сдвигает среднее и раздувает s.

z-тест пропорций — тот же расчёт для долей, где дисперсия определяется самой долей. При проверке H₀ доли объединяют, потому что при нулевой гипотезе истинная доля в обеих группах одна:

z = (p₂ − p₁) / √(p̄ × (1 − p̄) × (1/n₁ + 1/n₂))

Для доверительного интервала разности, наоборот, доли не объединяют и берут √(p₁(1−p₁)/n₁ + p₂(1−p₂)/n₂). Это не противоречие: в первом случае мы живём в мире H₀, во втором — оцениваем реальную разность.

Хи-квадрат

Критерий хи-квадрат работает с таблицей частот и отвечает на вопрос, отличается ли наблюдаемое распределение от ожидаемого при независимости строк и столбцов. Ожидаемая частота в клетке равна произведению итогов строки и столбца, делённому на общий итог. Статистика суммирует относительные квадраты отклонений:

χ² = Σ (наблюдённое − ожидаемое)² / ожидаемое

Деление на ожидаемое приводит клетки к общему масштабу: отклонение в 15 при ожидании 150 и при ожидании 3 000 — величины разной значимости. Число степеней свободы для таблицы равно (строки − 1) × (столбцы − 1). Критерий не показывает, какая именно группа выделяется, и не даёт направления эффекта — после значимого результата нужны попарные сравнения с поправкой на множественность. Ограничение: ожидаемая частота в каждой клетке должна быть не меньше 5, иначе приближение неточно.

Манна—Уитни и границы применимости

Критерий Манна—Уитни заменяет значения их рангами и проверяет, склонны ли значения одной группы быть выше значений другой. Выбросы теряют влияние: доставка за 400 минут получает лишь самый большой ранг. Это делает критерий устойчивым на скошенных распределениях вроде сроков доставки или чеков. Плата за устойчивость — смена вопроса: он не сравнивает средние и не даёт интервала для разности средних, а бизнесу обычно нужна именно разность в минутах или рублях. Практичная схема: Манна—Уитни как проверка устойчивости вывода, бутстрап — как способ получить интервал для той метрики, которая нужна.

Отдельно стоит проверить структуру данных. Если у одного клиента несколько заказов, наблюдения зависимы, и любой из критериев занизит p-value. Если сравниваются одни и те же объекты до и после, нужен парный вариант критерия.

Пример

Сравниваем три темы письма, по 4 000 получателей на каждую: 168, 152 и 140 заявок, то есть 4,20 %, 3,80 % и 3,50 %. Всего 460 заявок на 12 000 отправок, общая доля 3,833 %. Ожидаемое число заявок в каждой колонке равно 460 × 4000 / 12000 = 153,33, ожидаемое число отказов — 3 846,67. Вклад первой колонки: (168 − 153,33)² / 153,33 = 215,2 / 153,33 = 1,403 и (3832 − 3846,67)² / 3846,67 = 215,2 / 3846,67 = 0,056. Суммируя все шесть клеток, получаем χ² = 2,68 при 2 степенях свободы, p ≈ 0,26. Различий между темами данные не подтверждают.

Частая ошибка

t-тест применяют к сильно скошенной метрике вроде выручки на клиента, где 1 % заказов даёт треть суммы. Тест формально отработает, но результат будет определяться несколькими крупными заказами и не воспроизведётся. Заметить это можно до расчёта: посмотрите на медиану и среднее — если среднее заметно выше медианы, распределение скошено; посмотрите на долю метрики, приходящуюся на верхний процент наблюдений. При сильной концентрации переходите к бутстрапу, к рангам или к усечённой метрике с заранее оговорённым порогом.

Запомнить
  • Критерий определяется типом метрики, числом групп и формой распределения, а не привычкой.
  • t-тест Уэлча — разумный вариант по умолчанию для средних; для долей берут z-тест пропорций.
  • Хи-квадрат отвечает «есть различия где-то», но не указывает, где именно, и требует ожидаемых частот не меньше 5.
  • Манна—Уитни устойчив к выбросам, но сравнивает не средние; для интервала в бизнес-единицах нужен бутстрап.
4.6

Размер выборки и MDE

Расчёт размера выборки до запуска превращает эксперимент из лотереи в инструмент: он заранее говорит, какой эффект вы сможете увидеть и сколько это займёт времени.

Суть

Четыре величины связаны жёстко: размер группы n, минимальный обнаружимый эффект MDE, уровень значимости α и мощность 1 − β. Зафиксировав любые три, вы получаете четвёртую. На практике α и мощность берут стандартными (0,05 и 0,8), а дальше выбирают: либо бизнес называет минимально интересный эффект и вы считаете нужное n, либо трафик ограничен и вы считаете, какой MDE вообще достижим. Второй расчёт делать столь же обязательно: он часто показывает, что эксперимент бессмысленно запускать.

n = 2 × (z_α/2 + z_β)² × σ² / d²

Здесь d — абсолютный размер эффекта, который вы хотите поймать, а множитель 2 отражает, что дисперсия входит в разность из обеих групп. Для α = 0,05 и мощности 0,8 подставляются z = 1,96 и z = 0,84: (1,96 + 0,84)² = 2,8² = 7,84, и 2 × 7,84 = 15,68. Это число округляют до 16, откуда получается рабочее правило.

n ≈ 16 × σ² / d² (числовая метрика)
n ≈ 16 × p × (1 − p) / d² (доля)

Обе формулы дают размер одной группы; общий трафик вдвое больше.

Что означает квадрат в знаменателе

Эффект входит в квадрате, и это главный практический факт всей темы. Желание ловить вдвое меньший эффект увеличивает выборку вчетверо, втрое меньший — в девять раз. Именно поэтому попытки поймать «прирост в один процент относительно» почти всегда упираются в объёмы, которых у компании нет. Расчёт стоит делать до обсуждения дизайна, а не после.

Второй важный момент — различие абсолютного и относительного эффекта. Бизнес говорит «прирост на 20 %», имея в виду относительную величину. В формулу подставляется абсолютная: при базовой конверсии 4 % прирост на 20 % означает d = 0,04 × 0,20 = 0,008. Ошибка на этом шаге меняет ответ в разы.

Как считать на практике

Порядок действий устойчив. Первое: возьмите базовое значение метрики по историческим данным за период, сопоставимый с будущим тестом. Второе: получите от заказчика минимально интересный эффект — не тот, который вы надеетесь увидеть, а тот, ниже которого внедрение не окупается. Третье: переведите его в абсолютную величину. Четвёртое: подставьте в формулу и получите n на группу. Пятое: разделите удвоенное n на суточный трафик и получите длительность. Шестое: округлите длительность вверх до целого числа недель, чтобы захватить полный недельный цикл — поведение в выходные и будни различается, и обрыв теста в середине недели вносит систематический сдвиг.

Для числовой метрики вместо p × (1 − p) подставляется σ², которую берут из исторических данных. При среднем сроке доставки со стандартным отклонением 9 минут и желании ловить сдвиг в 1 минуту: n = 16 × 81 / 1 = 1 296 доставок на группу. Для сдвига в полминуты: 16 × 81 / 0,25 = 5 184. Разница в четыре раза при вдвое меньшем эффекте — та же квадратичная зависимость.

Что делать, когда данных не хватает

Если требуемое n недостижимо, есть несколько честных ходов. Увеличить долю трафика в тесте. Взять более чувствительную метрику: клик по кнопке случается чаще, чем оплата, и требует меньшей выборки, но измеряет не то же самое. Снизить дисперсию: стратификация, учёт предэкспериментального поведения клиента, усечение выбросов по заранее объявленному порогу. Согласовать более крупный MDE и явно записать, что мелкие эффекты тест не различает. Нечестный ход один и распространён — запустить как есть и надеяться; он даёт незначимый результат, который затем трактуют как «изменение не работает».

Пример

Базовая конверсия письма в заявку — 4 %. Бизнес готов внедрять новую тему при относительном приросте от 20 %, то есть d = 0,04 × 0,20 = 0,008. Считаем: p × (1 − p) = 0,04 × 0,96 = 0,0384; умножаем на 16 — получаем 0,6144; d² = 0,008² = 0,000064; делим: 0,6144 / 0,000064 = 9 600 получателей на группу. Точная формула с множителем 15,68 даёт 9 408, то есть округление до 16 добавляет небольшой запас. Всего нужно 19 200 отправок. При суточном объёме рассылки 4 800 адресов, разделённом поровну, каждая группа набирает 2 400 человек в день, и 9 600 накопится за 4 дня. С учётом округления до недельного цикла тест планируют на 7 дней. Для сравнения: прирост в 10 % (d = 0,004) потребовал бы 0,6144 / 0,000016 = 38 400 на группу — то есть 16 дней, а с округлением три недели.

Частая ошибка

Размер выборки считают в пользователях, а метрику измеряют в заказах. Если один клиент делает несколько заказов, число строк набирается быстро, а число независимых единиц — нет; фактическая мощность оказывается ниже расчётной, а p-value — заниженным. Заметить расхождение помогает короткая проверка перед стартом: отношение числа строк метрики к числу уникальных пользователей в исторических данных. Если оно заметно больше единицы, единицу рандомизации и единицу анализа надо привести к одному уровню — считать метрику на пользователя.

Запомнить
  • n ≈ 16 × p × (1 − p) / d² для доли и n ≈ 16 × σ² / d² для среднего; это размер одной группы.
  • Эффект входит в квадрате: вдвое меньший MDE требует вчетверо большей выборки.
  • MDE задаётся в абсолютных единицах; относительный прирост нужно перевести через базовое значение.
  • Если нужное n недостижимо, меняйте дизайн или MDE, но не запускайте тест без расчёта.
4.7

Подглядывание и множественные сравнения

Уровень значимости 0,05 защищает от ложной находки при одной проверке, но каждая дополнительная проверка — по срезу, по метрике или по времени — расходует эту защиту.

Суть

Ошибка I рода случается в 5 % случаев на каждую проверку. Если проверок несколько и они независимы, вероятность хотя бы одного ложного срабатывания растёт по формуле дополнения:

P(хотя бы одна ложная находка) = 1 − (1 − α)^m

Подставим α = 0,05. При m = 3 получаем 1 − 0,95³ = 1 − 0,857 = 0,143. При m = 5 — 1 − 0,774 = 0,226. При m = 10 — 1 − 0,599 = 0,401. При m = 20 — 0,642. То есть аналитик, разрезавший результат теста на двадцать срезов, найдёт «значимый» эффект хотя бы в одном из них почти в двух случаях из трёх, даже если никакого эффекта нет вовсе.

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

Подглядывание как частный случай

Проверка результата каждый день с решением «остановить тест, как только p опустится ниже 0,05» — это тоже множественные сравнения, только по времени. Отличие в том, что последовательные проверки сильно коррелированы: данные вчерашнего дня входят и в сегодняшнюю оценку, — поэтому формула независимых испытаний завышает риск. Но и реальные цифры велики: при двух промежуточных проверках фактическая доля ложных срабатываний около 8 %, при пяти — около 14 %, при десяти — около 19 %. Если смотреть на график непрерывно и останавливаться на первом пересечении порога, вероятность в пределе стремится к единице: траектория p-value при отсутствии эффекта случайно блуждает и рано или поздно зайдёт под 0,05.

Усугубляет ситуацию правило остановки, привязанное к желаемому исходу: тест продолжают, пока результат «не тот», и останавливают, как только он «тот». Это отбор благоприятного момента, и он смещает оценку эффекта вверх даже там, где эффект реален: остановка происходит на случайном пике.

Что с этим делать

Первый и главный приём — заранее зафиксировать план: одна основная метрика, один срез, одна дата подведения итогов, посчитанная из размера выборки. Всё остальное объявляется разведочным и в решениях не участвует.

Когда сравнений действительно несколько, применяют поправки. Поправка Бонферрони делит порог на число сравнений: при пяти сравнениях значимым считается p ниже 0,05 / 5 = 0,01, при десяти — ниже 0,005. Она надёжна и не требует допущений, но консервативна: при большом m мощность падает почти до нуля.

Процедура Бенджамини—Хохберга контролирует не вероятность хотя бы одной ошибки, а ожидаемую долю ложных среди объявленных находок. p-value сортируются по возрастанию, и i-е сравнивается с порогом i / m × q, где q — допустимая доля ложных открытий. Значимыми объявляются все сравнения до самого большого номера, для которого условие выполнилось. Такой подход уместен в разведочном анализе, где важнее не пропустить кандидатов, чем гарантировать чистоту каждого.

Для промежуточных проверок существуют групповые последовательные схемы: пороги на ранних проверках делают заметно строже, на финальной — почти обычными, так что суммарный α остаётся 0,05. Это законный способ подглядывать, но он требует объявить число и моменты проверок заранее.

Пример

Тест новой темы письма подводят по общей выборке и получают p = 0,21. Дальше результат режут на пять срезов: мобильные и десктоп, три возрастные группы. p-value получаются 0,004, 0,012, 0,031, 0,044 и 0,210. Без поправки «победили» четыре среза. Бонферрони требует порога 0,05 / 5 = 0,01 — проходит только первый. Бенджамини—Хохберг при q = 0,05 сравнивает отсортированные значения с порогами 0,01, 0,02, 0,03, 0,04 и 0,05: 0,004 ≤ 0,01 — да, 0,012 ≤ 0,02 — да, 0,031 ≤ 0,03 — нет, 0,044 ≤ 0,04 — нет. Наибольший прошедший номер — второй, значит значимыми признаются два первых среза. Ни та, ни другая процедура не превращает эти находки в решение: они годятся как гипотеза для отдельного подтверждающего теста.

Частая ошибка

В отчёте появляется фраза «в целом разницы нет, но на мобильных вариант выигрывает значимо». Срез найден после просмотра данных, порог не скорректирован, а размер подгруппы вдвое-втрое меньше расчётного, поэтому и оценка эффекта в ней завышена. Заметить подмену помогает один вопрос: был ли этот срез назван до запуска теста и входил ли он в расчёт размера выборки. Если нет — формулировка должна звучать как «на мобильных наблюдается различие, требующее отдельной проверки», и в этой проверке срез становится основной гипотезой с собственным расчётом выборки.

Запомнить
  • При m независимых проверках риск ложной находки равен 1 − (1 − α)^m: пять проверок дают 22,6 %, десять — 40 %.
  • Остановка теста в момент пересечения порога — то же самое множественное сравнение, только по времени.
  • Бонферрони строг и прямолинеен, Бенджамини—Хохберг мягче и уместен в разведочном анализе.
  • Метрика, срез и дата подведения итогов фиксируются до запуска; всё остальное — гипотезы для следующего теста.
4.8

Бутстрап

Бутстрап даёт доверительный интервал для любой метрики, включая те, для которых формулы стандартной ошибки не существует.

Суть

Классические формулы выведены для конкретных статистик при конкретных предположениях: среднее при большой выборке, доля при достаточном числе успехов. Для медианы, 90-го процентиля, отношения двух сумм или доли заказов, уложившихся в норматив, аналитической формулы либо нет, либо она требует условий, которых данные не выполняют. Бутстрап заменяет вывод формулы вычислением.

Идея опирается на подстановку. Мы хотели бы знать, как оценка колеблется при повторном извлечении выборок из генеральной совокупности. Совокупность нам недоступна, но выборка — её лучшая доступная копия. Значит, будем извлекать новые выборки из самой выборки: с возвращением, того же размера n. Каждая такая псевдовыборка содержит часть исходных наблюдений по нескольку раз, часть не содержит вовсе — именно это воспроизводит случайность отбора.

разброс оценок по псевдовыборкам ≈ разброс оценки по реальным выборкам

Алгоритм

Процедура состоит из четырёх шагов. Первый: из выборки размера n случайно с возвращением набирается псевдовыборка того же размера n. Возвращение принципиально — без него получится перестановка исходных данных и метрика не изменится. Второй: на псевдовыборке считается интересующая метрика — медиана, процентиль, доля, отношение. Третий: шаги повторяются много раз; 1 000 повторов достаточно для оценки стандартной ошибки, 10 000 — для устойчивых границ интервала. Четвёртый: полученный набор значений сортируется, и границы 95 % интервала берутся как 2,5-й и 97,5-й процентили — при 10 000 повторов это 250-е и 9 750-е значения по порядку.

Стандартное отклонение набора бутстрап-оценок и есть оценка стандартной ошибки метрики. Для среднего оно совпадёт с σ / √n с точностью до случайности — это удобный способ проверить, что процедура реализована верно.

Как применять к сравнению групп

Для A/B-теста ресемплируют каждую группу независимо, на каждой итерации считают разность метрик и получают распределение разности. Если 95 % интервал этой разности не содержит нуля, различие значимо на уровне 0,05. Такой подход удобнее классического критерия тем, что работает с любой метрикой и сразу выдаёт интервал в бизнес-единицах: не «p = 0,03», а «медиана срока доставки сократилась на 2,4 минуты, интервал от 0,9 до 3,8 минуты».

Единица ресемплирования должна совпадать с единицей рандомизации. Если тест рандомизирован по клиентам, а метрика считается по заказам, ресемплировать нужно клиентов целиком со всеми их заказами — это блочный бутстрап. Ресемплирование отдельных заказов разорвёт зависимость внутри клиента и даст слишком узкий интервал.

Где бутстрап ломается

Бутстрап не создаёт информацию, а лишь извлекает её из имеющихся данных, поэтому он наследует все их дефекты. Смещение отбора он не исправляет: интервал будет узким и уверенно окружать неверное число. На очень малых выборках он ненадёжен — в 20 наблюдениях содержится слишком мало информации о хвостах распределения. Для экстремальных статистик вроде максимума метод не работает в принципе: максимум псевдовыборки никогда не превысит максимум исходной, и распределение получается искажённым. При сильной зависимости наблюдений нужен блочный вариант. Наконец, у процентильного интервала есть смещение при асимметричных распределениях; для аккуратной работы применяют скорректированные версии, но для типичных продуктовых задач процентильного интервала обычно достаточно.

Пример

Есть 600 доставок за неделю. Среднее время 32,7 минуты, медиана 29,0 минуты — расхождение указывает на правостороннюю скошенность, характерную для сроков доставки. Норматив компании привязан к медиане, а формулы стандартной ошибки медианы под рукой нет. Запускаем бутстрап: 10 000 раз набираем по 600 доставок с возвращением, каждый раз считаем медиану, сортируем полученные 10 000 значений и берём 250-е и 9 750-е. Получаем 95 % интервал от 27,6 до 30,2 минуты. Вывод для отчёта: медианный срок доставки составляет 29,0 минуты, и данные согласуются с истинным значением в диапазоне примерно 27,6—30,2 минуты. Если норматив равен 30 минутам, утверждать его выполнение по этим данным нельзя — верхняя граница интервала его превышает.

Частая ошибка

Бутстрап применяют к данным, где на одного клиента приходится по несколько заказов, ресемплируя строки заказов. Формально всё считается, интервал выходит узким и убедительным, но фактическое число независимых единиц в несколько раз меньше числа строк, и интервал занижен. Заметить это можно сравнением: посчитайте интервал двумя способами — ресемплируя заказы и ресемплируя клиентов целиком. Если второй заметно шире, зависимость в данных существенна и правильным является именно он. Тот же признак работает как общая проверка перед любым тестом: отношение числа строк к числу уникальных пользователей.

Запомнить
  • Бутстрап — многократный отбор с возвращением из своей же выборки; он заменяет формулу вычислением.
  • Границы 95 % интервала — 2,5-й и 97,5-й процентили набора бутстрап-оценок; для устойчивости нужно порядка 10 000 повторов.
  • Для сравнения групп ресемплируйте каждую группу и стройте интервал для разности; ноль внутри — различие не подтверждено.
  • Ресемплировать надо ту единицу, по которой шла рандомизация; смещение отбора и крошечные выборки бутстрап не лечит.
Закрепление

Теория без задач не держится

Восемь задач по этому модулю: выбор ответа и расчёт, с разбором каждого решения. Задачи, в которых вы ошиблись, вернутся в следующий заход.

Перейти к тренажёру