3.4 Kjikvadrattester
3.4.2 Kommentarer
Vi må kunne to anvendelser av kjikvadrattester, der hver av de har sitt eget delkapittel i boken:
- Teste for om en gitt fordeling passer med obervasjoner (“Goodness-of-fit”).
- Teste for uavhengighet.
I den første anvendelsen får vi oppgitt en diskret sannsynlighetsfordeling der vi har noen mulige utfall \(u_1, \ldots, u_k\), med tilhørende sannsynligheter \(p_1, \ldots,p_k\). Dersom vi skal observere \(n\) utfall fra denne fordelingen, vil vi forvente \(e_i = p_i\cdot n\) observasjoner av utfall \(u_i\).
Nå har det seg slik at vi har observert \(n\) utfall fra fordelingen, og utfall \(u_i\) har skjedd \(f_i\) ganger. Vi lurer da på om de observerte frekvensene (\(f_i\)) er så forskjellige fra de forventede frekvensene (\(e_i\)) at vi ikke lenger tror at \(p_1, \ldots,p_k\) er den sanne sannsynlighetsfordelingen.
Vi kom frem til en fornuftig testobservator:
\[\chi^2 = \sum_{i=1}^k \frac{(f_i - e_i)^2}{e_i},\] som er \(\chi^2\)-fordelt med \(k-1\) frihetsgrader dersom nullhypotesen er sann. Det betyr at vi kan gå inn i \(\chi^2\)-tabellen for å sjekke om verdien av testobservatoren er for stor (dvs, \(f\)´ene er for forskjellige fra \(e\)`ene) at vi ikke lenger tror at \((p_1, \ldots, p_k)\) er den sanne sannsynlighetsfordelingen.
Vi gjorde eksempelet i dette delkapitlet i forelesningen, og brukte følgende kommandoer:
p0 <- c(0.45, 0.40, 0.15) # Fordeling under H0
f <- c(102, 82, 16) # Observerte frekvenser
chisq.test(x = f, p = p0)
##
## Chi-squared test for given probabilities
##
## data: f
## X-squared = 8.1833, df = 2, p-value = 0.01671
Den andre anvendelsen er å teste for om to kjennetegn opptrer uavhengig av hverandre. Ideen er den samme som over, fordi vi kan skrive sannsunligheten for «\(A\) og \(B\)» som et produkt dersom de ar uavhengige:
\[P(A \cap B) = P(A)\cdot P(B).\]
Vi kan regne ut hvor mange observasjoner vi forventer å se for hver kombinasjon av de to kjennetegnene (\(e_{ij}\)), og bruke kjikvadrattesten over til å sjekke om disse er langt fra det vi faktisk har observert (\(f_{ij}\)). Boken har et eksempel på dette som de regner ut både for hånd og i Excel. Slik kan vi gjøre det i R:
## # A tibble: 152 × 2
## Degree `MBA Major`
## <dbl> <dbl>
## 1 3 1
## 2 1 1
## 3 1 1
## 4 1 1
## 5 2 2
## 6 1 3
## 7 3 1
## 8 1 1
## 9 2 1
## 10 2 2
## # ℹ 142 more rows
Vi legger merke til at strukturen på datasettet er litt annerledes enn krysstabellen som er vist s. 601 i læreboken. I stedet for at vi har telt opp antall studenter i hver enkelt kominasjon av «bachelorgrad» og «masterprofil», har vi fått oppgitt en tabell der hver rad representerer en enkeltstudents fagkombinasjon. Vi kan dog enkelt lage en krysstabell i R:
## MBA Major
## Degree 1 2 3
## 1 31 13 16
## 2 8 16 7
## 3 12 10 17
## 4 10 5 7
Det er denne som brukes som argument i chisq.test()
:
##
## Pearson's Chi-squared test
##
## data: table(mba)
## X-squared = 14.702, df = 6, p-value = 0.02271
Her er det bare å sammenligne tallene med det som læreboken finner i Excel.
Noen kontrollspørsmål:
- Vi har lært to veldig spesifikke anvendelser av kjikvadrattester. Hvilke?
- Kan du gi en intuitiv forklaring på hvorfor testobservatoren vår er fornuftig?
- Litt mer vanskelig: Kan du gi en intuitiv forklaring for hvorfor testobservatoren er tilnærmet kjikvadratfordelt?