Test niezależności chi-kwadrat

Testowanie hipotez w R

Richie Cotton

Data Evangelist at DataCamp

Powrót do testu proporcji

library(infer)
stack_overflow %>% 
  prop_test(
    hobbyist ~ age_cat,
    order = c("At least 30", "Under 30"),
    alternative = "two-sided",
    correct = FALSE
  )
# A tibble: 1 x 6
  statistic chisq_df   p_value alternative lower_ci upper_ci
      <dbl>    <dbl>     <dbl> <chr>          <dbl>    <dbl>
1      17.8        1 0.0000248 two.sided     0.0605    0.165
Testowanie hipotez w R

Niezależność zmiennych

Wynik poprzedniego testu hipotez: istnieją podstawy, by sądzić, że zmienne hobbyist i age_cat są ze sobą powiązane.

Jeśli odsetek sukcesów w zmiennej objaśnianej jest taki sam dla wszystkich kategorii zmiennej objaśniającej, obie zmienne są statystycznie niezależne.

1 Zmienne objaśniane i objaśniające są zdefiniowane w "Introduction to Regression in R", rozdział 1.
Testowanie hipotez w R

Satysfakcja z pracy a kategoria wiekowa

stack_overflow %>% 
  count(age_cat)
# A tibble: 2 x 2
  age_cat         n
  <chr>       <int>
1 At least 30  1050
2 Under 30     1211
stack_overflow %>% 
  count(job_sat)
# A tibble: 5 x 2
  job_sat                   n
  <fct>                 <int>
1 Very dissatisfied       159
2 Slightly dissatisfied   342
3 Neither                 201
4 Slightly satisfied      680
5 Very satisfied          879
Testowanie hipotez w R

Formułowanie hipotez

$H_{0}$: Kategorie wiekowe są niezależne od poziomu satysfakcji z pracy.

$H_{A}$: Kategorie wiekowe nie są niezależne od poziomu satysfakcji z pracy.

alpha <- 0.1
  • Statystyka testowa oznaczana $\chi^{2}$.
  • Przy założeniu niezależności: jak bardzo wyniki obserwowane odbiegają od oczekiwanych?
Testowanie hipotez w R

Wizualizacja eksploracyjna: proporcjonalny wykres słupkowy

ggplot(stack_overflow, aes(job_sat, fill = age_cat)) +
  geom_bar(position = "fill") +
  ylab("proportion")

Proporcjonalny skumulowany wykres słupkowy satysfakcji z pracy według kategorii wiekowej

Testowanie hipotez w R

Test niezależności chi-kwadrat za pomocą chisq_test()

library(infer)
stack_overflow %>% 
  chisq_test(age_cat ~ job_sat)
# A tibble: 1 x 3
  statistic chisq_df p_value
      <dbl>    <int>   <dbl>
1      5.55        4   0.235

Stopnie swobody:

$(\text{No. of response categories} - 1) \times (\text{No. of explanatory categories} - 1)$

$(2 - 1) * (5 - 1) = 4$

Testowanie hipotez w R

Zamiana zmiennych?

ggplot(stack_overflow, aes(age_cat, fill = job_sat)) +
  geom_bar(position = "fill") +
  ylab("proportion")

Proporcjonalny skumulowany wykres słupkowy kategorii wiekowej według satysfakcji z pracy

Testowanie hipotez w R

Chi-kwadrat w obu kierunkach

library(infer)
stack_overflow %>% 
  chisq_test(age_cat ~ job_sat)
# A tibble: 1 x 3
  statistic chisq_df p_value
      <dbl>    <int>   <dbl>
1      5.55        4   0.235

Pytanie

Czy zmienne X i Y są niezależne?

library(infer)
stack_overflow %>% 
  chisq_test(job_sat ~ age_cat)
# A tibble: 1 x 3
  statistic chisq_df p_value
      <dbl>    <int>   <dbl>
1      5.55        4   0.235

Nie

Czy zmienna X jest niezależna od zmiennej Y?

Testowanie hipotez w R

Kierunek i ogony testu

args(chisq_test)
function (x, formula, response = NULL, explanatory = NULL, ...)
  • Kwadrat różnic obserwowanych i oczekiwanych liczebności jest nieujemny.
  • Testy chi-kwadrat są prawie zawsze prawostronne. $^{1}$
1 Lewostronne testy chi-kwadrat są stosowane w statystyce sądowej do wykrywania podejrzanie dobrego dopasowania wynikającego z fałszowania danych. Testy chi-kwadrat wariancji mogą być dwustronne. Są to jednak zastosowania niszowe.
Testowanie hipotez w R

Czas na ćwiczenia!

Testowanie hipotez w R

Preparing Video For Download...