p-values

Проверка гипотез в R

Richie Cotton

Data Evangelist at DataCamp

Уголовные процессы

  • Два возможных реальных состояния.
    1. Обвиняемый совершил преступление.
    2. Обвиняемый не совершал преступления.
  • Два возможных вердикта.
    1. Виновен.
    2. Не виновен.
  • Изначально обвиняемый считается невиновным.
  • Если доказательства подтверждают вину обвиняемого «вне разумных сомнений», выносится вердикт «виновен», в противном случае — «не виновен».
Проверка гипотез в R

Возраст первого знакомства с программированием

  • age_first_code_cut классифицирует, когда пользователь Stack Overflow начал программировать.
    1. "adult" — начал в 14 лет или позже.
    2. "child" — начал до 14 лет.
  • По данным предыдущих исследований, 35% разработчиков начали программировать в детстве.
  • Свидетельствует ли наша выборка о том, что среди специалистов по данным эта доля выше?
Проверка гипотез в R

Определения

Гипотеза — это утверждение о неизвестном параметре генеральной совокупности.

Проверка гипотез — это сравнение двух конкурирующих гипотез.

  • Нулевая гипотеза ($H_{0}$) — существующая «общепринятая» идея.

  • Альтернативная гипотеза ($H_{A}$) — новая идея исследователя.

Для нашей задачи

  • $H_{0}$: доля специалистов по данным, начавших программировать в детстве, равна доле разработчиков (35%).
  • $H_{A}$: доля специалистов по данным, начавших программировать в детстве, превышает 35%.
1 «Naught» — британский вариант слова «zero» (ноль). Исторически сложилось так, что произношение «H-naught» является международным стандартом для обозначения нулевой гипотезы.
Проверка гипотез в R
  • Два возможных реальных состояния.
    1. Обвиняемый совершил преступление.
    2. Обвиняемый не совершал преступления.
  • Два возможных вердикта.
    1. Виновен.
    2. Не виновен.
  • Изначально обвиняемый считается невиновным.
  • Если доказательства подтверждают вину обвиняемого «вне разумных сомнений», выносится вердикт «виновен», в противном случае — «не виновен».
  • На самом деле истинна либо $H_{A}$, либо $H_{0}$ (но не обе одновременно).
  • Результат проверки: либо «отвергнуть $H_{0}$», либо «не отвергать $H_{0}$».
  • Изначально нулевая гипотеза $H_{0}$ считается истинной.
  • Если данные выборки дают «значимые» свидетельства в пользу $H_{A}$, выбирается эта гипотеза, иначе — $H_{0}$.

Уровень значимости — это «разумное сомнение» в проверке гипотез.

Проверка гипотез в R

Одно- и двусторонние критерии

График плотности стандартного нормального распределения: центральная часть закрыта, видны только хвосты.

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

Критерий Хвосты
альтернативная отличается от нулевой двусторонний
альтернативная больше нулевой правосторонний
альтернативная меньше нулевой левосторонний

$H_{A}$: доля специалистов по данным, начавших программировать в детстве, больше 35%.

Альтернативная гипотеза использует «больше», поэтому нам нужен правосторонний критерий.

Проверка гипотез в R

p-values

  • Чем больше p-value, тем сильнее поддержка $H_{0}$.
  • Чем меньше p-value, тем сильнее доказательства против $H_{0}$.
  • Малые p-values означают, что статистика находится в хвосте нулевого распределения (распределения статистики при условии истинности нулевой гипотезы).
    • «p» в p-value означает вероятность (probability).
    • «Малый» p-value — это значение, близкое к нулю.
Проверка гипотез в R

Определение p-value

p-value — это

вероятность наблюдать тестовую статистику

столь же экстремальную или более экстремальную,

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

при условии, что нулевая гипотеза верна.

Проверка гипотез в R

Вычисление z-оценки

prop_child_samp <- stack_overflow %>%
  summarize(point_estimate = mean(age_first_code_cut == "child")) %>%
  pull(point_estimate)
0.388
prop_child_hyp <- 0.35
std_error <- 0.0096028
z_score <- (prop_child_samp - prop_child_hyp) / std_error
3.956
Проверка гипотез в R

Вычисление p-value

  • pnorm() — функция нормального CDF.
  • Левосторонний критерий → используйте значение по умолчанию lower.tail = TRUE.
  • Правосторонний критерий → установите lower.tail = FALSE.

 

p_value <- pnorm(z_score, lower.tail = FALSE)
3.818e-05
Проверка гипотез в R

Давайте потренируемся!

Проверка гипотез в R

Preparing Video For Download...