Одной из самых распространённых задач современной аналитики является формирование суждений о большой совокупности (например, о миллионах пользователей приложения), опираясь на данные лишь о небольшой части этой совокупности - выборке. Можно ли сделать вывод о миллионной аудитории крупного мобильного приложения, собрав данные об использовании лишь для 100 пользователей? Или стоит собрать данные для 1000 пользователей? Какую вероятность ошибиться при анализе мы можем допустить: 5% или 1%? Относятся ли две выборки к одной совокупности, или между ними есть ощутимая значимая разница и они относятся к разным совокупностям? Точность прогноза и вероятность ошибки при ответе на эти и другие вопросы поддаются вполне конкретным расчётам и могут корректироваться в зависимости от потребностей продукта и бизнеса на этапе планирования и подготовки эксперимента. Рассмотрим подробнее, как параметры эксперимента и статистические критерии оказывают влияние на результаты анализа и выводы обо всей совокупности, а для этого смоделируем тысячу A/A, A/B и A/B/C/D тестов.

Описание применения тех или иных статистических тестов в данной статье носит абстрактный характер, хотя оно дано достаточно подробно, чтобы можно было использовать это описание как шаблон уже для конкретных случаев. Если всё же возникнет необходимость в хорошем, наглядном примере применения того или иного теста рекомендую книгу "100 Statistical Tests 3rd Edition" автора Gopal K Kanji. Также рекомендую ознакомиться с хорошими вводными статьями по статистическим тестам "Как выбрать правильный стат тест для разных метрик" и "Статистические тесты и проверка гипотез в R". О том, как выглядит A/B тест на практике, с какими основными этапами и величинами сталкиваешься, очень хорошо описано в статье "База: айсберг A/B-тестов".

Базовые распределения вероятностей

В данной статье будут рассмотрены четыре основных статистических критерия, связанных с четырьмя основными типами распределений вероятностей:

  • z-статистика: стандартизированное значение среднего выборки \overline{x} из совокупности при известном размере выборки n, среднем совокупности \mu и стандартном отклонении совокупности \sigma. Величины z-статистики для разных выборочных средних \overline{x} принадлежат Нормальному (Стандартному) Распределению. То же самое справедливо для пропорции выборки \hat{p} и пропорции совокупности p_0.

  • t-статистика: стандартизированное значение среднего выборки \overline{x} из совокупности при известном размере выборки n, среднем совокупности \mu и стандартном отклонении выборки s. Величины t-статистики для разных выборочных средних \overline{x} принадлежат Распределению Стьюдента (t-Распределению).

  • Критерий хи-квадрат: представляет собой сумму квадратов случайных величин Z_i из Стандартного (Нормального) Распределения. Число слагаемых в сумме будет являться степенью свободы k. Величины \tilde{\chi}^2-статистики для разных Z_i принадлежат Распределению Хи-квадрат.

  • F-статистика: представляет собой отношение двух случайных величин S_1 и S_2 из распределения Хи-квадрат, делённых на свои собственные степени свободы d_1 и d_2. Величины F-статистики для разных S_1, S_2, d_1 и d_2 принадлежат Распределению Фишера.

Доверительные интервалы

Также речь пойдёт о таком понятии как доверительный интервал: "Доверительным называют интервал, который покрывает неизвестный параметр с заданной надёжностью". Общий вид для большинства формул доверительных интервалов следющий:

CI = c \pm MOE,

где CI - это Confidence Interval или Доверительный интервал, c - это некоторое центральное значение (обычно одна из основных выборочных метрик, таких как, среднее выборки \overline{x} или пропорция выборки \hat{p}) и MOE - это Margin of Error или Предельная ошибка выборки.

Список статистических тестов

  1. Z-тест одновыборочный для среднего значения совокупности

  2. Z-тест двухвыборочный для разницы средних значений двух совокупностей

  3. Z-тест одновыборочный для пропорции одной совокупности

  4. Z-тест двухвыборочный для разницы пропорций двух совокупностей

  5. T-тест одновыборочный для среднего значения совокупности

  6. T-тест двухвыборочный для разницы средних значений двух совокупностей (дисперсии совокупностей неизвестны, но равны)

  7. T-тест двухвыборочный для разницы средних значений двух совокупностей (дисперсии совокупностей неизвестны и не равны)

  8. \tilde{\chi}^2-тест одновыборочный для стандартного отклонения совокупности

  9. F-тест двухвыборочный для отношения дисперсий двух совокупностей

  10. F-тест для оценки разброса средних у k совокупностей по k выборкам - дисперсионный анализ (ANOVA)

1. Z-тест одновыборочный для среднего значения совокупности

Формула статистики: (см. Нормальное Распределение)

z=\frac{\overline{x}-\mu_0}{({\sigma}/\sqrt n)},

Описание применения: допустим в процессе эксперимента получена одна выборка размером n. Также расчитано среднее значение выборки \overline{x}, стандартное отклонение выборки s, и из предыдущих наблюдений известно стандартное отклонение совокупности \sigma. Для того, чтобы получить интервал относительно \overline{x}, в котором с вероятностью 95\% лежит среднее значение всей совокупности \mu, из которой взята выборка, воспользуемся следующей формулой:

CI = \overline{x} \pm MOE = \overline{x} \pm z_{1-\alpha/2}*\frac{\sigma}{\sqrt n}

где \alpha = 0.05 - это вероятность ошибки (5\%), т. е. процент предельных выборок, для которых среднее сопокупности \mu ошибочно не попало в доверительный интервал.

Исходный код на Github

Эксперименты: Проведём 1000 экспериментов с одной выборкой разного размера n. Доверительный интервал будет показан голубым цветом и будет становиться точнее (сужаться) по мере увелечения размера выборки, т. к. будет уменьшаться значение MOE:

MOE = z_{1-\alpha/2}*\frac{\sigma}{\sqrt n}
  • Размер выборки n=5:

    Из 1000 тестов 44 (4.40 %) ошибочно показали, что \mu_0 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 4.40 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и z_{0.975}-статистике.

  • Размер выборки n=20:

    Из 1000 тестов 49 (4.90 %) ошибочно показали, что \mu_0 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 4.90 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и z_{0.975}-статистике.

  • Размер выборки n=100:

    Из 1000 тестов 54 (5.40 %) ошибочно показали, что \mu_0 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.40 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и z_{0.975}-статистике.

(к оглавлению)

2. Z-тест двухвыборочный для разницы средних значений двух совокупностей

Формула статистики:

z=\frac{(\overline{x}_1 - \overline{x}_2) - (\mu_{1 } - \mu_{2 })}{\sqrt{\frac{\sigma_1^2}{n_1} + \frac{\sigma_2^2}{n_2}}}

Описание применения: допустим в процессе эксперимента получено две выборки размером n_{1} и n_{2 } из двух совокупностей. Также расчитано среднее значение выборок \overline{x}_{1 } и \overline{x}_2, их стандартное отклонение s_{1 } и s_{2 }, и из предыдущих наблюдений известно стандартное отклонение двух совокупностей \sigma_{1 } и \sigma_{2 }. Для того, чтобы получить интервал относительно разницы средних двух выборок (\overline{x}_{1 } - \overline{x}_2), в котором с вероятностью 95\% лежит разница средних значений двух совокупностей (\mu_{1 } - \mu_{2 }), из которых взяты выборки, воспользуемся следующей формулой:

CI = (\overline{x}_1 - \overline{x}_2) \pm MOE = (\overline{x}_1 - \overline{x}_2) \pm z_{1-\alpha/2}*\sqrt{\frac{\sigma_1^2}{n_1} + \frac{\sigma_2^2}{n_2}}

где \alpha = 0.05 - это вероятность ошибки (5\%), т. е. процент предельных выборок, для которых разница средних значений сопокупностей (\mu_{1 } - \mu_{2 }) ошибочно не попала в доверительный интервал.

Исходный код на Github

Эксперименты: Проведём 1000 экспериментов с двумя выборками разного размера n_1 и n_2. Доверительный интервал будет показан голубым цветом и будет становиться точнее (сужаться) по мере увелечения размеров выборок, т. к. будет уменьшаться значение MOE:

MOE = z_{1-\alpha/2}*\sqrt{\frac{\sigma_1^2}{n_1} + \frac{\sigma_2^2}{n_2}}

2.1. Моделирование 1000 A/A-тестов (μ1 = μ2 = 10, σ1 = σ2 = 4)

  • Размеры выборок n_1=10, n_2=5:

    Из 1000 тестов 44 (4.40 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 4.40 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и z_{0.975}-статистике.

  • Размеры выборок n_1=20, n_2=40:

    Из 1000 тестов 48 (4.80 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 4.80 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и z_{0.975}-статистике.

  • Размеры выборок n_1=200, n_2=100:

    Из 1000 тестов 38 (3.80 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 3.80 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и z_{0.975}-статистике.

2.2. Моделирование 1000 A/B-тестов (μ1 = 15, μ2 = 10, σ1 = 2, σ2 = 4)

  • Размеры выборок n_1=10, n_2=5:

    Из 1000 тестов 43 (4.30 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 4.30 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и z_{0.975}-статистике.

  • Размеры выборок n_1=20, n_2=40:

    Из 1000 тестов 39 (3.90 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 3.90 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и z_{0.975}-статистике.

  • Размеры выборок n_1=200, n_2=100:

    Из 1000 тестов 63 (6.30 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 6.30 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и z_{0.975}-статистике.

(к оглавлению)

3. Z-тест одновыборочный для пропорции одной совокупности

Формула статистики:

z=\frac{\hat{p} - p_0}{\sqrt{\frac{\hat{p} (1-\hat{p})}{n}}}

Описание применения: допустим в процессе эксперимента получена одна выборка размером n. Также расчитана пропорция выборки \hat{p}. Для того, чтобы получить интервал относительно пропорции выборки \hat{p}, в котором с вероятностью 95\% лежит пропорция всей совокупности p_{0 }, воспользуемся следующей формулой:

CI = \hat{p} \pm MOE = \hat{p} \pm z_{1-\alpha/2}*\sqrt{\frac{\hat{p} (1-\hat{p})}{n}}

где \alpha = 0.05 - это вероятность ошибки (5\%), т. е. процент предельных выборок, для которых пропорция сопокупности p_0 ошибочно не попала в доверительный интервал.

Исходный код на Github

Более развёрнутый пример: Допустим ситуацию, когда реклама была показана 10 000 пользователей и 40\% из них перешли по ней (кликнули). Невозможно проанализировать данные по переходам всех пользователей, и, чтобы установить приблизительный процент переходов (кликов) проводятся эксперименты со случайными группами пользователей (выборками) размером 40, 200 и 1000. Подобные статистические эксперименты по выяснению процента пользователей, перешедших по рекламе, можно смоделировать с помощью нескольких биномиальных распределений для выборок размером 40, 200, 1000, и популяции размером 10 000. Это обусловленно тем, что данный процесс является дихотомическим, т. к. есть всего два состояния: "переход по рекламе" и "игнорирование рекламы". Чем больше размер выборки, тем более точным является доверительный интервал (показан голубым цветом), т. к. будет уменьшаться значение MOE:

MOE = z_{1-\alpha/2}*\sqrt{\frac{\hat{p} (1-\hat{p})}{n}}
  • Размер выборки n=40:

    Из 1000 тестов 56 (5.60 %) ошибочно показали, что p_0 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.60 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и z_{0.975}-статистике.

  • Размер выборки n=200:

    Из 1000 тестов 53 (5.30 %) ошибочно показали, что p_0 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.30 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и z_{0.975}-статистике.

  • Размер выборки n=1000:

    Из 1000 тестов 55 (5.50 %) ошибочно показали, что p_0 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.50 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и z_{0.975}-статистике.

(к оглавлению)

4. Z-тест двухвыборочный для разницы пропорций двух совокупностей

Формула статистики:

z=\frac{(\hat{p}_1 - \hat{p}_2) - (p_{1 } - p_{2 })}{\sqrt{\frac{\hat{p}_1(1 - \hat{p}_1)}{n_1} + \frac{\hat{p}_2(1 - \hat{p}_2)}{n_2}}}

Описание применения: допустим в процессе эксперимента получено две выборки размером n_{1} и n_{2 }. Также расчитаны пропорции выборок \hat{p}_1 и \hat{p}_2. Для того, чтобы получить интервал относительно разницы пропорций выборок (\hat{p}_{1 } - \hat{p}_{2 }), в котором с вероятностью 95\% лежит разница между пропорциями двух совокупностей (p_{1 } - p_{2 }), воспользуемся следующей формулой:

CI = (\hat{p}_1 - \hat{p}_2) \pm MOE = (\hat{p}_1 - \hat{p}_2) \pm z_{1-\alpha/2}*\sqrt{\frac{\hat{p}_1(1 - \hat{p}_1)}{n_1} + \frac{\hat{p}_2(1 - \hat{p}_2)}{n_2}}

где \alpha = 0.05 - это вероятность ошибки (5\%), т. е. процент предельных выборок, для которых разница пропорций сопокупностей (p_{1 } - p_{2 }) ошибочно не попала в доверительный интервал.

Исходный код на Github

Эксперименты: Проведём 1000 экспериментов с двумя выборками разного размера n_1 и n_2. Доверительный интервал будет показан голубым цветом и будет становиться точнее (сужаться) по мере увелечения размеров выборок, т. к. будет уменьшаться значение MOE:

MOE = z_{1-\alpha/2}*\sqrt{\frac{\hat{p}_1(1 - \hat{p}_1)}{n_1} + \frac{\hat{p}_2(1 - \hat{p}_2)}{n_2}}
  • Размеры выборок n_1=40, n_2=100:

    Из 1000 тестов 61 (6.10 %) ошибочно показали, что (p_1 - p_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 6.10 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и z_{0.975}-статистике.

  • Размеры выборок n_1=200, n_2=400:

    Из 1000 тестов 55 (5.50 %) ошибочно показали, что (p_1 - p_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.50 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и z_{0.975}-статистике.

  • Размеры выборок n_1=1000, n_2=500:

    Из 1000 тестов 55 (5.50 %) ошибочно показали, что (p_1 - p_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.50 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и z_{0.975}-статистике.

(к оглавлению)

5. T-тест одновыборочный для среднего значения совокупности

Формула статистики: (см. Распределение Стьюдента)

t=\frac{\overline{x}-\mu_0} {( s / \sqrt{n} )}, df=n-1

Описание применения: допустим в процессе эксперимента получена одна выборка размером n. Также расчитано среднее значение выборки \overline{x}, стандартное отклонение s. Для того, чтобы получить интервал относительно \overline{x}, в котором с вероятностью 95\% лежит среднее значение всей совокупности \mu, из которой взята выборка, воспользуемся следующей формулой:

CI = \overline{x} \pm MOE = \overline{x} \pm t_{1-\alpha/2, df}*\frac{s}{\sqrt n}

где \alpha = 0.05 - это вероятность ошибки (5\%), т. е. процент предельных выборок, для которых среднее сопокупности \mu ошибочно не попало в доверительный интервал, и df - число степеней свободы для Распределения Стьдента (t-Распределения) случайной величины.

Исходный код на Github

Эксперименты: Проведём 1000 экспериментов с одной выборкой разного размера n. Доверительный интервал будет показан голубым цветом и будет становиться точнее (сужаться) по мере увелечения размера выборки, т. к. будет уменьшаться значение MOE:

MOE = t_{1-\alpha/2, df}*\frac{s}{\sqrt n}
  • Размер выборки n=5:

    Из 1000 тестов 62 (6.20 %) ошибочно показали, что \mu_0 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 6.20 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и t_{0.975, 4}-статистике.

  • Размер выборки n=20:

    Из 1000 тестов 55 (5.50 %) ошибочно показали, что \mu_0 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.50 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и t_{0.975, 19}-статистике.

  • Размер выборки n=100:

    Из 1000 тестов 47 (4.70 %) ошибочно показали, что \mu_0 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 4.70 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и t_{0.975, 99}-статистике.

(к оглавлению)

6. T-тест двухвыборочный для разницы средних значений двух совокупностей (дисперсии совокупностей неизвестны, но равны)

Формула статистики:

t=\frac{(\overline{x}_1 - \overline{x}_2) - (\mu_{1 } - \mu_{2 })}{s_p\sqrt{\frac{1}{n_1} + \frac{1}{n_2}}}, s_p^2=\frac{(n_1 - 1)s_1^2 + (n_2 - 1)s_2^2}{n_1 + n_2 - 2}, df=n_1 + n_2 - 2

Описание применения: допустим в процессе эксперимента получено две выборки размером n_{1} и n_{2 } из двух совокупностей. Расчитано среднее значение выборок \overline{x}_{1 } и \overline{x}_2, их стандартное отклонение s_{1 } и s_{2 }. Также известно, что дисперсии двух совокупностей равны. Для того, чтобы получить интервал относительно разницы средних двух выборок (\overline{x}_{1 } - \overline{x}_2), в котором с вероятностью 95\% лежит разница средних значений двух совокупностей (\mu_{1 } - \mu_{2 }), из которых взяты выборки, воспользуемся следующей формулой:

CI = (\overline{x}_1 - \overline{x}_2) \pm MOE = (\overline{x}_1 - \overline{x}_2) \pm t_{1-\alpha/2,df}*s_p\sqrt{\frac{1}{n_1} + \frac{1}{n_2}}

где \alpha = 0.05 - это вероятность ошибки (5\%), т. е. процент предельных выборок, для которых разница средних значений сопокупности (\mu_{1 } - \mu_{2 }) ошибочно не попало в доверительный интервал, и df - число степеней свободы для Распределения Стьдента (t-Распределения) случайной величины.

Исходный код на Github

Эксперименты: Проведём 1000 экспериментов с двумя выборками разного размера n_1 и n_2. Доверительный интервал будет показан голубым цветом и будет становиться точнее (сужаться) по мере увелечения размеров выборок, т. к. будет уменьшаться значение MOE:

MOE = t_{1-\alpha/2,df}*s_p\sqrt{\frac{1}{n_1} + \frac{1}{n_2}}

6.1. Моделирование 1000 A/A-тестов (μ1 = μ2 = 10, σ1 = σ2 = 3)

  • Размеры выборок n_1=10, n_2=5:

    Из 1000 тестов 69 (6.90 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 6.90 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и t_{0.975, 13}-статистике.

  • Размеры выборок n_1=20, n_2=40:

    Из 1000 тестов 70 (7.00 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 7.00 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и t_{0.975, 58}-статистике.

  • Размеры выборок n_1=200, n_2=100:

    Из 1000 тестов 44 (4.40 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 4.40 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и t_{0.975, 298}-статистике.

6.2. Моделирование 1000 A/B-тестов (μ1 = 12, μ2 = 10, σ1 = σ2 = 3)

  • Размеры выборок n_1=10, n_2=5:

    Из 1000 тестов 77 (7.70 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 7.70 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и t_{0.975, 13}-статистике.

  • Размеры выборок n_1=20, n_2=40:

    Из 1000 тестов 53 (5.30 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.30 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и t_{0.975, 58}-статистике.

  • Размеры выборок n_1=200, n_2=100:

    Из 1000 тестов 59 (5.90 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.90 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и t_{0.975, 298}-статистике.

(к оглавлению)

7. T-тест двухвыборочный для разницы средних значений двух совокупностей (дисперсии совокупностей неизвестны и не равны)

Формула статистики:

t=\frac{(\overline{x}_1 - \overline{x}_2) - (\mu_{1 } - \mu_{2 })}{\sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}}}, df = \frac{\left(\dfrac{s_1^2}{n_1}+\dfrac{s_2^2}{n_2}\right)^2} {\dfrac{\left(\dfrac{s_1^2}{n_1}\right)^2}{n_1-1} + \dfrac{\left(\dfrac{s_2^2}{n_2}\right)^2}{n_2-1}}

Описание применения: допустим в процессе эксперимента получено две выборки размером n_{1} и n_{2 } из двух совокупностей. Расчитано среднее значение выборок \overline{x}_{1 } и \overline{x}_2, их стандартное отклонение s_{1 } и s_{2 }. Также известно, что дисперсии двух совокупностей не равны. Для того, чтобы получить интервал относительно разницы средних двух выборок (\overline{x}_{1 } - \overline{x}_2), в котором с вероятностью 95\% лежит разница средних значений двух совокупностей (\mu_{1 } - \mu_{2 }), из которых взяты выборки, воспользуемся следующей формулой:

CI = (\overline{x}_1 - \overline{x}_2) \pm MOE = (\overline{x}_1 - \overline{x}_2) \pm t_{1-\alpha/2,df}*\sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}}

где \alpha = 0.05 - это вероятность ошибки (5\%), т. е. процент предельных выборок, для которых разница средних значений сопокупности (\mu_{1 } - \mu_{2 }) ошибочно не попало в доверительный интервал.

Исходный код на Github

Эксперименты: Проведём 1000 экспериментов с двумя выборками разного размера n_1 и n_2. Доверительный интервал будет показан голубым цветом и будет становиться точнее (сужаться) по мере увелечения размеров выборок, т. к. будет уменьшаться значение MOE:

MOE = t_{1-\alpha/2,df}*\sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}}

7.1. Моделирование 1000 A/B-тестов (μ1 = μ2 = 10, σ1 = 2, σ2 = 4)

  • Размеры выборок n_1=10, n_2=5:

    Из 1000 тестов 54 (5.40 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.40 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и t_{0.975, df}-статистике.

  • Размеры выборок n_1=20, n_2=40:

    Из 1000 тестов 51 (5.10 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.10 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и t_{0.975, df}-статистике.

  • Размеры выборок n_1=200, n_2=100:

    Из 1000 тестов 50 (5.00 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.00 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и t_{0.975, df}-статистике.

7.2. Моделирование 1000 A/B-тестов (μ1 = 20, μ2 = 15, σ1 = 2, σ2 = 4)

  • Размеры выборок n_1=10, n_2=5:

    Из 1000 тестов 53 (5.30 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.30 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и t_{0.975, df}-статистике.

  • Размеры выборок n_1=20, n_2=40:

    Из 1000 тестов 52 (5.20 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.20 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и t_{0.975, df}-статистике.

  • Размеры выборок n_1=200, n_2=100:

    Из 1000 тестов 56 (5.60 %) ошибочно показали, что (\mu_1 - \mu_2) находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.60 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%) и t_{0.975, df}-статистике.

(к оглавлению)

8. Хи-квадрат-тест одновыборочный для стандартного отклонения совокупности

Формула статистики: (см. Распределение Хи-квадрат)

\chi^2=(n-1)\frac{s^2}{\sigma^2_0}, df=n-1

Описание применения: допустим в процессе эксперимента получена одна выборка размером n и расчитано стандартное отклонение выборки s. Для того, чтобы получить интервал относительно s, в котором с вероятностью 95\% лежит стандартное отклонение всей совокупности \sigma, из которой взята выборка, воспользуемся следующей формулой:

CI = \left[\sqrt{(n-1)\frac{s^2}{\chi^2_{\alpha/2, df}}}, \sqrt{(n-1)\frac{s^2}{\chi^2_{1-\alpha/2, df}}}\right]

где \alpha = 0.05 - это вероятность ошибки (5\%), т. е. процент предельных выборок, для которых стандартное отклонение совокупности \sigma ошибочно не попало в доверительный интервал.

Исходный код на Github

Эксперименты: Проведём 1000 экспериментов с одной выборкой разного размера n. Доверительный интервал будет показан зелёным цветом и будет становиться точнее (сужаться) по мере увелечения размера выборки. Это связано в основном с тем, что значения \chi^2_{\alpha/2, df} и \chi^2_{1-\alpha/2, df} будут увеличиваться, при увеличении числа степеней свободы df = n - 1:

  • Размер выборки n=5:

    Из 1000 тестов 42 (4.20 %) ошибочно показали, что \sigma^2_0 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 4.20 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%), \chi^2_{0.025, 4}-статистике и \chi^2_{0.975, 4}-статистике.

  • Размер выборки n=20:

    Из 1000 тестов 48 (4.80 %) ошибочно показали, что \sigma^2_0 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 4.80 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%), \chi^2_{0.025, 19}-статистике и \chi^2_{0.975, 19}-статистике.

  • Размер выборки n=100:

    Из 1000 тестов 50 (5.00 %) ошибочно показали, что \sigma^2_0 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.00 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%), \chi^2_{0.025, 99}-статистике и \chi^2_{0.975, 99}-статистике.

(к оглавлению)

9. F-тест двухвыборочный для отношения дисперсий двух совокупностей

Формула статистики: (см. Распределение Фишера)

F=\frac{s_1^2}{s_2^2}, d1 = n_1 - 1, d2 = n_2 - 1

Описание применения: допустим в процессе эксперимента получено две выборки размером n_{1} и n_{2 } из двух совокупностей и расчитаны их стандартные отклонения s_{1 } и s_{2 }. Доверительный интервал, в котором с вероятностью 95\% будет находиться отношение s_1^2/s_2^2 для совокупностей с незначительной разницей в дисперсиях \sigma_1^2 и \sigma_2^2 будет следующим:

CI = \left[F_{\alpha/2, d1, d2}, F_{1-\alpha/2, d1, d2}\right]

где \alpha = 0.05 - это вероятность ошибки (5\%), т. е. процент предельных выборок, для которых отношение s_1^2/s_2^2 ошибочно не попало в доверительный интервал при равных дисперсиях совокупностей \sigma_1^2 и \sigma_2^2.

Исходный код на Github

Эксперименты: Проведём 1000 экспериментов с двумя выборками разного размера n_1 и n_2. Стандартное отклонение s_1 будет показано голубым цветом, а s_2 - зелёным цветом, по мере увелечения размеров выборок вариабельность s_1 и s_2 будет снижаться, а, следовательно, отношение s^2_1/s^2_2 будет находиться всё ближе к 1:

  • Размеры выборок n_1=10, n_2=5:

    Из 1000 тестов 64 (6.40 %) ошибочно показали, что s^2_1/s^2_2 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 6.40 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%), F_{0.025, 9, 4}-статистике и F_{0.975, 9, 4}-статистике.

  • Размеры выборок n_1=20, n_2=40:

    Из 1000 тестов 52 (5.20 %) ошибочно показали, что s^2_1/s^2_2 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.20 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%), F_{0.025, 19, 39}-статистике и F_{0.975, 19, 39}-статистике.

  • Размеры выборок n_1=200, n_2=100:

    Из 1000 тестов 53 (5.30 %) ошибочно показали, что s^2_1/s^2_2 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.30 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%), F_{0.025, 199, 99}-статистике и F_{0.975, 199, 99}-статистике.

(к оглавлению)

10. F-тест для оценки разброса средних у k совокупностей по k выборкам - дисперсионный анализ (ANOVA)

Формула статистики: (см. Распределение Фишера)

F=\frac{s_2^2}{s_1^2}, d1 = K - 1, d2 = N - Ks_1^2 = \frac{\sum_{j=1}^{k}\sum_{i=1}^{n_{k}}(x_{ij} - x_{\cdot j})^2}{N - K}, s_2^2 = \frac{\sum_{j=1}^{k}n_{j}(x_{\cdot j} - x_{\cdot\cdot})^2}{K - 1 }x_{\cdot j} = \frac{\sum_{i=1}^{n_j}x_{ij}}{n_j}, x_{\cdot\cdot} = \frac{\sum_{j=1}^{k}\sum_{i=1}^{n_{k}}x_{ij}}{N}

Описание применения: допустим в процессе эксперимента получено k выборок размером n_{1}, ... ,n_k из k совокупностей. Необходимо рассчитать внутригрупповую дисперсию s^2_1, а также дисперсию s^2_2 средних значений выборок \overline{x}_{\cdot 1 }, ... ,\overline{x}_{\cdot k } относительно общего среднего значения величин всех выборок \overline{x}_{\cdot\cdot }. Доверительный интервал, в котором с вероятностью 95\% будет находиться отношение s_2^2/s_1^2 для совокупностей с незначительной разницей в средних значениях \mu_1,...,\mu_k будет следующим:

CI = \left[F_{\alpha/2, d1, d2}, F_{1-\alpha/2, d1, d2}\right]

где \alpha = 0.05 - это вероятность ошибки (5\%), т. е. процент предельных выборок, для которых отношение s_2^2/s_1^2 ошибочно не попало в доверительный интервал при равных средних совокупностей \mu_1,...,\mu_k.

Исходный код на Github

Эксперименты: Проведём 1000 экспериментов с четырьмя выборками разного размера n_1, n_2, n_3 и n_4. Для каждого набора из 4х выборок будет расчитана внутригрупповая дисперсия s^2_1 и, соответственно, стандартное отклонение s_1, которое будет отображаться менее ярко рядом с обычным стандартным отклонением для каждой выборки (голубой, зелёный, фиолетовый и жёлтый цвета) относительно средних \overline{x}_{\cdot 1 }, \overline{x}_{\cdot 2 }, \overline{x}_{\cdot 3} и \overline{x}_{\cdot 4 }, а также внешнегрупповая дисперсия s^2_2 и стандартное отклонение s_2, которое будет отображаться красной решёткой относительно общего среднего значения всех выборок \overline{x}_{\cdot\cdot } (черная пунктирная линия):

10.1. Моделирование 1000 A/B/C/D-тестов (μ1=μ2=μ3=μ4)

  • \mu_1=\mu_2=\mu_3=\mu_4=10, \sigma_1 = 2, \sigma_2 = 3, \sigma_3 = 4, \sigma_4 = 6

  • Размеры выборок n_1=5, n_2=10, n_3=15, n_4=20:

    Из 1000 тестов 72 (7.20 %) ошибочно показали, что s^2_2/s^2_1 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 7.20 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%), F_{0.025, 3, 46}-статистике и F_{0.975, 3, 46}-статистике.

  • Размеры выборок n_1=50, n_2=100, n_3=150, n_4=200:

    Из 1000 тестов 52 (5.20 %) ошибочно показали, что s^2_2/s^2_1 находится за пределами доверительного интервала, т. е. ошибка I рода произошла в 5.20 % случаев, что было заложено вначале эксперимента с помощью \alpha = 0.05 (5\%), F_{0.025, 3, 496}-статистике и F_{0.975, 3, 496}-статистике.

10.2. Моделирование 1000 A/B/C/D-тестов (μ1≠μ2≠μ3≠μ4)

  • \mu_1=25, \mu_2=20, \mu_3=15, \mu_4=10, \sigma_1 = 2, \sigma_2 = 3, \sigma_3 = 4, \sigma_4 = 6

  • Размеры выборок n_1=5, n_2=10, n_3=15, n_4=20:

    В данных тестах s^2_2/s^2_1 всегда показывает критическое значение, выходящее за интервал \left[F_{0.025, 3, 46}, F_{0.975, 3, 46}\right], т. к. средние значения выборок существенно различаются, поэтому альтернативная гипотеза всегда верна для всех 1000 тестов.

(к оглавлению)

Заключение

Безусловно, одним из главных наблюдений, которое можно сделать - это то, что во всех случаях при увеличении размера выборки n доверительный интервал сужается (уменьшается MOE), т. е. мы получаем более точный прогноз того, где находится неизвестный нам параметр (например, среднее значение \mu или дисперсия \sigma^2 совокупности). Также при увеличении размера выборки снижается вариабельность дисперсии выборки s^2, она становится всё ближе по значению к дисперсии всей совокупности \sigma^2.

Следующим шагом в изучении может стать более детальное знакомство с планированием и конфигурацией настоящих А/B экспериментов, и способами их оптимизации, которые используются в реальных кейсах, например, как описано в следующих статьях:

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

Комментарии (13)


  1. vtal007
    11.04.2024 14:05

    Спасибо, мощно!


    1. nrsharip Автор
      11.04.2024 14:05

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


  1. T968
    11.04.2024 14:05

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

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


    1. Radisto
      11.04.2024 14:05

      Ну, эти субъекты в миллионной массе часто ведут себя как объекты. Пушкин-яблоко-нос. Предсказуемо схоже


    1. nrsharip Автор
      11.04.2024 14:05

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


      1. ChePeter
        11.04.2024 14:05
        +1

        воронку продаж придумали маркетологи для обоснования своего неумения применять математику


  1. teemour
    11.04.2024 14:05

    прекрасная статья с картинками


  1. ChePeter
    11.04.2024 14:05

    Это после промышленной революции, при переходе от мастерских к массовому производству и возник такой метод и такая математика

    Зачем проверять миллионы болтов, когда можно проверить тысячу?

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

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

    @Radisto пока вы меряете свойства одной группы, то у всей популяции уже "Лермонтов-груша-ухо" . Это субъекты и их будущее невозможно предсказать по прошлому. Это измерение свойств уже сделанных болтов так можно определять или свойства электронов/протонов. И все биржи предупреждают - доходы в прошлом ничего не говорят о доходах/потерях в будущем тоже именно поэтому.

    Так что статья красиво описывает методы, но вот применение их к клиентам/посетителям/брокерам не оправданно без тщательного доказательства применимости. (Это как бы прикладная математика называется)


    1. nrsharip Автор
      11.04.2024 14:05

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

      Мне кажется, в случае с данными пользователей продукта, можно провести аналогию, например, с социологическими опросами или с тестами на профориентацию. Согласен, что требуется постоянная "калибровка" таких тестов, но и A/B тесты в современных условиях проводят сотнями практически без остановок, что позволяет держать модели актуальными. То есть, условно, момент перехода "Пушкин-яблоко-нос" к "Лермонтов-груша-ухо" как раз и прокрасится на одном из A/B тестов.

      Также, на мой взгляд, главным всё же является вопрос репрезентативности выборки и по-настоящему случайного отбора. Наверное, стоит поправить самого себя, что качество данных всё же важнее их количества. В качестве яркого примера можно привести случай, когда Джордж Гэллап сделал более точный прогноз о победе Рузвельта, основываясь на опросе всего нескольких тысяч избирателей в противовес "Литерари дайджест", который опросил миллионы человек, но ошибся, т. к. выборка была явно смещённой (процесс отбора имел явный изъян).


  1. uchitel
    11.04.2024 14:05

    Очень круто. Интересно, почему все вертится вокруг критерия Неймана-Пирсона? На Хабре нет ни одной статьи в которой бы описывались критерий Вальда или критерий Байеса. Было бы круто если бы вы так же наглядно показали последовательные или инкапсулированные аналоги всех вышеприведенных тестов.


    1. nrsharip Автор
      11.04.2024 14:05

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

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

      Стоит также упомянуть, что я намеренно не стал раскрывать тему вероятности ошибки II рода \beta и тему статистической мощности в попытке максимально упростить подачу материала - рассмотрел только уровень значимости \alpha и эксперименты, где всегда верна нулевая гипотеза (кроме самого последнего). Познакомившись с принципом нулевой гипотезы на простых экспериментах будет уже легче освоить оставшиеся темы.


  1. Nergal2004
    11.04.2024 14:05

    Статистики, основанные на нормальном распределении, разжевываются практически в любом учебнике по статистике. Хотелось бы увидеть что-то не подразумевающее нормальное распределение исходных данных. А, допустим, логнормальное, бета-, гамма-, предельных значений. В тексте явно напрашивается добавить описание процедуры вычисления "достигнутого уровня значимости".


    1. nrsharip Автор
      11.04.2024 14:05

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