Le chi-carré d'ajustement


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.


Les hypothèses de ce test sont les suivantes :
H0 : les données observées suivent la loi théorique.
H1 : les données observées ne suivent pas la loi théorique.


Prenons l'exemple de la loi de Mendel :

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 F2AB
AAAAB
BBABB


Si, dans une expérience portant sur ce croisement, les effectifs obtenus expérimentalement sont 45, 120 et 35 pour les génotypes respectifs AA, AB ou BB, on peut tester l'hypothèse nulle avec un test de χ². On pourrait vouloir faire le calcul des effectifs attendus explicitement, calculer la valeur de χ² et utiliser la distribution de χ² avec 2 degrés de liberté pour en déduire la probabilité d'un tel résultat.

AAABBBTOTAL
Observé4512035200
Attendu0.25*200 = 500.50*200 = 1000.25*200 = 50200


Le code est le suivant:


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.