Le chi² va nous permettre de traiter des données de type catégorielles c’est à dire des données relatives à la fréquence d’une observation. Par exemple, si nous observons la répartition des membres d’un échantillon dans différentes catégories socio-professionnelles, ce test nous permettra de déterminer si cette répartition est différente de celle qu’on aurait pu observer dans l’ensemble de la population dont est issu l’échantillon.
Le Chi² de conformité
Ce test permet de comparer un effectif à une valeur théorique attendue.
Prenons un exemple : On sait que 5% de la population française possède des cheveux roux. On se demande si, du fait de sa proximité avec le Royaume-Uni, le département du Pas-de-Calais est peuplé davantage de personnes rousses que ce qui pourrait être attendu d’après les données connues au niveau national (effectif théorique attendu : 5% de personnes rousses). On tire au sort 10 000 individus dans l’ensemble du département du Pas-de-Calais. Sur cet échantillon, on dénombre 567 individus roux.
Nous pouvons traduire cet énoncé sous la forme du tableau suivant :
Couleur de cheveux | Echantillon | Proportions de l’échantillon | Résultats attendus | Proportions théoriques |
Roux | 567 | 5.67% (0.0567) | 500 | 5% (0.05) |
Non-Roux | 9 433 | 94.33% (0.9433) | 9 500 | 95% (0.95) |
Totaux | 10 000 | 100% (1) | 10 000 | 100% (1) |
Hypothèse nulle (HO) : La proportion de personnes rousses dans le département du Pas-de-Calais n’est pas différente de celle de la France en général.
Copier/coller les lignes de commandes et les commentaires ci-dessous dans un nouveau Script R, puis executer.
Packages nécessaires : packages de base
# Nous créons ici une liste des données obtenues grâce à la fonction « c() » que nous nommons « echantillon » echantillon<- c(567, 9433) # Nous créons ici une liste des probabilités théoriques que nous nommons « probabilité » probabilite<- c(0.05, 0.95) # Nous lançons le test à l’aide de la fonction « chisq.test() » chisq.test(echantillon,p=probabilite)
Vous obtenez les résultats suivants :
- chi² = 9.4505 => Ce nombre permet habituellement de valider ou de réfuter manuellement l’hypothèse nulle après lecture de la table de chi².
- df = 1 => Le df ou ddl est également nécessaire pour la lecture de la table. Il se calcule par le biais de la formule suivante : ddl = (L-1)(C-1). L = nb de colonne et C = nb de colonnes.
- p-value = 0.002111 => C’est la probabilité de rejeter l’hypothèse nulle alors qu’elle est vraie.
Conclusion
En nous basant sur un seuil conventionnel d’une valeur de p-value = .05 (appelé aussi α ou Erreur de type I), nous nous devons de rejeter l’hypothèse nulle (.002 < .05). Ce faisant, nous acceptons le risque (0.002111 *100 = 2%) de rejeter cette hypothèse dans le cas où elle se révèlerait être vraie.
Nous pouvons donc dire que le nombre de personnes rousses du département Pas-de-Calais est significativement supérieur à celui de la moyenne nationale.
Le Chi² d’indépendance
Le test du chi² d’indépendance sera utilisé lorsque la question sera de savoir s’il existe ou non une indépendance entre deux critères que nous souhaitons étudier.
Prenons un exemple. Des chercheurs en économie souhaitent savoir si les individus sont davantage enclins à créer une entreprise en fonction du lieu de leur résidence. A la suite d’un sondage national, ils obtiennent les résultats suivants.
Ville | Zone Urbaine | Campagne | Totaux | |
Entrepreneur | 157 | 222 | 83 | 462 |
Non entrepreneur | 567 | 382 | 122 | 1071 |
Totaux | 724 | 604 | 205 | 1533 |
Hypothèse nulle (HO) : Le fait de connaître si un individu vit en ville, en zone urbaine ou en campagne ne nous aide pas à déterminer si celui-ci est entrepreneur ou non.
Copier/coller les lignes de commandes et les commentaires ci-dessous dans un nouveau Script R, puis executer.
Packages nécessaires : packages de base
# Création des listes entrepreneur / non entrepreneur entrepreneur = c(157, 222, 83) non_entrepreneur = c(567, 382, 122) # Création du tableau de contingence (matrice comparative). Notez que ci-dessous, 2 est le nombre de lignes et 3 le nombre de colonnes tableau = matrix(c(entrepreneur, non_entrepreneur),2,3,byrow=T) # Réalisation du test khi-deux chi_test = chisq.test(tableau) chi_test
Vous obtenez les résultats suivants (pour l’interprétation voir chi² de conformité) :
- chi² = 47.56
- df = 2
- p-value = 4.704e-11
Conclusion
La p-value nous amène à rejeter l’hypothèse nulle. Ainsi nous pouvons en conclure que le fait de savoir si un individu vit en ville, en zone urbaine ou en campagne peut nous donner une indication sur le fait qu’il soit entrepreneur ou non. Évidemment, d’un point de vue théorique, cette donnée seule ne suffit pas mais nous voyons qu’il existe un lien entre ces deux facteurs.
Le chi² d’homogénéité
Ce test est une variante du chi² d’indépendance utilisé pour interroger l’équivalence de la répartition de différents effectifs.
Imaginons le test en laboratoire de 3 traitements (vs placebo) contre un virus mal connu provoquant une pandémie mondiale. Les résultats de ces tests se trouvent dans le tableau suivant.
Baisse de la charge virale 8 jours après premiers symptômes | Pas de baisse de la charge virale 8 jours après premiers symptômes | Totaux | |
Groupe Placebo | 44 (33.5%) | 87 (66.5%) | 131 (100 %) |
Traitement 1 | 56 (36.1%) | 99 (63.9%) | 155 (100 %) |
Traitement 2 | 34 (45.3%) | 41 (54.7%) | 75 (100 %) |
Traitement 3 | 87 (52.7 %) | 78 ( 47.3%) | 165 (100 %) |
Totaux | 221 | 305 | 526 |
Hypothèse nulle (HO) : Aucune des conditions est plus performante quant à la diminution de la charge virale 8 jours après les premiers symptômes.
Copier/coller les lignes de commandes et les commentaires ci-dessous dans un nouveau Script R, puis executer.
Packages nécessaires : packages de base + chisq.posthoc.test
# Création du tableau de données sous R. Nous utilisons cette fois la fonction rbind. tableau <- as.table(rbind(c(44, 87), c(56,99), c(34,41), c(87,78))) dimnames(tableau) <- list(traitement = c("placebo", "T1", "T2", "T3"), party = c("Baisse","Pas de Baisse")) tableau # pour afficher le tableau réalisé ci-dessus # Par la suite, le test du chi² est effectué chi_test = chisq.test(tableau) chi_test
Les résultats suivants sont obtenus (pour l’interprétation voir chi² de conformité) :
- chi² = 14.134
- df = 3
- p-value = 0.002729
Nous voyons donc que nous pouvons rejeter l’hypothèse nulle avec, ce faisant, une probabilité de se tromper de 0.002729. Ces résultats indiquent clairement qu’au moins une des conditions engendre des résultats différents des autres. Toutefois, à ce stade, nous ne savons ni dans quel sens, ni de quel protocole il s’agit.
# Nous faisons appel à des sous-fonctions de chisq.test() pour investiguer plus en détail. # résultats attendus/théoriques si les données sont le fruit du hasard. chi_test$expected # résultats observés. Il s'agit en fait du tableau présenté en amont. chi_test$observed # différence entre résultats attendus et observés chi_test$residual # différence normalisée entre résultats attendus et observés chi_test$stdres
Ce qui nous intéresse le plus ici est l’analyse des différences entre les données attendues et celles observées (chi.test$residual et chi.test$stdres).
Ci-dessous les résultats bruts du chi.test$stdres (données normalisées) :
traitement Baisse Pas de Baisse
placebo -2.2550929 2.2550929
T1 -1.7678473 1.7678473
T2 0.6287349 -0.6287349
T3 3.3650698 -3.3650698
Ces résultats nous permettent d’observer que les plus grandes différences se situent au niveau des traitements placebo et T3. Toutefois, à ce niveau de l’étude nous ne pouvons pas dire si ces différences sont significatives d’un point de vue statistique. Nous pourrions alors faire des comparaisons deux à deux afin de conclure sur une significativité des résultats. Cependant, en faisant cela, on augmenterait l’erreur de type 1, à savoir la probabilité de rejeter l’hypothèse nulle alors que celle-ci est vraie. Afin de se prémunir contre l’augmentation de ce risque, la correction de Bonferroni va être utilisée (il existe d’autres corrections de ce type). Ce dernier permettra de majorer le risque réel pour l’ensemble des tests par le niveau de test choisi (classiquement 5%).
# Execution du test de Bonferroni chisq.posthoc.test(tableau, method = "bonferroni")
Les résultats bruts obtenus sont les suivants :
Dimension Value Baisse Pas de Baisse
1 placebo Residuals -2.2550929 2.2550929
2 placebo p values 0.1930200 0.1930200
3 T1 Residuals -1.7678473 1.7678473
4 T1 p values 0.6166910 0.6166910
5 T2 Residuals 0.6287349 -0.6287349
6 T2 p values 1.0000000 1.0000000
7 T3 Residuals 3.3650698 -3.3650698
8 T3 p values 0.0061220 0.0061220
Conclusion
Nous constatons, à la lecture de ces résultats et du tableau de présentation des données, que seul le traitement 3 peut être considéré comme davantage efficace pour impacter négativement la charge virale 8 jours après l’apparition des premiers symptômes.
Tailles d’effet
S’il est important en sciences de savoir si la relation entre deux variables est statistiquement significative, cela ne nous dit rien sur la force du lien qui unit ces variables. L’importance de ce lien est appelée la taille d’effet. Nous allons voir ici comment la déterminer avec R et dans le cadre du test de chi².
Une première solution consiste à comparer les résultats du tableau de contingence et d’en faire une interprétation en terme de probabilité. Reprenons par exemple notre dernier tableau. Nous souhaitons comparer le traitement 3 et le traitement placebo. Le premier permet une observation de la baisse de la charge virale 8 jours après l’apparition des premiers symptômes dans 52,7 % des cas alors que le second, seulement dans 33,5 % des cas. On peut donc en conclure que le traitement 3 est (0,527/0,335) = 1.57 fois plus efficace pour faire baisser la charge virale 8 jours après l’apparition des premiers symptômes que le placebo. En outre, nous avons déjà déterminé que cette différence était significative. Toutefois, cette nouvelle donnée sera plus parlante auprès de spécialistes habitués à de tels rapports de grandeur qu’auprès de profanes.
Une seconde solution et de faire appel à d’autres mesures permettant de se focaliser davantage sur la corrélation entre les deux variables tels que le coefficient Phi (dans le cas de tables 2*2) ou le V de Cramér (dans le cas de tables supérieures à 2*2). En reprenant l’exemple ci-dessus (Placebo vs Traitement 3), nous allons montrer comment calculer ces deux valeurs avec R et comment en interpréter les résultats.
Packages nécessaires : packages de base + effectsize
# Taille de l'effet en prenant la totalité des données (tables 4*2) # Utilisation du V de Cramer chisq_to_cramers_v(14.134, # On entre manuellement la valeur du Chi² n = sum(tableau), # On demande une lecture de l'effectif total nrow = nrow(tableau), # On demande une lecture du nb de lignes ncol = ncol(tableau), # On demande une lecture du nb de colonnes ci = 0.95, # On précise l'interval de confiance souhaité adjust = FALSE # On ne demande pas de correction de biais ) # Les données peuvent également être entrées manuellement. convert_chisq_to_cramers_v( 14.134, n = 526, nrow = 4, ncol= 2, ci = 0.95, adjust = FALSE, )
Les résultats obtenus sont les suivants :
cramers_v | 95% CI
0.16 | [0.06, 0.24]
Le V de Cramèr est ici égale à 0.16. Plus ce résultat se rapproche de 1 et plus le lien est important. Classiquement, on évalue l’intensité du V de Cramèr en se référant au tableau suivant.
V de Cramèr | Relation entre les deux variables |
< 0.10 | Relation nulle ou très faible |
>= 0.10 et < 0.20 | Relation faible |
>= 0.20 et < 0.30 | Relation moyenne |
>= 0.30 | Relation forte |
L’intervalle de confiance signifie que l’on peut avoir une confiance de 95% sur le fait que le V de Cramèr appartienne à l’intervalle [0.06, 0.24].
Conclusion
Il semble donc que le lien observé dans cette étude soit relativement faible et qu’il conviendrait d’être prudent en essayant, par exemple, de le répliquer.
Conditions d’application du chi²
L’indépendance : » il s’agit par exemple de la condition d’application selon laquelle le choix d’une personne entre différentes marques de café n’a pas d’influence sur le choix d’une autre personne » (Howell, 2009).
L’inclusion des non-occurrences : Prenons l’exemple d’une étude dans laquelle les chercheurs tentent de déterminer si le fait d’être pour la peine de mort est lié au fait d’avoir plus ou moins de 50 ans.
Non inclusion des non-occurrences
– 50 ans | + 50 ans | Total | |
Pour la peine de mort |
168 | 180 | 348 |
Attendu si idépendance | 174 | 174 | 348 |
Inclusion des non-occurrences
– 50 ans | + 50 ans | Total | |
Pour la peine de mort |
168 | 180 | 348 |
Contre la peine de mort |
188 | 178 | 366 |
Total | 356 | 358 | 714 |
« Ne pas prendre en compte les non-occurrence (réponses négatives) a pour effet d’invalider le test et de réduires la valeur du chi², ce qui nous conduit à rejeter moins souvent H0 » (Howell, 2009).
L’auteur recommande de toujours s’assurer que le total (N) est égal au nombre de participants inclus dans l’étude afin d’éviter cette erreur.