Comparaison de deux pourcentages avec le logiciel R
Après le post concernant l’analyse descriptive des variables catégorielles et celui dédié à la visualisation des variables catégorielles, cet article s’intéresse à la comparaison de deux pourcentages, autrement dit à la comparaison statistique des combinaisons de deux
variables catégorielles.
Le test statistique le plus couramment employé pour comparer deux pourcentages est le test non paramétrique du Khi2 (on peut aussi écrire Chi2). Cet article va donc s’intéresser à ce test en particulier.
Le test du Khi2 dispose de plusieurs variantes, selon que les échantillons sont indépendants ou appariés, et selon que les conditions d’utilisation sont remplies ou non. Nous allons voir tout cela en détail dans la suite.
Table des matières
Pourcentages et table de contingence
Le test du Khi2 peut être un peu déroutant au départ car sa statistique n’utilise pas directement les pourcentages que l’on souhaite comparer. La statistique du test du Khi2 repose sur une somme de différences entre des effectifs observés et des effectifs théoriques, et de ce fait, il se base sur une table de contingence.
Par exemple, dans le jeu de données Melanoma du package MASS, si l’on souhaite comparer le pourcentages de femmes ayant un ulcer (37.3%) au pourcentage d’hommes ayant cette affection (54.4%), les données nécesaires à la réaliisation du test du Khi2 ne seront pas directement ces pourcentages, mais la table de contingence suivante :
Absence d’un ulcer | Presence d’un ulcer | |
---|---|---|
Female | 79 | 47 |
Male | 36 | 43 |
Echantillons indépendants vs. échantillons appariés
L’élément le plus important à définir avant de se lancer dans un test du Khi2 est celui de la nature des échantillons sur lesquels ont été estimés les 2 pourcentages à comparer. Est-ce qu’il s’agit d’échantillons indépendants ou d’échantillons appariés ?
Echantilllons indépendants
Des échantillons sont indépendants si les sujets (ou les unités expérimentales) sur lesquels ont été estimés les deux pourcentages sont différents. Pour fixer les idées, on pourrait par exemple imaginer une étude clinique visant à comparer 2 traitements contre la migraine (le Traitement A et le Traitement B). Deux groupes de 50 patients sont constitués aléatoirement : le premier groupe reçoit le traitement A, et le second groupe reçoit le traitement B. La réponse observée est de type binaire : soulagement des douleurs , ou pas de soulagement. Dans ce cas, les patients qui reçoivent le traitement A, et ceux qui reçoivent le traitement B sont différents, les échantillons sont donc indépendants.
Les données des échantillons indépendants peuvent être représentés sous la forme d’une table de contingence classique, comme ceci :
Traitement A | Traitement B | |
---|---|---|
soulagé | 15 | 35 |
pas soulagé | 35 | 15 |
Echantilllons appariés
Des échantillons sont appariés si les sujets sur lesquels ont été estimés les deux pourcentages sont les mêmes.
Imaginons maintenant que ce sont les mêmes sujets qui reçoivent les traitements A et B : les sujets reçoivent le traitement A au cours d’une première période, puis le traitement B au cours d’une seconde période.
Dans cette situation on ne représente pas les résultats selon la même table de contingence que précédemment. On utilise une table de contingence qui permet de faire apparaître le nombre de sujets ayant des réponses identiques sur les deux périodes (toujours soulagés ou jamais soulagés) et des réponse différentes, comme ceci :
## Traitement B
## Traitement A Soulagé Pas soulagé
## Soulagé 45 15
## Pas soulagé 5 35
On fait apparaître ces informations de réponses identiques (on parle de paires concordantes) et différentes (on parles de paires discordantes) parce que c’est intéressant en soi, mais aussi parce que les effectifs des paires discordantes sont utilisées dans la statistique du test de Mac Nemar, qui est le test du Khi2 pour échantillons appariés.
Les hypothèses
Quel que soit la variante du test du Khi2 employée, les hypothèses du test sont toujours les suivantes:
En bilatéral :
H0 : p1 = p2
H1 : p1 ≠ p2
En unilatéral :
H0 : p1 = p2
H1 : p1 > p2
ou
H1 : p1 < p2
Principe du test du Khi2
Les effectifs observés
La table de contingence contient les effectifs observés des croisements des 2 modalités des 2 variables étudiées (sexe et ulcer dans l’exemple du jeu de données Melanoma).On note généralement ces effectifs “O” pour “observés.
Les effectifs théoriques
La statistique du test du Khi2 nécessite de calculer un effectif théorique pour chacun des effectifs observés. Ces effectifs théoriques sont calculés sous l’hypothèse nulle, c’est à dire en faisant l’hypothèse que les pourcentages sont égaux. Ils sont généralement notés E pour “expected”.
Les effectifs théoriques de chaque combinaison (des modalités des variables catégorielles) sont obtenus en multipliant, dans la table de contingence, l’effectif total de la ligne (nb_l) par l’effectif total de la colonne (nb_c) et en divisant par l’effectif total de la table (nb_T) :
\[ E=\frac{\left(n b_{l} * n b_{c}\right)}{n b_{T}}\]
Le principe du calcul est assez intuitif. Pour l’illustrer, je reprends ici l’exemple de la table de contingence concernant la présence ou l’absence d’un ulcer chez les hommes et les femmes, en modifiant les effectifs de la table de contingence comme ceci :
## Femmes Hommes
## Présence d'un ulcer 10 40
## absence d'un ulcer 90 160
Sous l’hypothèse nulle, les pourcentages d’ulcer chez les hommes et les femmes sont égaux. Cette hypothèse nulle se traduit alors en termes d’effectif. Il s’agit de répartir le nombre total d’ulcer (ici 50) en fonction de la fréquence d’hommes (200/300) et de femmes (100/300) dans l’échantillon étudié.
Au final, les effectifs théoriques de la table de contingence précédente sont :
## Femmes Hommes
## Présence d'un ulcer 16.66667 33.33333
## absence d'un ulcer 83.33333 166.66667
Statistiques et conditions d'application
Lorsque les échantillons sont indépendants
Dans ce cas, la statistique du test du Khi2 est :
\[ \chi_{1}^{2}=\sum_{i=1}^{4}\left(\frac{O_{i}-E_{i}}{E_{i}}\right)^{2}\]
Cette statistique suit une distribution à (nb_c-1) * (nb_l-1), soit un degrés de liberté.
Le test du Khi2 peut être employé si tous les effectifs théoriques sont >5.
Si au moins un effectif théorique est <5 alors, le test du Khi2 avec correction de Yates, ou bien le test exact de Fisher doivent être employés.
La correction de Yates consite à soustraire la quantité 0.5 à chaque différence Oi-Ei.
La statistique du test de Fisher est un peu complexe, mais peut être consultée ici.
Lorsque les effectifs sont appariés
Dans ce cas, c’est le test de Mac Nemar qui doit être employé.
Sa statistique est :
\[
\chi_{1}^{2}=\frac{(b-c)^{2}}{b+c}
\]
En utilisant la notation suivante des paires concordantes et discordantes :
## Traitement B
## Traitement A Soulagé Pas soulagé
## Soulagé "a" "c"
## Pas soulagé "b" "d"
Le test de Mac Nemar nécessite que le nombre de paires discordantes soient >10. Dans le cas contraire une correction, dite de de continuité doit être appliquée.
Synthèse des tests à employer
- Les échantillons sont indépendants :
- si tous les Ei ≥ 5 : test du Khi2 avec la fonction `chisq.test(TC, correct=FALSE)`
- si au moins un Ei <5 : test du Khi2 avec correction de continuité (correction de Yates) , avec la fonction `chisq.test(TC, correct=TRUE)` ou test exact de Fisher* avec la fonction `fisher.test(TC)`.
- Les échantillons sont appariés:
- le nombre de paires discordantes ≥ 10 : test de Mac Nemar avec la fonction `mcnemar.test(TC, correct=FALSE)`
- sinon : test Mac Nemar avec correction de continuité avec la fonction `mcnemar.test(TC, correct=TRUE)`
Exemple
Echantillons indépendants
Test du Khi2
Soit la table de contingence suivante :
##
## Absence d'un ulcer Presence d'un ulcer
## Female 79 47
## Male 36 43
chisq.test(TC, correct=FALSE)
##
## Pearson's Chi-squared test
##
## data: TC
## X-squared = 5.7845, df = 1, p-value = 0.01617
Ici la pvalue est < 0.05, on conclue donc que le pourcentage d’ulcer chez les femmes est différent que le pourcentage d’ulcer chez les hommes, dans le sens d’un pourcentage plus faible.
Il est possible d’obtenir les effectifs théoriques en utilisant :
chisq.test(TC, correct=FALSE)$expected
##
## Absence d'un ulcer Presence d'un ulcer
## Female 70.68293 55.31707
## Male 44.31707 34.68293
Test du Khi2 avec correction de continuité
Imaginons que la table de contingence soit celle-ci :
## Absence d'un ulcer Presence d'un ulcer
## Female 10 3
## Male 5 7
On applique le test du Khi2 :
chisq.test(TC2, correct=FALSE)
## Warning in chisq.test(TC2, correct = FALSE): Chi-squared approximation may
## be incorrect
##
## Pearson's Chi-squared test
##
## data: TC2
## X-squared = 3.2318, df = 1, p-value = 0.07222
Ici, le warning nous indique qu’au moins un des effectifs théorique est <5. La consultation des effectifs théoriques nous montre qu’effectivement une des valeurs est < 5 :
chisq.test(TC2, correct = FALSE)$expected
## Warning in chisq.test(TC2, correct = FALSE): Chi-squared approximation may
## be incorrect
## Absence d'un ulcer Presence d'un ulcer
## Female 7.8 5.2
## Male 7.2 4.8
Dans ce cas, il suffit alors d’utiliser l’argument correct=TRUE
chisq.test(TC2, correct = TRUE)
## Warning in chisq.test(TC2, correct = TRUE): Chi-squared approximation may
## be incorrect
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: TC2
## X-squared = 1.9298, df = 1, p-value = 0.1648
Nous aurions également pu utiliser le test exact de Fisher.
7.1.3 Le test de Fisher
Pour utiliser le test de Fisher, il suffit d’employer :
##fisher.test(TC2) ## Fisher's Exact Test for Count Data ## ## data: TC2 ## p-value = 0.1107 ## alternative hypothesis: true odds ratio is not equal to 1 ## 95 percent confidence interval: ## 0.6418917 38.5812360 ## sample estimates: ## odds ratio ## 4.361899
7.2 Echantillons appariés
7.2.1 Test de Mac Nemar
L’exemple ici est tiré de la page d’aide sur la fonction mcnemar.test
## 2nd Survey ## 1st Survey Approve Disapprove ## Approve 794 150 ## Disapprove 86 570 ## ## McNemar's Chi-squared test ## ## data: Performance ## McNemar's chi-squared = 17.356, df = 1, p-value = 3.099e-05
7.2.1 Test de Mac Nemar avec correction de continuité
Avec la table de contingence suivante:
## Traitement B ## Traitement A Soulagé Pas soulagé ## Soulagé 8 7 ## Pas soulagé 2 3
Ici, le nombre de paires discordantes (2+7) est < 10, il faut donc utiliser la correction de continuité :
mcnemar.test(mat.app, correct=FALSE) ## ## McNemar's Chi-squared test ## ## data: mat.app ## McNemar's chi-squared = 2.7778, df = 1, p-value = 0.09558
Une dernière chose à noter : bien que les hypothèses puissent être bilatérales, les tests du Khi2 sont toujours unilatéraux.
J’espère que cet article permettra au plus grand nombre d’avoir une meilleure vision des tests à utiliser pour comparer deux pourcentages, et comment les employer sous R.
Si cet article vous a plu, ou vous a été utile, et si vous le souhaitez, vous pouvez soutenir ce blog en faisant un don sur sa page Tipeee
Cliquez ici pour soutenir le blog Statistiques et Logiciel R
Crédits photos : rawpixel
Merci Claire pour la qualité des articles
Bonjour, merci pour votre article. Petite question : comment choisir entre un test de Fisher et un test du Chi2 avec correction de continuité ?
J’ai le cas où les deux tests ne mènent pas à la même conclusion et je ne sais donc pas lequel choisir, mes effectifs sont trop petits pour un test du Chi2
Bonjour,
je choisirais le test de Fisher.
Bonne continuation.
Bonjour,
J’ai réalisé un questionnaire adressé à 2 populations différentes (pop1 =50 personnes / pop2=65 personnes) contenant les memes questions (échelle de likert)
Je souhaite comparer les résultats des 2 populations.
Je pense réaliser un test de Fisher mais ne sait pas comment remplir le tableau de contingence.
Dois-je indiquer les données en pourcentage (les populations n’étant pas égales) ou en données (chiffre) ?
Je débute et suis un peu perdue.
Merci bcp pour votre aide
Bonjour,
Les tables de contingences sont en chiffre.
Bonne continuation.
Bonjour,
Merci pour cet article très clair 🙂
Je suis sur SPSS mais ma question est d’ordre théorique.
Dans le cas du test exact de Fisher, peut-on remplacer le calcul du coefficient de Phi et V de Cramer ?
Et si oui, par lequel ?
SPSS m’offre les options suivantes avec les données nominales : coefficient de contingence, lambda et coefficient d’incertitude.
Merci de votre aide,
Bonjour,
je n’ai pas compris votre question. Les coefficients phi et V de cramer sont des effect size qui mesurent la force de la liaison entre 2 variables qualitatives, et le test de Fisher permet d’évaluer si cette liaison est significative.