Vit Cheremisinov
Sep 2, 2018 · 4 min read

Непараметрические методы для A/B тестов. Считаем деньги

Когда мы говорим про метрики для A/B тестирования, то чаще всего приходит на ум измерение средних — конверсия, CTR и тп. Но не стоит забывать, что кроме средних значений, существуют еще и деньги. И когда мы говорим про транзакционный бизнес, то все-таки данная метрика является основной.

Итак, представим:

У нас есть dataframe со следующими значениями (для двух групп A и B, выборки независимы).

Перед тем, как применять тот или иной статистический метод, нам необходимо дать характеристику нашим данным. Например, чтобы использовать многим знакомый t критерий Стьюдента, данные должны подходить под следующие условия:

  1. Данные должны иметь Нормальное распределение. Методов, которые позволяют провести проверки на нормальность распределений, достаточно много. Один из самых используемых — это критерий Шапиро-Уилка. Наша задача — сравнивать теоретическое нормальное распределение с распределением наших наблюдаемых частот.

2. Дисперсии в наших выборках должны быть гомогенны. Если дисперсии в наших выборках не гомогенны, значит мы пытаемся сравнить то, что сравнивать в принципе нельзя (котов и слонов, например). Для проверки на гомогенность дисперсий можно использовать критерий Бартлета. Нулевая гипотеза при использовании данного критерия предполагает, что выборки взяты из генеральных совокупностей с одинаковой дисперсией. Если наши выборки n1=n2=….ni, можно использовать более простой в вычислениях критерий Кокрена. Оба критерия чувствительны к виду распределения.

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

Проверка данных на соблюдение условий

Проверяем нормальность распределения

Давайте проверим данные на проявление данных условий: построим qqplot и применим критерий Шапиро-Уилка.

Результаты построения qqplot

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

Как видно, форма наблюдаемых квантилей распределилась не под углом 45 градусов, и даже не близко к этому. Исходя из этого, мы делаем вывод, что данные не имеют нормального распределения, значит не выполняется одно из условий описанных выше. Для дополнительной гигиенической проверки выполним тест Шапиро-Уилка.

Результаты проверки на нормальность при помощи W критерия Шапиро-Уилка

Пара слов про критерий Шапиро-Уилка:

Нулевая гипотеза H0 теста Шапиро-Уилка заключается в том, что случайная величина, выборка x которой известна, распределена по нормальному закону. Альтернативная гипотеза H1 заключается в том, что закон распределения не является нормальным.

Что нам дал результат критерия Шапиро-Уилка:

Чем ближе W значение к 1, тем лучше мы можем охарактеризовать наши данные как нормальные. Также стоит держать в голове, что в H0 имеет нормальное распределение.

Из результатов очевидно, что данные не имеют нормального распределения. Следовательно, мы можем смело использовать непараметрический метод оценки результатов.

Пара слов о том, как работает критерий

Необходимо провести следующие манипуляции с нашими данными:

Объединить все данные в единый ряд;

Подсчитать сумму рангов отдельно для каждой группы (как считать ранги будет показано ниже);

Определить значение U по формуле:

где n1 — объем выборки №1; n2 — объем выборки №2; Tx — большая из двух ранговых сумм; nx — объем максимальной выборки: nx= max(n1, n2) — т.к. выборки в нашем случае распределяются равномерно, то берем объем случайной выборки.

4. По таблице критических значений получаем P уровень значимости, который и будет показательной метрикой эксперимента.

Если у нас достаточно много данных, то это становится достаточно трудоемким процессом. Поэтому мы будем использовать данный метод в R, который имеет следующую функцию wilcox.test()

wilcox.test(var~per,data=rerrre)

После применения метода мы получаем следующие результаты:

А если больше двух групп?

Критерий Манна-Уитни работает только двувыборочно. В случае анализа A/B/C/n групп, необходимо использовать непараметрический дисперсионный анализ — критерий Краскела-Уоллиса .

Как и Манн-Уитни, критерий не чувствителен к форме распределения и описывается следующим образом:

Где n — число наблюдений в группе ii, N=∑mi=1niN=∑i=1mni — общее число наблюдений во всех mm группах, а RiRi — сумма рангов наблюдений в группе ii.

Принцип получения рангов схож с принципов Манна-Уитни.

После нахождения H мы должны сравнивать его по таблице критических значений и получить показатель P. Как и при дисперсионном анализе, мы получим один H и один p-value. Для получения разницы между группами нам необходимо провести Post-hoc анализ. В R используется следующая функция для применения метода — kruskal.test().

Для того, чтобы понять, между какими группами есть значимая разница и насколько сильно она выражена, существует целый ряд непараметрических post hoc тестов. Большой набор готовых решений представлен в R пакетом PMCMR. Полная документация по ссылке.

Метод get.pvalues позволяет получить p-уровень значимости разницы попарного сравнения нескольких выборок методом posthoc.kruskal.dunn.test

Как видно на результатах, мы получаем р-уровень значимости для попарного сравнения групп эксперимента.

В этом методе используется тест Дана, который работает следующим образом:

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

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

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

Разумеется, непараметрические методы на этом не заканчиваются. Мы описали основы и надеемся, что эта статья будет полезна как начинающим, так и опытным специалистам по CRO и анализу данных.

Vit Cheremisinov

Written by

Руководитель отдела аналитики AIC.

statistics experiments

Математическая статистика, эксперименты и анализ данных

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade