Chi-kwadraat
De chi-kwadraatverdeling en de daarop gebaseerde toetsen worden gebruikt bij twee soorten statistische vragen.
De ene soort vraag doet zich voor bij tel-gegevens op basis van eigenschappen, waarbij we onderlinge onafhankelijkheid, dwz de afwezigheid van samenhang, willen vaststellen. Deze vraag wordt beantwoord door een toets op homogeniteit.
De andere vraag doet zich voor wanneer we van een serie numerieke waarnemingen die we hebben gedaan willen vaststellen of ze een bepaald patroon volgen, bijvoorbeeld of ze goed passen in een kansverdeling [poisson, normaal, etc.] Deze vraag wordt beantwoord door een zg aanpassingstoets.
Beide soorten toetsen zijn gebaseerd op de Chi-kwadraatverdeling. We zullen hieronder de voorbeelden uit Buijs volgen en de antwoorden op de vragen geven door gebruik te maken van R.
Voorbeeld 10.1 - Buijs p. 287
Gegeven is de chi^2[6] verdeling. Beneden welke grens ligt het 95%-gebied van deze verdeling?
> qchisq(.95,6)
[1] 12.59159
Welke grens heeft slechts 1 procent overschrijdingskans?
> qchisq(.99,6)
[1] 16.81189
Beneden welke grens ligt slechts 5% van de verdeling?
> qchisq(.05,6)
[1] 1.635383
Voorbeeld 10.2b - Buijs p. 291
> tbl<-matrix(c(24,6,36,34), nrow=2)
> tbl
[,1] [,2]
[1,] 24 36
[2,] 6 34
> chisq.test(tbl, correct=F)
Pearson's Chi-squared test
data: tbl
X-squared = 7.1429, df = 1, p-value = 0.007526
Voorbeeld 10.3 - Buijs p. 291
> tbl<-matrix(c(154,38,100,128,96,84,106,154), nrow=4)
> tbl
[,1] [,2]
[1,] 154 96
[2,] 38 84
[3,] 100 106
[4,] 128 154
> chisq.test(tbl, correct=F)
Pearson's Chi-squared test
data: tbl
X-squared = 32.9249, df = 3, p-value = 3.340e-07
Voorbeeld 10.4 - Buijs p. 294
> tbl<-matrix(c(20,14,14,12,20), nrow=5)
> tbl
[,1]
[1,] 20
[2,] 14
[3,] 14
[4,] 12
[5,] 20
> chisq.test(tbl, correct=F)
Chi-squared test for given probabilities
data: tbl
X-squared = 3.5, df = 4, p-value = 0.4779
Voorbeeld 10.5 - Buijs p. 295
> waargenomen <- c(60,50,25,10,5)
> verwacht <- c(55.2,55.2,27.6,9.2,2.8)
We kunnen in de functie chisq.test niet de verwachte waarden samen met de waarnemingen als gewone input geven, zoals in bovenstaande voorbeelden. De functie denkt dan dat die verwachte waarden gewoon in de 2e kolom van een data matrix staan, en ook opgevat moeten worden als gewone waarnemingen. En dat is niet de bedoeling. De verwachte waarden zijn het resultaat van het toepassen van theoretische kansen. We moeten ze dus weer presenteren als kansen (die na schaling keurig optellen tot een som = 1). Dat doen we op de onderstaande manier:
> chisq.test(waargenomen , p=verwacht, rescale.p=TRUE)
Chi-squared test for given probabilities
data: waargenomen
X-squared = 2.9503, df = 4, p-value = 0.5662
Een ander voorbeeld - de resultaten van Mendel's kruisingsproeven met erwten. Van de in totaal 556 erwten waren er 315 geel en rond, 101 geel en gerimpeld, 108 groen en rond, en 32 groen en gerimpeld.
> waargenomen <- c(315, 101, 108, 32)
De vraag is of deze waarnemingen significant afwijken van de verwachte verhouding 9:3:3:1
> chisq.test(waargenomen , p=c(9,3,3,1), rescale.p=TRUE)
Chi-squared test for given probabilities
data: waargenomen
X-squared = 0.47, df = 3, p-value = 0.9254
We moeten de verwachte waarden zelf uitrekenen. Als we dat namelijk aan de functie chisq.test overlaten gaat die uit van een evenredige 1:1:1:1 verdeling, en dat is hier niet juist.
> verwacht <- 556*c(9,3,3,1)/16
> chisq.test(waargenomen , p=verwacht, rescale.p=TRUE)
Bron:
Buijs, A. - Statistiek om mee te werken. Stenfert Kroese, Groningen (2003)
Crawley, M.J. - Statistics. An introduction using R. Wiley, Hoboken, NJ, USA (2005)