Nous allons donc parler ici du test du \(\chi²\), qui est souvent sous-estimé voire méprisé mais vous allez voir qu’il s’agit d’un très bel outil qui permet de faire beaucoup de choses avec des données quali pas toujours simples (pour ne pas dire moisies, statistiquement parlant bien évidemment!).
Comment se prononce et s’écrit le test du \(\chi²\) ? En anglais c’est facile des édits ont tranchés pour “chi-squared”. Mais en français c’est une question qui fait débat et qui a vu des familles entières se déchirer. Certains l’écrivent “chi²”, d’autres “khi²”, sur la prononciation aucun concensus non plus. On pourra entendre “chi-deux” ou encore “khi-carré”. Ce qui est sûr c’est que le \(\chi\) renvoit à la lettre grec chi et que le ² renvoie à bien à une histoire de carré mais aurait tendance à se dire plutôt “deux”.
Bref vous choisissez, mais ici parce que nous sommes iconoclastes nous l’écrirons \(\chi²\).
Dans ce document nous n’aborderons que le \(\chi²\) d’indépendance, que vous trouverez aussi sous la dénomination \(\chi²\) d’homogénéité ou encore \(\chi²\) de contingences (encore une question de dénomination non tranchée source de tragédie). Bref, il s’agit du \(\chi²\) que nous utilisons dans la grande majorité des cas en SHS.
Sachez toutefois qu’il existe aussi le \(\chi²\) de conformité (on trouve aussi d’adéquation) que nous ne traiterons pas ailleurs que dans ce court paragraphe. Ce \(\chi²\) cherche à savoir s’il y a une différence significative entre la distribution observée dans nos données et une distribution théorique (par exemple : loi normale, loi binomiale…). Voilà pour le \(\chi²\) de conformité !
Cela tient en une petite phrase : le \(\chi²\) permet de dire s’il y a indépendance ou non entre vos variables.
Plus simplement mais toujours aussi concis le \(\chi²\) permet d’étudier s’il y aun lien entre 2 variables qualitatives dans un tableau croisé (aussi appelé tableau de contingence).
Une variable qualitative est une variable qui mesure une donnée pouvant être découpée en un certain nombre de catégorie ou modalité. Un tableau croisé ou de contingence est un tableau qui indique les effectifs du croisement des variables que vous souhaitez étudier. Par exemple :
Bretons | Reste du monde | |
---|---|---|
Préfère le beurre salé | 98563 | 50 |
Préfère le beurre doux | 2 | 26157 |
(Il s’agit ici bien sur de données complétement inventées, tout le monde sait que 100% des bretons préfèrent le beurre salé)
Avant d’aller plus loin, il est peut être bon de dire aussi rapidement ce que n’est pas ou ne fait pas le \(\chi²\). Simplement, le \(\chi²\) n’est pas une corrélation ni une régression. Cela veut dire qu’il ne permets pas de décrire, évaluer ou quantifier le lien.
Voici venue le temps de l’indépendance ! Comme il s’agit de la notion au coeur du test du \(\chi²\) il me semble bon d’y passer un peu de temps et de l’expliciter davantage.
Il est possible que les paragraphes qui vont suivre vous plongent dans une grande perplexité. Je vais essayer de faire en sorte que ce ne soit pas le cas mais dans le doute je vous conseille d’aller vous préparer un peu de Dafalgan.
Le concept d’indépendance est sournois. En soit, il peut se comprendre assez facilement : l’indépendance est l’absence de lien statistique entre des variables. Ni plus ni moins ! Mais sa traduction et son évaluation dans les tests statistiques est un peu plus complexe.
Nous avons vue très rapidement à quoi servait le \(\chi²\). Si on traduit en langage statistique la phrase énoncée dans la partie précédente cela donne que l’objectif du \(\chi²\) est de déterminer la probabilité que les lignes et les colonnes de notre jolie tableau croisé soient indépendantes.
Dit encore autrement, le \(\chi²\) permet de nous indiquer si la répartition de nos effectifs dans les cellules de notre tableau est sifnificativement différente de la répartition des effectifs théoriques calculées sous l’hypothèse d’indépendance des variables que nous étudions. Nous sommes bien d’accord que par indépendance nous entendons ici que l’appartenance à tel modalité de notre 1ere variable n’a pas d’influence sur l’appartenance à tel modalité de notre seconde variable.
Prenons des exemples avec les tableaux croisés ci-dessous, qui permetront d’illustrer plus clairement cette sombre question d’indépendance de lignes et de colonnes et de répartition des effectifs:
Bretons | Corse | |
---|---|---|
Chouchen | 50 | 50 |
Cap Corse | 50 | 50 |
Ici on peut dire facilement qu’il y a indépendance entre l’alcool consommé et la région d’origine.
Bretons | Corse | |
---|---|---|
Chouchen | 100 | 0 |
Cap Corse | 0 | 100 |
Ici à l’inverse on peut sans trop se mouiller dire qu’il n’y a pas indépendance entre nos lignes et nos colonnes. L’origine régionale est bien liée au goût pour tel ou tel alcool.
Bon les deux exemples précédent sont faciles mais clairement jamais vus en SHS on trouvera plutôt des tableaux comme ceci :
Bretons | Corse | |
---|---|---|
Chouchen | 65 | 35 |
Cap Corse | 35 | 65 |
ou encore cela :
Bretons | Corse | |
---|---|---|
Chouchen | 56 | 41 |
Cap Corse | 44 | 59 |
Et là on fait moins les malins ! Mais c’est justement pour voir s’il y a lien que va intervenir le \(\chi²\) notamment à cause du biais d’échantillonage une des raisons qui rendent le calcul de l’indépendance pas si simple.
Là encore un concept dont la compréhension en soit n’est pas compliqué mais qui va engendrer des conséquences non négligeables. Le biais d’échantillonnage c’est simplement le fait que l’on a recueilli des données sur nos variables uniquement sur une partie de notre population et pas sur notre population dans son ensemble.
J’entends déjà votre question ! Oui si vous avez recupéré l’info qui vous intéresse sur l’ensemble de votre population d’étude effectivement vous n’aurez pas de biais d’échantillonnage. Mais quand en SHS vous pouvez dire avec certitude que vous avez enquêtés une population dans sa globalité?
En pratique comment ça marche? Imaginons que nous avons une populations totale de 10 000 personnes composée d’hommes et de femmes, et nous nous intéressons à leur crêpe dessert préférée. On sait que le sexe n’a aucune influence, il y a autant de personne qui aime la crêpe au chocolat que la crêpe citron-sucre. On devrait donc avoir un tableau comme cela :
Homme | Femme | |
---|---|---|
Crêpe au chocolat | 2500 | 2500 |
Crêpe citron-sucre | 2500 | 2500 |
Mais comme intérroger l’ensemble de cette population est quasi-impossible vous procédez à un échantillonnage de votre population, pour interroger 100 personnes. Or les résultats obtenu sont de fait liés aux personnes interrogées, c’est cela le biais d’échantillonnage.
C’est ce biais qui va faire que au lieu d’avoir des effectifs equitablement répartis vous aure plutôt ce genre de tableau :
Homme | Femme | |
---|---|---|
Crêpe au chocolat | 29 | 24 |
Crêpe citron-sucre | 21 | 26 |
Tout l’enjeu pour le test du X² est donc de savoir quand la différence d’effectif entre nos modalités est due au hasard et à ce biais d’echantillonnage ou à un vrai lien statistique entre les variables étudiés.
Et oui encore une contrainte liée au calcul de l’indépendance ! Quand je vous disais que ce n’était pas si simple…
Avant de commencer petite définition : les marges correspondent aux totaux des lignes et des colonnes
Rappelez-vous nous avons dit que le \(\chi²\) : permet de nous indiquer si la répartition de nos effectifs dans les cellules de notre tableau est sifnificativement différente de la répartition des effectifs théoriques calculées sous l’hypothèse d’indépendance.
Cela veut dire que pour faire un \(\chi²\) et étudier l’existence d’un lien, il est nécessaire de produire un tableau théorique de nos données sous l’hypothèse d’indépendance, c’est à dire un tableau rempli de manière que les données soient indépendante. Reprenons notre exemple avec les crêpes :
Voici nos données :
Homme | Femme | Total | |
---|---|---|---|
Crêpe au chocolat | 29 | 24 | 53 |
Crêpe citron-sucre | 21 | 26 | 47 |
Total | 50 | 50 | 100 |
Si on doit produire des effectifs théorique qui doivent être indépendant super facile !
Homme | Femme | Total | |
---|---|---|---|
Crêpe au chocolat | 25 | 25 | 50 |
Crêpe citron-sucre | 25 | 25 | 50 |
Total | 50 | 50 | 100 |
Sauf que non! les marges de nos effectifs théorique construit sous l’hypothèse d’indépendance doivent absolument correspondre aux marges observés dans notre jeu de données à tester. C’est à dire que le remplissage de nos cellules de notre tableau des effectifs théoriques doit obéir à la contrainte d’avoir la même marge que notre tableau de données observées à savoir :
Homme | Femme | Total | |
---|---|---|---|
Crêpe au chocolat | 53 | ||
Crêpe citron-sucre | 47 | ||
Total | 50 | 50 | 100 |
Vous l’aurez compris pour faire un \(\chi²\) et calculer l’indépendance il nous faut… produire des effectifs théoriques! Mais où nos variables sont indépendantes et qu’i’elles obéissent à la contrainte des marges. Comment réalise-t’on se miracle ?
C’est assez simple pour le coup. La régle veut que le pourcentage théorique sous l’hypothèse d’indépendance des individus ayant la modalité x de la variable A et la modalité y de variable B est égal au produit entre le pourcentage des individus ayant la modalité x de la variable A et le pourcentage des individus avec la modalité y de la variable B.
Vite un exemple !
On reprends notre histoire de crêpes, sachant que l’on a 50% d’hommes et que 53% de notre population préfère la crêpe au chocolat le pourcentage théorique de hommes préférant la crêpe au chocolat est : \(\frac{50}{100}*\frac{53}{100}= 26.5%\)
Et de cette manière on peut remplir chacune des cases de notre tableau des effectifs théoriques
Homme | Femme | Total | |
---|---|---|---|
Crêpe au chocolat | 26.5% | 26.5% | 53% |
Crêpe citron-sucre | 23.5% | 23.5% | 47% |
Total | 50% | 50% | 100 |
Maintenant, que nous avons les pourcentages théoriques de chaque cellule il facile de calculer les effectifs théoriques. Il faut multiplier pour chacune des cases du tableau le pourcentage théorique par nos effectifs totaux, par exemple ici : \(\frac{26.5}{100}*100= 26.5\)
Ce qui donne :
Homme | Femme | Total | |
---|---|---|---|
Crêpe au chocolat | 26.5 | 26.5 | 53 |
Crêpe citron-sucre | 23.5 | 23.5 | 47 |
Total | 50 | 50 | 100 |
Comme il s’agit d’effectifs théoriques c’est normal d’avoir des chiffres à virgules, et par ailleurs vous remarquerez que les marges sont bien les mêmes que celles de nos données observées. Les stats sont bien faites.
Enfin nous y voilà, voilà l’aboutissement de ce pourquoi vous avez tant souffert!
Le \(\chi²\) va tout simplement être le calcul de l’écart à l’indépendance, c’est à dire tout simplement à quel point vos données observées sont éloignées de vos données théoriques. Facile!
On procède donc à une soustraction de base : \[\text{Effectifs observés} - \text{Effectifs théoriques}\] On obtient notre tableau d’écart :
Homme | Femme | |
---|---|---|
Crêpe au chocolat | 2.5 | -2.5 |
Crêpe citron-sucre | -2.5 | 2.5 |
AH mais la somme fait 0 et elle fera toujours 0, pas de problème on éléve au carré ! Il faut qu’à un moment donnée ce petit ² se rende utile! \[(\text{Effectifs observés} - \text{Effectifs théoriques})²\]
Autre problème, on mélange quand même un peu les torchons et les serviettes: effectifs théoriques, observés… pas de problèmes on va diviser par les effectifs théoriques : \[\frac{( \text{Effectifs observés} - \text{Effectifs théoriques})²}{\text{Effectifs théoriques}}\] C’est cette formule va nous donner pour chaque cellule le \(\chi²\) partiel, et le \(\chi²\) sera tout simplement la somme des \(\chi²\) partiels
Homme | Femme | |
---|---|---|
Crêpe au chocolat | 0.23 | 0.23 |
Crêpe citron-sucre | 0.26 | 0.26 |
On obtient donc : \[\text{X²}= 0.98\]
Bravo vous savez désormais calculer un \(\chi²\) !!!!
Vous avez le sentiment de vous faire entuber ? C’est normal vous savez certes calculer un \(\chi²\) c’est à dire mesurer l’écart à l’indépendance de vos données mais vous ne savez pas :
Il vous manque le fameux p. Rassurez-vous il vous sera donnez par la machine ou si vous voulez le faire à l’ancienne par la table du \(\chi²\). p c’est la probabilité, sous l’hypothèse d’indépendance, d’obtenir une valeur égale ou plus grande que le \(\chi²\) du tableau observé. Son calcul est basé sur une démonstration mathématique qui démontre que sous l’hypothèse d’indépendance, la valeur du \(\chi²\) d’un tableau suit sous certaines conditions une loi statistique connue sous le doux nom de la loi du \(\chi²\) . À partir de cette loi, on peut calculer pour tout tableau croisé, la probabilité d’obtenir une valeur du \(\chi²\) supérieure ou égale à celle observée sous l’hypothèse d’indépendance.
Ce p est important car c’est lui qui va nous permettre de rejeter ou accepter l’hypothèse d’indépendance. On va fixer un seuil, en général 5% (0.05), en-dessous duquel on considère que le p est suffisamment faible pour rejeter l’hypothèse d’indépendance ce qui revient à dire que les écarts observés dans le tableau ne sont pas dû uniquement au biais d’échantillonnage, et qu’il y a donc un lien entre nos deux variables.
Je vous ai donc passé tous les détail sur le calcul du p. Mais c’est finalement grâce à lui que vous pourrez dire si oui ou non vos variables sont liés.
Le \(\chi²\) et le p vous donne donc une interprétations à l’échelle du tableau dans son ensemble, entre nos 2 variables. Mais il peut être très intéressant d’aller voir ce qui se passe au niveau de chaque case de notre tableau c’est à dire entre nos modalités de variables. Il va donc falloir étudier les résidus.
Les résidus peuvent s’avérer très utiles pour interpréter vos données et votre \(\chi²\). Chose non négligeable ils permettent aussi de faire de jolies graphiques avec R !
Les résidus vont nous permettre de dire si à l’échelle d’une case de notre tableau, c’est à dire au croisement entre deux modalités, il y a un écart significatif entre un effectif observé et un effectif théorique. On ne va pas aborder la méthode de calcul des résidus qui est un tantinet plus complexe, dans notre cas il n’y a que deux choses importantes à retenir :
Comme il a été dit, les résidus ont l’avantage de permettre la réalisation de graphique qui nous donneront l’opportunité de visualiser notre tableau croisé et les liens entre nos modalités notamment à l’aide de “mosaic plot”. Nous verrons cela dans la partie mise en oeuvre.
Le \(\chi²\) est un test robuste qui fonctionne bien dans la plupart des cas. Malgré tout, il est quand même bon de connaitre ses limites. Et plutôt que de limites, il serait plus juste de parler d’éléments qui pouraient venir influencer son résultat et son interprétation.
Les tests dont nous allons parlé ici vise à palier dans une certaine mesure aux limites du \(\chi²\) évoqués précédemment
J’adore parlé de cette correction, elle a un nom qui rend tout de suite les choses graves et sérieuses. On sent que la connaître est un pré-requis pour aller dans la station spatiale internationale. Cette correction est rendu possible du fait que la loi statistique utilisées dans le \(\chi²\) est continue et que les effectifs des cases de notre tableau soient des entiers. Or cette caractéristique peut entrainer une sur-évaluation de la valeur du \(\chi²\), la correction de continuité de Yates visent à minimiser cette sur-estimation. Elle va alors opérer un calcul extrêmement compliqué : enlever 0.5 à la valeur absolue de l’écart entre effectifs observés et théoriques avant leur passages au carré. Rappelez vous la formule du \(\chi²\) partiel ressemble à ça : \[\frac{( \text{Effectifs observés} - \text{Effectifs théoriques})²}{\text{Effectifs théoriques}}\]
Avec la correction de continuité de Yates ça ressemble à ça : \[\frac{( |\text{Effectifs observés} - \text{Effectifs théoriques}|-0.5)²}{\text{Effectifs théoriques}}\]
Ce qu’il y a de réellement compliqué avec la correction de continuité de Yates c’est de savoir quand on doit l’appliquer. Elle est en général recommandé lorsque nos effectifs sont insuffisants, sans par ailleurs que des critères de se que sont des effectifs insuffisants soient définis. On trouve aussi des cas où on la limite aux tableaux de contingences constitué de 2 lignes et 2 colonnes, sans que cela soit une régle stricte. La plupart des logiciels stat l’applique un peu à leur sauce. R par exemple l’applique automatiquement lorsque que le tableau prend une forme 2 lignes/2 colonnes.
Encore un nom qui fait sérieux ! Ce test est une alternative au \(\chi²\), il permet notamment de le remplacer quand la condition “pas plus de 20% des effectifs théorique de notre tableau inférieur à 5” n’est pas respecté. Il se lit et s’interpréte exactement comme le \(\chi²\). Sa limite est qu’il est très gourmand en ressource informatique. C’est pourquoi on l’utlise en général que pour les tableaux 2*2 mais rien ne vous empêche de l’utiliser si votre tableau à plus de 2 lignes ou 2 colonnes.
Ça se prononce “Crameur”, si vous voulez être la cible éternelle de moqueries vous pouvez dire “Cramé”. Le V de Cramer permet de manière plutôt élégante de palier à une faiblesse du \(\chi²\), à savoir quantifier l’importance du lien entre les variables étudiées. Voici la formule où ce cache l’élégance du V de Cramer, vous en fichez probablement mais au point où nous en sommes… \[\sqrt{\frac{\chi²}{\text{Effectifs total}*\text{min}(\text{nombre de lignes}-1,\text{nombre de colonnes}-1)}}\]
Le résultat du V de Cramer sera toujours entre 0 et 1. 0 étant l’indépendance totale et 1 la contingence totale. La contingence c’est l’inverse de l’indépendance en stat! Donc plus notre V est proche de 1 plus le lien entre nos variables est fort.
Par contre le V de Cramer ne s’utilise pas seul, vérifier avant la significativité de votre \(\chi²\)
La mise en oeuvre avec R est extrêmement simple et tient en une seule ligne de commande. Mais avant commençons par charger des données. Nous utiliserons les jeu de données ptitanic fournit avec la librairie rpart.plot.
# pour installer le package si ce n'est pas déjà fait :
# install.package('rpart.plot')
library(rpart.plot) # Nous utiliserons pas cette librairie, elle nous est utile uniquement pour récupérer le jeux de données sur lequel
data(ptitanic)
Il s’agit de données simplifiées concernant les passagers du Titanic, on trouve la variable: survie, classe, sexe, nombre de parents et/ou enfants sur le bateau et la variable nombre de frères ou soeur et/ou conjoints sur le bateau.
Pour visualiser les 1ere lignes de notre fichier :
pclass survived sex age sibsp parch
1 1st survived female 29.0000 0 0
2 1st survived male 0.9167 1 2
3 1st died female 2.0000 1 2
4 1st died male 30.0000 1 2
5 1st died female 25.0000 1 2
6 1st survived male 48.0000 0 0
Nous allons d’abord chercher à savoir s’il y a un lien entre la survie et le sexe. On commence par contruire un tableau croisé:
female male
died 127 682
survived 339 161
Une librairie extrêmement utile est le package questionr développé par Julien Barnier, elle permet entre autres choses de calculer facilement les pourcentage lignes et colonnes
female male Total
died 15.7 84.3 100.0
survived 67.8 32.2 100.0
Ensemble 35.6 64.4 100.0
female male Ensemble
died 27.3 80.9 61.8
survived 72.7 19.1 38.2
Total 100.0 100.0 100.0
Petite apparté sur les pourcentages lignes et colonnes. Un tableau croisé est symétrique c’est à dire que l’on peut inverser ligne et colonne cela ne changera pas son interprétation par contre on a toujours un sens de lecture cela veut dire que l’on considére qu’une variable dépend de l’autre. C’est ce que l’on appelle les variables dépendantes (VD) et indépendantes (VI). La VD étant la variables à expliquer et la VI la variables explicative. Pour faciliter la lecture d’un tableau croisé, en général on réalise les pourcentages sur la variable indépendante. Dans notre exemple, la variable indépendante est le sexe, elle est en colonne, on calcule donc les pourcentages colonnes qui permettent de comparer directement, pour chaque sexe, la survie au naufrage du Titanic.
Enfin, nous avons notre tableau croisé nous pouvons réalisé notre \(\chi²\) R propose une fonction de base pour calculer le test :
Pearson's Chi-squared test with Yates' continuity correction
data: tab
X-squared = 363.62, df = 1, p-value < 2.2e-16
C’est aussi simple que ça !!! Vous avez donc le test réalisé, les données, le score de \(\chi²\), les degrés de liberté et le p
Pour avoir le résultat tant attendu il suffit de lire les informations indiquées par x-squared et p-value. Ici nous avons un \(\chi²\) de 363.62 et un p-value très nettement inférieur à 0.05. Nous pous donc conclure qu’il y a a bien un lien entre notre variables sexe et survie. Mais attention avec ces informations seules nous ne sommes pas en mesure de parler du sens ou de la force de ce lien. Ce que l’on peut dire avec c’est que statiquement ces deux variables ne sont pas indépendantes.
Vous pouvez stocker le test dans un objet ce qui vous donnera accés à un ensemble d’informations associées au \(\chi²\).
[1] "statistic" "parameter" "p.value" "method" "data.name" "observed"
[7] "expected" "residuals" "stdres"
On a donc les effectifs observés :
female male
died 127 682
survived 339 161
Les effectifs théoriques sous la loi d’indépendances
female male
died 288.0015 520.9985
survived 177.9985 322.0015
Le tableau des résidus
female male
died -9.487081 7.053615
survived 12.067627 -8.972243
Les résidus peuvent aussi s’obtenir à l’aide d’une fonction du package questionr avec une mise en forme plus agréable.
female male
died -9.49 7.05
survived 12.07 -8.97
Les effectifs théorique et dans une plus grande mesure les résidus vont nous donner davantages d’informations sur le sens du lien entre nos deux variables. Effectivement, on se rend compte que la population masculine observée ayant périe dans le naufrage est significativement inférieure à son effectif théorique. A l’inverse la population des femmes observées ayant survécus est elle significativement supérieure à son effectif théorique. On peut donc dire qu’effectivement le genre à un lien avec la survie au naufrage et surtout que l’on avait plus de chance d’y rester si on était un homme.
Imaginons que vous ayez eu plus de 20% des effectifs théoriques inférieur à 5, vous auriez vue apparaittre un warning vous conseillant de réaliser un test exacte de fischer et bien voilà comment faire :
Fisher's Exact Test for Count Data
data: tab
p-value < 2.2e-16
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
0.06712075 0.11644002
sample estimates:
odds ratio
0.08867006
Vous aurez ici aussi toutes sortes d’info avec bien sur le p mais aussi un intervalle de confiance et même un odds ratio. Ce test s’interprète exactement comme le \(\chi²\).
Pour connaitre la force du lien, rappelez-vous il y avait le V de Cramer, rien de plus simple grâce au package questionr
[1] 0.5286931
On aurait donc un lien plutôt important entre nos deux variables!
Pour représenter graphiquement un \(\chi²\) à l’aide des résidus on utilise traditionnellement un mosaic plot :
# Peut aussi être écrit comme cela
mosaicplot(survived ~ sex, data = ptitanic, shade = TRUE, las = 1, main = "Mosaic plot des résidus de notre Chi²")
# Ou en utilisant un autre package
library(vcd)
Mais comme ici on est pas du genre à respecter les codes on peut aussi représenter différemment nos résidus ! Et pourquoi pas à l’aide d’un corrélogramme ou d’un balloon plot
# Le balloon plot
library(ggpubr)
library(ggplot2)
residu <- as.data.frame(chi$residuals)
ggballoonplot(residu, fill = "value") + scale_fill_viridis_c(option = "C")
# ça marche aussi pour représenter notre tableau croisé
tab2 <- as.data.frame(tab)
ggballoonplot(tab2, fill = "value") + scale_fill_viridis_c(option = "B")
Toutes ces reprèsentations peuvent vous aider à lire et interpréter les résidus de votre \(\chi²\).
Je peux difficilement vous en dire plus sur le \(\chi²\) et sa représentation graphique, à part peut être comme conclusion de ce tutoriel vous encourager à l’utiliser. C’est un test robuste extrêment utile pour explorer et analyser des données qualitatives et des tableaux de contingences.