1 Test zgodności Chi-kwadrat

  • służy do porównania ze sobą zaobserowanego rozkładu naszej zmiennej z jakimś teoretycznym rozkładem.

  • Test zgodności chi-kwadrat w praktyce można wykorzystać przynajmniej na dwa sposoby

    • sprawdzenie równoliczności grup
    • porównanie występowania obserwacji z ich teoretycznym występowaniem

Przykład 1:

Zadanie: Badacz zadał pytanie 100 respondentom czy bardziej im smakuje napój A czy napój B. 36 osób badanych udzieliło odpowiedzi A, a 64 osoby udzieliło odpowiedzi B. Badacz założył, że gdyby napoje nie różniły się preferencją to powinien uzyskać podobne wyniki w obu grupach, po 50 osób.

Pytanie: Czy istnieją preferencje w wyborze napoju?

napoje_freq <- c(A = c(36), B = c(64))
napoje_freq
##  A  B 
## 36 64

Odpowiedź

chisq.test(napoje_freq)
## 
##  Chi-squared test for given probabilities
## 
## data:  napoje_freq
## X-squared = 7.84, df = 1, p-value = 0.00511
res <- chisq.test(napoje_freq)
res$expected
##  A  B 
## 50 50
res$observed
##  A  B 
## 36 64

Badacz przeprowadził test zgodności chi-kwadrat i (dla poziomu p < 0,05) ocenił, że rozkład udzielanych odpowiedzi nie jest równy, przeważa preferencja napoju B.

W drugim badaniu dotyczącym preferencji respondentów dotyczących wyboru napoju badacz uzyskał następujące odpowiedzi: napój A smakował 47 osobom a napój B smakował 53 osobom? Czy wyniki wskazują na istnienie (statystycznie istotnych) preferencji w wyborze napoju?

Przykład 2:

Załóżmy, że żyjemy w kraju, w którym 70% społeczeństwa stanowią kobiety. Badacz w swoim badaniu przebadał 60 mężczyzn i 40 kobiet. Następnie chciał sprawdzić, czy rozkład płci w jego badaniu pokrywa się z rozkładem w populacji danego kraju.

chisq.test(x = c(40, 60), p = c(0.7, 0.3))
## 
##  Chi-squared test for given probabilities
## 
## data:  c(40, 60)
## X-squared = 42.857, df = 1, p-value = 5.889e-11

W naszym przypadku H0 = ‘rozkład danych jest zgodny z rozkładem teoretycznym’. Wynik testu (p-value = 5.889e-11) wskazuje, że rozkład danych różni się od rozkładu teoretycznego.

Teoretycznie, badając 100 osób, powinien zbadać 70 kobiet i 30 mężczyzn, aby odzwierciedlić proporcję w populacji. Wynik testu (p value mniejsze od poziomu 0,05) wskazuje, że różnica w proporcji kobiet i mężczyzn jest na tyle duża, aby móc powiedzieć, że jego rozkład płci w jego badaniu nie odzwierciedla rozkładu w populacji.

Załóżmy, że żyjemy w kraju, w którym 70% społeczeństwa stanowią kobiety. Badacz w swoim badaniu przebadał 60 kobiet i 40 mężczyzn. Następnie chciał sprawdzić, czy rozkład płci w jego badaniu pokrywa się z rozkładem w populacji danego kraju.

Załóżmy, że żyjemy w kraju, w którym 70% społeczeństwa stanowią kobiety. Badacz w swoim badaniu przebadał 65 kobiet i 35 mężczyzn. Następnie chciał sprawdzić, czy rozkład płci w jego badaniu pokrywa się z rozkładem w populacji danego kraju.

2 Test niezależności chi-2 (Test chi-kwadrat Pearsona)

  • stosuje się w celu zbadania zależności pomiędzy dwiema zmiennymi kategorialnymi.

  • test bazuje on na porównywaniu ze sobą wartości obserwowanych (czyli takich, które uzyskaliśmy w badaniu) z wartościami oczekiwanymi (czyli takimi, które zakłada test, gdyby nie było żadnego związku pomiędzy zmiennymi).

  • Jeżeli różnica pomiędzy wartościami obserwowanymi a oczekiwanymi jest duża (istotna statystycznie) to można powiedzieć, że zachodzi relacja pomiędzy jedną zmienną a drugą.

    • hipoteza zerowa: zmienne są niezależne - nie istnieje zależność między zmiennymi.
    • hipoteza alternatywna: zmienne są zależne - istnieje zależność między dwoma zmiennymi.

Przykład

Badacz przeprowadził ankietę wśród losowo spotkanych osób, czy wolą piwo czy wino. Badacz zbadał 1000 osób, aby określić czy jest istotna różnica pomiędzy kobietami a mężczyznami pod względem preferencji wina i piwa.

m <- c(piwo = 78, wino = 22)
k <- c(piwo = 56, wino = 44)

dane <- rbind(m,k)
dane
##   piwo wino
## m   78   22
## k   56   44
chisq.test(dane)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  dane
## X-squared = 9.9729, df = 1, p-value = 0.001589

W powyższym przykładzie, zarówno płeć jak i rodzaj alkoholu są zmiennymi nominalnymi, dlatego wykorzystujemy tu test niezależności chi-kwadrat. Test wykazał zależność pomiędzy płcią a preferencją rodzaju alkoholu. Piwo jest bardziej preferowanym trunkiem wśród mężczyzn niż u kobiet.

Wczytaj dane z pliku plony.csv. Dane zawierają 3 zmienne (jakość gleby, plon, opady). Czy istnieje relacja pomiędzy klasą opadu a wielkością plonu? Czy istnieje relacja między klasą jakości gleb a wielkością plonu?

3 Test chi-kwadrat McNemara - test dla prób zależnych

Przykład

Badacz chciał sprawdzić jak reklama wpłynie na opinię respondentów na temat określonego prawa. Badacz przeprowadził ankietę wśród 100 osób. Zapytał ich czy popierają prawo czy nie. Następnie pokazał im wideo reklamowe i ponownie przeprowadził ankietę, aby sprawdzić czy proporcja osób popierających prawo zmieni się isotnie przed i po pokazaniu filmu reklamowego.

dane <- matrix(c(30, 12, 40, 18), nrow = 2,
    dimnames = list("Przed" = c("Popiera", "Nie popiera"),
                    "Po" = c("Popiera", "Nie popiera")))

dane
##              Po
## Przed         Popiera Nie popiera
##   Popiera          30          40
##   Nie popiera      12          18
mcnemar.test(dane, correct = FALSE)
## 
##  McNemar's Chi-squared test
## 
## data:  dane
## McNemar's chi-squared = 15.077, df = 1, p-value = 0.0001032

Odpowiedź: Wartość p (p-value) jest niższa niż 0,05. Możemy zatem odrzucić hipotezę zerową i wyciągnąć wniosek, że istnieje istotna statystycznie różnica w proporcji osób, które popierały prawo przed i po pokazaniu im filmu reklamowego.

Poniżej zestawiono wyniki dwóch badań ankietowych przeprowadzone na grupie 1600 osób w odstępstwie miesiąca. Ankietowane osoby, które osiągnęły wiek uprawniający do głosowania zapytano jak oceniają działania Prezydenta. Czy propocje osób popierających działania prezydenta zmieniły się istotnie pomiędzy dwoma badaniami?

pres = matrix(
  c(794, 150, 86, 570),
  nrow = 2,
  byrow = TRUE,
  dimnames = list(
    "1 badanie" = c("Zgoda", "Niezgoda"),
    "2 badanie" = c("Zgoda", "Niezgoda")
  )
)