Зарегистрируйтесь, чтобы продолжить обучение

Постановка задачи Статистическая значимость

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

Решим эту задачу на примере интерфейсов A и B. Для этого нужно:

  • Собрать данные по выручке от каждого пользователя
  • Посчитать сумму выручки от пользователей каждого интерфейса
  • Сравнить выручку от каждого интерфейса
  • Построить для каждого интерфейса гистограммы распределения выручки по децилям
  • Сравнить полученные гистограммы
  • Посчитать Ma, Mb, Da, Db – математическое ожидание и дисперсию
  • Сравнить эти показатели

Попробуем разобраться, отличаются ли пользователи из групп A и B статистически. Гипотеза H₀ — нет различий, гипотеза H₁ — есть различия.

Вероятностное распределение

Вероятностное распределение — это идеализированное частотное распределение.

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

Вероятность обозначается числом от 0 до 1:

  • 0 означает, что событие невозможно
  • 1 означает, что событие точно произойдет

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

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

Нормальное распределение

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

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

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

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

Дискретные распределения и таблицы вероятности

Дискретное распределение вероятностей — это распределение вероятностей дискретной переменной. Оно включает в себя только вероятности возможных значений. Другими словами, в него не входят значения, вероятность которых равна нулю. Например, распределение вероятностей бросков игральных костей не включает значение 2,5 или 0, потому что такой результат броска костей невозможен.

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

Таблица вероятностей представляет собой дискретное распределение вероятностей переменной. Она состоит из двух столбцов:

  • Значения или классовые интервалы
  • Вероятности

Рассмотрим таблицу с количеством покупателей за сутки:

Покупатели Вероятность
20 0,4
35 0,3
12 0,2
24 0,1

Все вероятности в таблице больше нуля и при сумме дают единицу.

Математическое ожидание

Математическое ожидание — понятие в теории вероятностей, означающее средневзвешенное по вероятностям возможных значений значение случайной величины. Так же его называют «среднее значение распределения». Часто его записывают как M(x) или μ. Если взять случайную выборку из распределения, то среднее значение выборки будет примерно равно математическому ожиданию.

Математическое ожидание можно рассчитать несколькими способами:

  • Если есть формула, описывающая распределение — например, функция плотности вероятности — оно задается параметром μ
  • Если параметра μ нет, то его можно вычислить по другим параметрам с помощью уравнений
  • Если есть выборка, то среднее значение выборки приблизительно равно математическому ожиданию — чем больше объем выборки, тем лучше будет оценка
  • Если у вас есть таблица вероятностей, то математическое ожидание рассчитывается через умножение вероятности каждого возможного исхода на его вероятность, а затем сложение этих значений

Рассмотрим таблицу вероятностей:

Покупатели x Вероятность P(x)] x × P(x)
20 0,4 8
35 0,3 10,5
12 0,2 2,4
24 0,1 2,4

Математическое ожидание составит около 23 покупателей:

8 + 10,5 + 2,4 + 2,4 = 23,3

Дисперсия

Дисперсия случайной величины — мера разброса значений случайной величины относительно ее математического ожидания. Квадратный корень из дисперсии называют среднеквадратическим отклонением или стандартным отклонением. Его записывают как σ.

Среднеквадратическое отклонение также можно рассчитать несколькими способами:

  • Если есть формула, описывающая распределение, то среднеквадратическое отклонение иногда задается параметром σ
  • Если параметра σ нет, то его можно рассчитать по другим параметрам с помощью формул, специфичных для каждого распределения
  • Если у вас есть выборка, то среднеквадратическое отклонение выборки будет связана с оценкой среднеквадратического отклонения распределения вероятностей совокупности — чем больше объем выборки, тем лучше будет оценка

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

  • Вычислить отклонение каждого значения от ожидаемого
  • Возвести его в квадрат
  • Умножить на вероятность
  • Просуммировать значения
  • Взять их квадратный корень

Рассмотрим таблицу вероятностей:

Покупатели x Вероятность P(x) x - M(x) (x - M(x))^2 × P(x)
20 0,4 -3,3 4,356
35 0,3 11,7 41,067
12 0,2 -11,3 25,538
24 0,1 0,7 0,049

Среднеквадратическое отклонение подсчитывается так:

sigma boy

Практика

Дано: Есть два типа интерфейса, A и B.

Вопрос: Как определить, какой нравится людям больше? Предположим, что пользователи одинаковые, и мы показали A для 50% пользователей, и B — для оставшихся 50%.

Задача: выбрать и обосновать выбор интерфейса для работы.

Подход к решению задачи

  • Собрать данные по выручке от каждого пользователя, работавших с интерфейсом А и B
  • Посчитать сумму выручки от пользователей интерфейса А и B и сравнить
  • Построить для каждого интерфейса (A и B) гистограммы распределения выручки (по децилям) и сравнить
  • Посчитать Ma, Mb, Da, Db – математическое ожидание и дисперсию и сравнить

Можно ли сказать, что пользователи A и B одинаковые или они статистически значимо отличаются?

Гипотеза H0 - нет различий, гипотеза H1 - есть различия.

Собираем данные

SELECT * FROM clickstream_ab;
version decile category_count probability
1 1 85 0.03
1 2 200 0.055
1 3 300 0.115
... ... ... ...
2 1 185 0.03
2 2 300 0.055
2 3 400 0.115

Датасет с данными

У нас есть таблица, clickstream, в которой есть 4 поля. Это версия продукта А и версия В. У нас есть как раз счет количества совпадений. Соответственно, для версии 1 сумма вероятностей 1. Для версии 2 тоже сумма вероятностей равна 1.

Давайте немного уточним про то, как такие таблицы собирать. Смотрите, у нас скорее всего версия 1, это есть какой-то флажок в большой таблице с данными. На децили мы разделили с помощью знакомой нам оконной функции по суммам покупок среднего. Допустим, дециль 1 это те люди, которые у нас покупали меньше всего, то есть средний чек маленький, единичный чек в принципе маленький и так далее. А последний дециль это категория людей, которые больше всего самые крупные покупки делают. И соответственно, вероятность таких мала, тех кто у нас совсем мало равно как и тех клиентов, которые приходят и делают большие заказы. Потому что это разовые вещи, происходит они очень редко. Большая часть наших клиентов будет при этом в 6 дециле, потому что там наиболее часто встречающиеся наиболее часто повторяющиеся значения.

Посчитаем сумму выручки от пользователей интерфейса А и B

Для этого пишем запрос на таблицу clickstream и группируем по версии.

SELECT
    version,
    SUM(category_count)
FROM clickstream_ab
GROUP BY version
ORDER BY version;
version sum
1 3135
2 4135

Ссылка на пример с вычислениями

Итак, версия 1 принесла нам 3135 условных единиц, а версия 2 - 4135 условных единиц. То есть уже посчитав первую метрику, мы можем сделать такой предположительный, не доказанный пока ничем вывод о том, что интерфейс B пока лучше. И как минимум можем сделать уже предположительно тоже, принять гипотезу H0 "нет различия", потому что мы эти различия уже видим. Заключаются они в том, что сумма выручки соответственно различается.

Построить для каждого интерфейса гистограммы распределения выручки

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

Гистограмма для интерфейса A

version_a

Гистограмма для интерфейса B

verision_b

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

Посчитаем математическое ожидание и дисперсию

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

WITH avg_calc AS (
    SELECT
        version,
        SUM(category_count * probability) AS mat
    FROM clickstream_ab
    GROUP BY version
),
tab AS (
    SELECT
        ca.version,
        ac.mat,
        SQRT(SUM(ca.probability * POWER(ca.category_count - ac.mat, 2))) AS sigma
    FROM clickstream_ab ca
    JOIN avg_calc ac ON ca.version = ac.version
    GROUP BY ca.version, ac.mat
)
SELECT
    *,
    mat / LEAD(mat) OVER (ORDER BY version) - 1 AS mat_diff,
    disp / LEAD(disp) OVER (ORDER BY version) - 1 AS sigma_diff
FROM tab
ORDER BY version;
version mat sigma mat_diff sigma_diff
1 389.1 129.4428 -0.204 0
2 489.1 129.4428

Ссылка на пример с вычислениями

Последнее, что мы сделали, посчитали долю математического ожидания старого в математическом ожидании нового. То есть от текущее математическое ожидание для 1 версии, поделили на математическое ожидание 2 версии и вычли единицу. То же самое сделали для среднеквадратичного отклонения.

Выводы

На основе пунктов 2, 3 и 4 мы сделали вывод о том, что у нас гипотеза H0 не принимается. Различия действительно есть, а это значит, что мы принимаем гипотезу H1. Интерфейс B лучше, по нашим метрикам, поэтому мы его и используем в дальнейшем в работе.

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

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

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff