Dans les situations où on souhaite confronter des effectifs obtenus expérimentalement à des prévisions faites sur base d'hypothèses théoriques, et quand les effectfs en questions sont suffisamment grands (> 5, typiquement), on recourt souvent à un test de χ².
Comme le montrent l'exemple suivant, le test chi carré d'ajustement permet de vérifier si les données récoltées pour un échantillon correspondent à une distribution théorique de probabilité P définie à priori.
Imaginons que deux lignées de souris, de génotypes respectifs AA et BB, sont croisées. Les produits du croisement (appelés F1 en génétique) seront tous de génotypes AB (ce qui signifie que, pour locus étudié, ils ont reçu une copie (appelée "allèle") A d'un de leurs parents et une copie B de l'autre, ce qui est nécessairement le cas dans la situation décrite ici de croisement de lignées AA et BB). A la génération suivante, on croise des individus F1 (c'est-à-dire de génotypes AB) entre eux de manière aléatoire, pour générer des individus de seconde génération (notés F2). Sous l'hypothèse nulle où chaque individu F1 croisé a une probabilité de 50 % de transmettre l'allèle A et une probabilité de 50 % de transmettre l'allèle B, on peut déduire que les probabilités qu'un individu F2 ait un génotype AA, AB ou BB sont respectivement de 25 %, 50 % et 25 %.
Génération F2 | A | B |
A | AA | AB |
B | BA | BB |
AA | AB | BB | TOTAL | |
Observé | 45 | 120 | 35 | 200 |
Attendu | 0.25*200 = 50 | 0.50*200 = 100 | 0.25*200 = 50 | 200 |
obs<-c(45,120,35)
proba<-c(0.25,0.50,0.25)
att<-sum(obs)*proba
att
## [1] 50 100 50
chi2<-sum((obs-att)^2/att)
chi2 # Valeur de chi-carré
## [1] 9
1-pchisq(chi2,df=2) # Probabilité d'avoir un chi-carré aussi élevé si l'hypothèse nulle est vraie
## [1] 0.011109
# Autre façon de calculer la probabilité:
pchisq(chi2, df=2, lower.tail=FALSE)
## [1] 0.011109
La fonction chisq.test(<valeurs>,p=<probas>) permet de faire l'opération en une fois, en testant si les valeurs (effectifs) correspondent à la distribution fournie en second argument:
obs<-c(45,120,35)
proba<-c(0.25,0.50,0.25)
chisq.test(obs,p=proba)
##
## Chi-squared test for given probabilities
##
## data: obs
## X-squared = 9, df = 2, p-value = 0.01111
On observe donc une valeur de chi-carré égale à 9 avec 2 degré de liberté. La probabilité d'obtenir une valeur de chi-carré aussi élevée si l'hypothèse nulle est vraie est de 0.0111. Etant donné que cette probabilité est inférieure au seuil de 0.05, on peut rejeter l'hypothèse nulle et conclure que la génération F2 ne suit pas les proportions attendues selon la loi de Mendel.
On pourrait arriver à la même conclusion en comparant la valeur de chi-carré obtenue à la valeur de chi-carré dans la table avec deux degré de liberté (5.99). Etant donné que la valeur de chi-carré observée est supérieure à la valeur de chi-carré limite (9 > 5.99), on rejette l'hypothèse nulle.