Jednoprzykładowe testy proporcji

Testowanie hipotez w R

Richie Cotton

Data Evangelist at DataCamp

Podsumowanie rozdziału 1

  • Czy twierdzenie o nieznanej proporcji populacji jest zasadne?
  • Błąd standardowy statystyki próby obliczono na podstawie rozkładu bootstrap.
  • Użyto go do obliczenia standaryzowanej statystyki testowej, ...
  • która posłużyła do obliczenia p-value, ...
  • a ta do wyboru bardziej prawdopodobnej hipotezy.
  • Teraz obliczymy statystykę testową bez rozkładu bootstrap.
Testowanie hipotez w R

Standaryzowana statystyka testowa dla proporcji

$p$: proporcja populacji (nieznany parametr populacji)

$\hat{p}$: proporcja próby (statystyka próby)

$p_{0}$: hipotetyczna proporcja populacji

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

Zakładając prawdziwość $H_{0}$: $p = p_{0}$, więc

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

Testowanie hipotez w R

Prostsze obliczenia błędu standardowego

$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}}$

Zakładając prawdziwość $H_{0}$:

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

Wykorzystuje tylko informacje z próby ($\hat{p}$ i $n$) oraz hipotetyczny parametr ($p_{0}$).

Testowanie hipotez w R

Dlaczego z zamiast 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$ jest obliczane na podstawie $\bar{x}$, więc $\bar{x}$ służy zarówno do estymacji średniej, jak i odchylenia standardowego populacji.
  • Zwiększa to niepewność estymacji parametru populacji.
  • Rozkład t ma grubsze ogony niż rozkład normalny.
  • Daje to dodatkowy margines ostrożności.
  • $\hat{p}$ występuje tylko w liczniku, dlatego z-score jest wystarczający.
Testowanie hipotez w R

Kategorie wiekowe Stack Overflow

$H_{0}$: Odsetek użytkowników SO poniżej 30 lat jest równy 0,5.

$H_{A}$: Odsetek użytkowników SO poniżej 30 lat nie jest równy 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
Testowanie hipotez w R

Zmienne dla 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
Testowanie hipotez w R

Obliczanie z-score

$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
Testowanie hipotez w R

Obliczanie p-value

Dystrybuanta rozkładu normalnego. Fragment krzywej poniżej -2 zaznaczono na czerwono, a powyżej 2 na zielono. Lewostronna („mniejsze niż")

p_value <- pnorm(z_score) 

Prawostronna („większe niż")

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

Dwustronna („różne od")

p_value <- pnorm(z_score) + 
  pnorm(z_score, lower.tail = FALSE)
p_value <- 2 * pnorm(z_score)
0.000244
p_value <= alpha
TRUE
Testowanie hipotez w R

Czas na ćwiczenia!

Testowanie hipotez w R

Preparing Video For Download...