- Формулируем гипотезы
- Определяем уровень значимости отклонения
- Отбираем данные из выборки
- Проведение статистического теста
- Проверка статистических критериев
- Интерпретация результатов
- Практика
Гипотеза — предположение о виде распределения и свойствах случайной величины. Гипотезу можно подтвердить или опровергнуть. Чтобы это сделать, мы применяем статистические методы к данным выборки. Эта формальная процедура называется проверкой гипотезы.
Чтобы проверить гипотезу, нужно пройти семь шагов:
- Сформулировать две гипотезы — нулевую и альтернативную (H₀ и H₁)
- Определить уровень значимости отклонения
- Отобрать данные из выборки
- Вычислить значения статистических критериев, отвечающих гипотезе H₀
- Вычислить критические области
- Проверить статистические критерии на предмет попадания в критическую область
- Интерпретировать достигнутый уровень значимости
P
и результаты
Конкретные детали могут различаться, но в любом случае при проверке гипотезы мы всегда следуем какой-то версии этих шагов.
Формулируем гипотезы
Обычно в начале исследования у нас есть первоначальная гипотеза — это предположение, которое мы хотим проверить. Дальше важно сформулировать ее в виде двух отдельных гипотез:
- Нулевая гипотеза — это предположение, что связи между переменными нет
- Альтернативная гипотеза — это предположение, что связь между переменными есть
Например, у нас есть два интерфейса — A и B. Представим, что мы хотим проверить, существует ли связь между интерфейсами и кликами. Мы формулируем гипотезу, что интерфейс B привлекательнее интерфейса A. Чтобы проверить эту гипотезу, сформулируем ее так:
- H₀: Интерфейсы A и B не отличаются — между переменными «интерфейс/клики» нет связи
- H₁: Интерфейс B приносит больше кликов — между переменными есть взаимосвязь
Определяем уровень значимости отклонения
Далее нужно определить уровень значимости отклонения или уровень риска. В формулах его часто обозначают как P-значение. Часто уровень значимости отклонения для нулевой гипотезы составляет 5%
. Попробуем объяснить подробнее:
- Есть риск, что в
5%
случаев мы отклоним нулевую гипотезу и ошибемся. На самом деле, связь между переменными будет, поэтому верна альтернативная гипотеза - Верно и обратное — в
95%
случаев мы отклоним нулевую гипотезу и будем правы. В реальности связи между переменным не будет, поэтому верна нулевая гипотеза
С уровнем значимости отклонения связано два важных понятия — ошибка первого рода и ложноположительное решение. Оба термина обозначают ситуацию, где мы отклонили гипотезу, которая оказалась верной.
Некоторые исследователи выбирают 1%
или 0,1%
. Это более строгий уровень значимости отклонения. Выбрав его, мы снижаем шанс попасть в ситуацию, при которой мы зря отклонили верную гипотезу.
Отбираем данные из выборки
Чтобы тестирование было достоверным, важно провести выборку и собрать репрезентативные данные. Если данные не репрезентативны, мы не сможем делать корректные выводы.
Вернемся к примеру с интерфейсами A и B. Чтобы мы достоверно проверили гипотезу, выборка должна состоять из равной доли пользователей интерфейса A и B. Также необходимо определить размер минимальной выборки и длительность нашего тестирования.
Проведение статистического теста
Существуют разные статистические тесты, но все они основаны на сравнении дисперсии двух видов:
- Внутригрупповая — отражает, насколько данные разбросаны внутри категории
- Межгрупповая — отражает, насколько категории отличаются друг от друга
Высокая межгрупповая дисперсия показывает, что группы практически не пересекаются. В таком случае статистический тест покажет низкое P-значение. Это значит, что различия между этими группами возникли неслучайно — между переменными есть связь.
Верно и обратное. Высокая внутригрупповая дисперсия связана с высоким P-значением. Скорее всего, различия между группами обусловлены случайностью — между переменными связи нет.
Выбор статистического теста зависит от типа переменных и уровня изменения собранных данных. Рассмотрим эту мысль на практике. Для этого вернемся к нашему примеру. Далее мы проведем двухвостый t-тест (two-tailed t-test). С его помощью мы проверим, действительно ли интерфейс B лучше A. В итоге мы получим:
- Оценку разницы в среднем количестве кликов
- Значение
P
— оно показывает, насколько вероятна разница, если нулевая гипотеза верна
Проверка статистических критериев
Теперь нужно взять результаты статистического теста и на их основании решить, отвергать или не отвергать нулевую гипотезу.
Если в ходе нашего теста мы обнаружили, что P-значение ниже уровня значимости 0,05
, то мы отвергаем нулевую гипотезу об отсутствии различий. Другими словами, интерфейсы A и B действительно дают разные результаты — разница в количестве собранных кликов не случайна.
Интерпретация результатов
В конце нашего исследования мы можем кратко описать:
- Исходные данные
- Результаты статистического теста
- Предполагаемое различие между средними значениями групп
- Соответствующее P-значение
Из всей этой информации мы делаем вывод, подтвердилась ли первоначальная гипотеза полученными результатами или нет. Говоря формальным языком, мы можем прийти к двум исходам:
- Не отвергать нулевую гипотезу
- Отвергнуть нулевую гипотезу, то есть подтвердить альтернативную гипотезу
Практика
Соберем данные датасета
SELECT * FROM orders;
order_name | created_at | amount |
---|---|---|
ballpoint pens | 2023-01-22T00:00:00.000Z | 500 |
calendars | 2023-01-21T00:00:00.000Z | 450 |
diaries | 2023-02-10T00:00:00.000Z | 100 |
erasers | 2023-02-09T00:00:00.000Z | 900 |
notebooks | 2023-02-01T00:00:00.000Z | 1500 |
t-shirts | 2023-01-02T00:00:00.000Z | 40 |
paperclips | 2023-02-26T00:00:00.000Z | 2000 |
paper | 2023-01-12T00:00:00.000Z | 400 |
scotch | 2023-01-13T00:00:00.000Z | 700 |
protractors | 2023-01-15T00:00:00.000Z | 450 |
Ссылка на пример с вычислениями
Теперь давайте посчитаем агрегатную функцию, сумму продаж.
SELECT
TO_CHAR(created_at, 'YYYY-MM') AS dat,
SUM(amount)
FROM orders
GROUP BY 1
ORDER BY 1;
dat | sum |
---|---|
2023-01 | 2540 |
2023-02 | 4500 |
Ссылка на пример с вычислениями
Первый вывод, который мы делаем на основе того, что у нас здесь есть. Сумма продаж у нас в январе была 2.5 тысячи, в феврале 4.5. Давайте возьмем этот график в результаты этих вычислений.
Если бы мы работали только с визуальными картинами, с визуализацией, как мы это делали раньше, мы бы сразу пошли делать вывод, что по сравнению с предыдущим месяцем выручка выросла в 1.7 раз. Но давайте добавим один параметр, который нам в этом поможет, разубедиться. Просто посчитаем количество заказов и средний чек.
SELECT
TO_CHAR(created_at, 'YYYY-MM') AS dat,
SUM(amount),
COUNT(1) AS cn,
AVG(amount) AS av
FROM orders
GROUP BY 1
ORDER BY 1;
dat | sum | cn | av |
---|---|---|---|
2023-01 | 2540 | 6 | 423.33 |
2023-02 | 4500 | 4 | 1125.00 |
Ссылка на пример с вычислениями
Смотрите, в январе у нас было 6 заказов, а в феврале 4. То есть в полтора раза упали продажи, но при этом выручка стала больше. Первый вывод, который мы можем сделать то, что у нас уменьшилось число покупок. Почему произошло так, что у нас увеличилась сумма продаж? Если сумма продаж увеличилась, а количество уменьшилось, следующее, что мы можем предположить, что стоимость одного заказа в феврале стала выше.
Средний чек в феврале составил 1125 единиц, в то время как в январе 423 единиц. То есть почти в три раза вырос средний чек, при том что в полтора раза упало количество и почти вдвое увеличилась выручка. Теперь давайте сами данные посмотрим и поймем что же тут не так. В январе у нас тут средние чеки: 450, 500, 400, 700, но в целом в одном и том же диапазоне все варьируется. Когда же мы смотрим февраль, у нас тут то 2000 покупка, то 1500, то 900 и минимум очень близко к тому, что было минимально в январе. Давайте исключим из вот этого расчета средней аномальные значения, которые есть в каждой из таблиц. Это пусть будет максимальная в феврале, так как она максимальная в принципе за весь исследуемый период и минимальная в январе, так как она тоже минимальная за весь период.
Для этого сделаем простую фильтрацию по name
. И давайте пересчитаем наши статистики.
SELECT
TO_CHAR(created_at, 'YYYY-MM') AS dat,
SUM(amount),
COUNT(1) AS cn,
AVG(amount) AS av
FROM orders
WHERE order_name NOT IN ('t-shirts', 'paperclips')
GROUP BY 1
ORDER BY 1;
dat | sum | cn | av |
---|---|---|---|
2023-01 | 2500 | 5 | 500.00 |
2023-02 | 2500 | 3 | 833.33 |
Ссылка на пример с вычислениями
Смотрите, что у нас произошло. Сумма продаж одинаковая, средний чек тоже устаканился, стал более стабильным и количество тоже выравнялось. Тем не менее вот это более нормальная картина, в этом с большей охотой хочется верить, что у нас там примерно одинаковый уровень продаж от месяца к месяцу.
Напомним, что у нас средняя ранее составляла разницу в три раза. Сейчас же разница в полтора раза. То есть аномальные значения, выбросы, влияют на статистику, на итоговые выборки. И статистика помогает выбирать аномалии данных.
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.