Ga naar hoofdinhoud

Contingentieanalyse met R

In deze tutorial leer je aan de hand van een voorbeeld hoe "Contingentieanalyse" of de "chi-kwadraattoets voor onafhankelijkheid" werkt en hoe je die efficiënt uitvoert met R.
Bijgewerkt 2 okt 2026  · 6 min lezen

Verken met AI

ChatGPTClaudePerplexity

Contingentieanalyse is een hypothesetoets die wordt gebruikt om te controleren of twee categorische variabelen onafhankelijk van elkaar zijn. Simpel gezegd stellen we de vraag: "Kunnen we de waarde van de ene variabele voorspellen als we de waarde van de andere variabele kennen?" Als het antwoord ja is, dan zijn de variabelen niet onafhankelijk. Als het antwoord nee is, dan zijn de variabelen onafhankelijk. De toets maakt gebruik van kruistabellen, vandaar de naam 'contingentieanalyse'. Ze staat ook bekend als de 'chi-kwadraattoets voor onafhankelijkheid' omdat de toetsingsgrootheid een chi-kwadraatverdeling volgt en de toets wordt gebruikt om te controleren of twee categorische variabelen onafhankelijk zijn of niet.

De nulhypothese van de toets is dat de twee variabelen onafhankelijk zijn en de alternatieve hypothese is dat de twee variabelen niet onafhankelijk zijn.

Laten we 'contingentieanalyse' of de 'chi-kwadraattoets voor onafhankelijkheid' begrijpen met behulp van een voorbeeld.

Stel dat we willen weten of de keuze voor een sport onafhankelijk is van geslacht. We vroegen honderd mannen en honderd vrouwen welke sport ze het liefst spelen uit boogschieten, boksen en fietsen, en vatten de gegevens samen in de volgende kruistabel.

Contingentieanalyse met R

De bovenstaande tabel is de geobserveerde tabel omdat die de waargenomen aantallen bevat.

De chi-kwadraattoets voor onafhankelijkheid werkt door de geobserveerde aantallen te vergelijken met de verwachte aantallen. Onze volgende taak is daarom om de verwachte tabel met verwachte aantallen af te leiden uit de geobserveerde tabel. De verwachte tabel is hoe we verwachten dat de kruistabel eruitziet als de twee categorische variabelen onafhankelijk zijn. Uit de kansrekening weten we dat twee gebeurtenissen onafhankelijk zijn als hun gezamenlijke kans gelijk is aan het product van hun marginale kansen. We gebruiken dit concept om de verwachte aantallen voor elk van de zes cellen te berekenen. Laten we de verwachte waarde voor de eerste cel berekenen. Eerst bepalen we de gezamenlijke kans door de kans op vrouw zijn (100/200) te vermenigvuldigen met de kans op voorkeur voor boogschieten (45/200). Zodra we de gezamenlijke kans hebben (100/200 * 45/200), krijgen we door die te vermenigvuldigen met de steekproefomvang (200) het verwachte aantal voor de eerste cel, namelijk 22,5. Op dezelfde manier berekenen we de verwachte aantallen voor de overige vijf cellen. De volgende tabel is de tabel die we zouden verwachten te zien als geslacht en sportvoorkeur onafhankelijk zijn.

Contingentieanalyse met R

Nu we zowel de verwachte als de geobserveerde aantallen hebben, is onze volgende taak om te controleren hoe verschillend de geobserveerde aantallen zijn van de verwachte aantallen. Daarvoor moeten we een toetsingsgrootheid berekenen, de chi-kwadraattoetsingsgrootheid, aangezien die een chi-kwadraatverdeling volgt. Hieronder staat de formule om de waarde van de chi-kwadraattoetsingsgrootheid te berekenen.

Contingentieanalyse met R

Uit de bovenstaande formule zien we dat de waarde van de chi-kwadraattoetsingsgrootheid 0 kan zijn (wanneer er absoluut geen verschil is tussen de geobserveerde en de verwachte aantallen), maar nooit negatief kan zijn. Dit maakt de chi-kwadraattoets voor onafhankelijkheid een eenzijdige toets.

Met behulp van de bovenstaande formule berekenen we de waarde van de chi-kwadraattoetsingsgrootheid voor ons voorbeeld. Dit staat bekend als de geobserveerde waarde van de toetsingsgrootheid.

Contingentieanalyse met R

Nu is het tijd om te beslissen of we de nulhypothese verwerpen of niet. We nemen de beslissing door de geobserveerde waarde van de toetsingsgrootheid te vergelijken met de kritieke waarde of door naar de p-waarde te kijken. Als de geobserveerde waarde van de toetsingsgrootheid groter is dan de kritieke waarde of als de p-waarde kleiner dan of gelijk aan het significantieniveau is, dan kunnen we de nulhypothese verwerpen en concluderen dat er een statistisch significant verband is tussen de twee categorische variabelen, met andere woorden: ze zijn niet onafhankelijk. Als we het significantieniveau (meestal 0,05) en de vrijheidsgraden kennen, kunnen we de kritieke waarde opzoeken in de chi-kwadraattabel. Het significantieniveau is de kans dat je een ware nulhypothese verwerpt. Voor een tabel met r rijen en c kolommen kunnen de vrijheidsgraden worden berekend met de volgende formule.

Contingentieanalyse met R

Voor ons voorbeeld hebben we dus 2 vrijheidsgraden.

Contingentieanalyse met R

In de onderstaande tabel zien we dat de kritieke waarde van de toetsingsgrootheid 5,99 is bij een significantieniveau van 0,05 en 2 vrijheidsgraden.

Contingentieanalyse met R

Omdat de geobserveerde waarde van de toetsingsgrootheid groter is dan de kritieke waarde (19,798 > 5,99), kunnen we de nulhypothese verwerpen en concluderen dat de sportkeuze niet onafhankelijk is van geslacht.

Laten we nu bekijken hoe je de chi-kwadraattoets voor onafhankelijkheid uitvoert met de programmeertaal R

Het is erg eenvoudig om de chi-kwadraattoets voor onafhankelijkheid uit te voeren met de ingebouwde functie chisq.test().

Hieronder staat de geobserveerde tabel.

observed_table <- matrix(c(35, 15, 50, 10, 30, 60), nrow = 2, ncol = 3, byrow = T)
rownames(observed_table) <- c('Female', 'Male')
colnames(observed_table) <- c('Archery', 'Boxing', 'Cycling')
observed_table
##        Archery Boxing Cycling
## Female      35     15      50
## Male        10     30      60

Om de toets uit te voeren, passen we de functie chisq.test() toe op de geobserveerde tabel.

X <- chisq.test(observed_table)
X
##
##  Pearson's Chi-squared test
##
## data:  observed_table
## X-squared = 19.798, df = 2, p-value = 5.023e-05

Uit het bovenstaande resultaat zien we dat de p-waarde kleiner is dan het significantieniveau (0,05). We kunnen de nulhypothese dus verwerpen en concluderen dat de twee variabelen (geslacht & sportvoorkeur) niet onafhankelijk zijn.

Als we de verwachte tabel willen zien, kan dat ook.

X$expected
##        Archery Boxing Cycling
## Female    22.5   22.5      55
## Male      22.5   22.5      55

Ik hoop dat je dit artikel leuk vond. Wil je meer leren in R, volg dan de DataCamp-cursus Statistical Modeling in R (Part 1).

Onderwerpen
R
Data Science
Data-analyse

R-cursussen

Cursus

Introductie tot R

4 uur
3.1M
Beheers de basis van data-analyse in R, inclusief vectors, lists en data frames, en oefen met echte datasets.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken