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

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

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

Чтобы проверить гипотезу, нужно пройти семь шагов:

  • Сформулировать две гипотезы — нулевую и альтернативную (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. Давайте возьмем этот график в результаты этих вычислений.

sum_vs_dat

Если бы мы работали только с визуальными картинами, с визуализацией, как мы это делали раньше, мы бы сразу пошли делать вывод, что по сравнению с предыдущим месяцем выручка выросла в 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

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

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

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

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

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

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

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

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

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

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

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