Przeprowadzanie testów t

Testowanie hipotez w R

Richie Cotton

Data Evangelist at DataCamp

Problemy dwupróbkowe

  • Innym problemem jest porównywanie statystyk próby między grupami zmiennej.
  • converted_comp jest zmienną numeryczną.
  • age_first_code_cut jest zmienną kategoryczną z poziomami ("child" i "adult").
  • Czy użytkownicy, którzy zaczęli programować jako dzieci, są przeciętnie lepiej wynagradzani niż ci, którzy zaczęli jako dorośli?
Testowanie hipotez w R

Hipotezy

$H_{0}$: Średnie wynagrodzenie (w USD) jest takie samo dla osób, które programowały po raz pierwszy jako dziecko, i dla tych, które zaczęły jako dorośli.

$H_{0}$: $\mu_{child} = \mu_{adult}$

$H_{0}$: $\mu_{child} - \mu_{adult} = 0$

$H_{A}$: Średnie wynagrodzenie (w USD) jest wyższe dla osób, które programowały po raz pierwszy jako dziecko, niż dla tych, które zaczęły jako dorośli.

$H_{A}$: $\mu_{child} > \mu_{adult}$

$H_{A}$: $\mu_{child} - \mu_{adult} > 0$

Testowanie hipotez w R

Obliczanie statystyk grupowych

stack_overflow %>% 
  group_by(age_first_code_cut) %>% 
  summarize(mean_compensation = mean(converted_comp))
# A tibble: 2 x 2
  age_first_code_cut mean_compensation
  <chr>                          <dbl>
1 adult                        111544.
2 child                        138275.
Testowanie hipotez w R

Statystyki testowe

  • Średnia próbkowa szacuje średnią populacyjną.
  • $\bar{x}$ oznacza średnią próbkową.
  • $\bar{x}_{child}$ to oryginalna średnia próbkowa wynagrodzenia dla osób, które zaczęły kodować jako dzieci.
  • $\bar{x}_{adult}$ to oryginalna średnia próbkowa wynagrodzenia dla osób, które zaczęły kodować jako dorośli.
  • $\bar{x}_{child} - \bar{x}_{adult}$ jest statystyką testową.
  • Wyniki z są jednym z rodzajów (standaryzowanych) statystyk testowych.
Testowanie hipotez w R

Standaryzacja statystyki testowej

$z = \dfrac{\text{statystyka próby} - \text{parametr populacji}}{\text{błąd standardowy}}$

$t = \dfrac{\text{różnica statystyk próby} - \text{różnica parametrów populacji}}{\text{błąd standardowy}}$

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) - (\mu_{\text{child}} - \mu_{\text{adult}})}{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

Testowanie hipotez w R

Błąd standardowy

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

$s$ to odchylenie standardowe zmiennej.

$n$ to liczebność próby (liczba obserwacji/wierszy w próbie).

Testowanie hipotez w R

Przy założeniu prawdziwości hipotezy zerowej

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) - (\mu_{\text{child}} - \mu_{\text{adult}})}{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

$H_{0}$: $\mu_{\text{child}} - \mu_{\text{adult}} = 0$

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) }{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

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

stack_overflow %>%
  group_by(age_first_code_cut) %>%
  summarize(
    xbar = mean(converted_comp),
    s = sd(converted_comp),
    n = n()
  )
# A tibble: 2 x 4
  age_first_code_cut    xbar       s     n
  <chr>                <dbl>   <dbl> <int>
1 adult              111544. 270381.  1579
2 child              138275. 278130.  1001
Testowanie hipotez w R

Obliczanie statystyki testowej

# A tibble: 2 x 4
  age_first_code_cut    xbar       s     n
  <chr>                <dbl>   <dbl> <int>
1 adult              111544. 270381.  1579
2 child              138275. 278130.  1001

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

numerator <- xbar_child - xbar_adult
denominator <- sqrt(
  s_child ^ 2 / n_child + s_adult ^ 2 / n_adult
)
t_stat <- numerator / denominator
2.4046
Testowanie hipotez w R

Czas na ćwiczenia!

Testowanie hipotez w R

Preparing Video For Download...