Одновыборочные тесты для долей

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

Richie Cotton

Data Evangelist at DataCamp

Повторение главы 1

  • Насколько правдоподобно утверждение о неизвестной доле генеральной совокупности?
  • Стандартная ошибка выборочной статистики вычислялась с помощью бутстреп-распределения.
  • На её основе рассчитывался стандартизированный тестовый статистик, ...
  • который использовался для вычисления p-значения, ...
  • а оно позволяло выбрать наиболее обоснованную гипотезу.
  • Теперь мы вычислим тестовый статистик без бутстреп-распределения.
Проверка гипотез в R

Стандартизированный тестовый статистик для долей

$p$: доля генеральной совокупности (неизвестный параметр)

$\hat{p}$: выборочная доля (выборочная статистика)

$p_{0}$: гипотетическая доля генеральной совокупности

$$ z = \frac{\hat{p} - \text{mean}(\hat{p})}{\text{standard error}(\hat{p})} = \frac{\hat{p} - p}{\text{standard error}(\hat{p})} $$

При условии истинности $H_{0}$: $p = p_{0}$, поэтому

$$ z = \dfrac{\hat{p} - p_{0}}{\text{standard error}(\hat{p})} $$

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

Упрощённый расчёт стандартной ошибки

$SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) \approx \sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}$

$SE_{\hat{p}} = \sqrt{\dfrac{p_{0}*(1-p_{0})}{n}}$

При условии истинности $H_{0}$:

$z = \dfrac{\hat{p} - p_{0}}{\sqrt{\dfrac{p_{0}*(1-p_{0})}{n}}}$

Формула использует только данные выборки ($\hat{p}$ и $n$) и гипотетический параметр ($p_{0}$).

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

Почему z, а не t?

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}{\sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}}$

  • $s$ вычисляется через $\bar{x}$, поэтому $\bar{x}$ оценивает и среднее, и стандартное отклонение генеральной совокупности.
  • Это увеличивает неопределённость оценки параметра.
  • t-распределение имеет более тяжёлые хвосты, чем нормальное.
  • Это обеспечивает дополнительный запас осторожности.
  • $\hat{p}$ входит только в числитель, поэтому достаточно z-оценок.
Проверка гипотез в R

Возрастные категории Stack Overflow

$H_{0}$: Доля пользователей SO моложе тридцати лет равна 0,5.

$H_{A}$: Доля пользователей SO моложе тридцати лет не равна 0,5.

alpha <- 0.01
stack_overflow %>% 
  count(age_cat)
# A tibble: 2 x 2
  age_cat         n
  <chr>       <int>
1 At least 30  1050
2 Under 30     1216
Проверка гипотез в R

Переменные для z

p_hat <- stack_overflow %>%
  summarize(prop_under_30 = mean(age_cat == "Under 30")) %>%
  pull(prop_under_30)
0.5366
p_0 <- 0.50
n <- nrow(stack_overflow)
2266
Проверка гипотез в R

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

$z = \dfrac{\hat{p} - p_{0}}{\sqrt{\dfrac{p_{0}*(1-p_{0})}{n}}}$

numerator <- p_hat - p_0
denominator <- sqrt(p_0 * (1 - p_0) / n)
z_score <- numerator / denominator
3.487
Проверка гипотез в R

Вычисление p-значения

ФРН нормального распределения. Часть кривой левее −2 выделена красным, правее 2 — зелёным. Односторонний левый («меньше»)

p_value <- pnorm(z_score) 

Односторонний правый («больше»)

p_value <- pnorm(z_score, lower.tail = FALSE)

Двусторонний («не равно»)

p_value <- pnorm(z_score) + 
  pnorm(z_score, lower.tail = FALSE)
p_value <- 2 * pnorm(z_score)
0.000244
p_value <= alpha
TRUE
Проверка гипотез в R

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

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

Preparing Video For Download...