Le test du Chi2 de Pearson

 

Karl_Pearson

Karl Pearson

\bullet Historique:

\begin{tabular}{|l|c|c|} \hline Bloc & 20/05/2013-V1 & 29/07/2019-V2 \\ \hline Historique &  & Cr\'eation \\ \hline Sommaire &  & Cr\'eation \\ \hline Pr\'esentation & Cr\'eation & MAJ \\ \hline Le test & Cr\'eation & Calcul p-valeur, suppression test de conformit\'e \\ \hline Tendance lorsque... & Cr\'eation & MAJ \\ \hline Annexe th\'eo... & Cr\'eation & Ajout correction de Yates \\ \hline Exemple & Cr\'eation & Ajout correction de Yates, approche MCMC \\ \hline Appli... info... & Cr\'eation & Devient Appli... sous R \\ \hline Appli... sous SAS &  & Cr\'eation \\ \hline Bibliographie & Cr\'eation & MAJ \\ \hline \end{tabular}

\bullet Sommaire:

  • Présentation
  • Le test
    • Adaptation des données
    • Le test du \chi ^2 de Pearson
      • La table de la loi du \chi ^2
      • Condition pour le rejet de H_0
      • La correction de continuité de Yates
      • Calcul de la p-valeur exacte
    • L’approximation par méthode MCMC
      • Justification
      • Formulation
      • Apport
  • Tendance lorsque n \rightarrow + \infty
  • Annexe théorique
    • Convergence de la statistique de test vers la loi du \chi ^2
    • Comprendre la correction de Yates
  • Exemples
    • Le test d’adéquation du \chi ^2
    • Le test d’homogénéité du \chi ^2
    • Le test d’indépendance du \chi ^2
    • La correction de Yates
    • Le test du \chi ^2 par approche MCMC
  • Application sous R
    • Le test d’adéquation du \chi ^2
    • Le test d’homogénéité du \chi ^2
    • Le test d’indépendance du \chi ^2
  • Application sous SAS
    • Le test d’adéquation du \chi ^2
    • Le test d’homogénéité du \chi ^2
    • Le test d’indépendance du \chi ^2
  • Bibliographie

\bullet Présentation:

Proposé en 1900 par Karl Pearson, le test du \chi ^2 de Pearson est une approche non paramétrique permettant de tester:

– Si une variable continue ou qualitative X suit une loi de distribution fixée. Cette version est plus communément appelée test d’adéquation du \chi ^2 ;

– Si deux variables continues ou qualitatives (X ^1, X ^2) ont même loi de distribution. Cette version est plus communément appelée test d’homogénéité du \chi ^2 ;

– La liaison entre deux variables qualitatives distinctes (X ^1, X ^2). Cette version est plus communément appelée test d’indépendance du \chi ^2.

\bullet Le test:

Adaptation des données

Les trois versions du test du \chi ^2 se différencient uniquement par la forme des données et la gestion des effectifs théoriques. En effet,

Dans le cas du test d’adéquation: si l’on est dans un cas continue, il faudra établir K intervalles de valeurs à partir desquels on comptabilisera le nombre de fois où X y prend ses valeur. La répartition des effectifs de X est comparée aux effectifs théoriques attendus dans le cadre de la loi de distribution de référence fixée. Dans un cadre qualitatif à K modalités, on pourra directement comparer X. Ainsi, pour cette version du test, on se retrouve avec un tableau croisé de taille 1 \times K.

Dans le cas du test d’homogénéité: si l’on est dans un cas continue, il faut établir K intervalles de valeurs à partir desquels on comptabilisera le nombre de fois où X ^1, respectivement  X^2, y prend ses valeurs. La répartition des effectifs de X ^1, respectivement X ^2, est comparée aux effectifs de X ^2, respectivement  X ^1, ventilés selon les intervalles construits. Dans un cadre qualitatif à K_1, K_2 modalités respectivement pour les deux variables considérées, on pourra directement comparer X ^1 et X ^2 en prenant soin de regrouper les modalités afin que les deux variables soient comparables. Ainsi, pour cette version du test, on se retrouve avec un tableau croisé de taille 1 \times K.

Dans le cas du test d’indépendance: si l’on est dans un cas continue, le test du \chi ^2 de Pearson offre alors la possibilité d’étudier les liaisons non linéaires entre deux variables. On découpera alors X ^1 en K_1 intervalles et X ^2 en K_2 intervalles et on construira le tableau croisé dynamique associé. Les effectifs théoriques sont alors calculés en fonction de la distribution attendue si l’on est en présence d’une configuration aléatoire. Dans un cadre qualitatif à K_1, K_2 modalités respectivement pour les deux variables considérées, on pourra directement comparer X ^1 et X ^2. Ainsi, pour cette version du test, on se retrouve avec un tableau croisé de taille K_1 \times K_2.

Le test du \chi ^2

Hypothèse préliminaire: Au moins 80 \% des effectifs théoriques \geq 5.

La formule du test du \chi ^2 de Pearson étant la même quelque soit la version une fois que les données ont été correctement adaptées. Elle se base sur le tableau croisé de forme généralisée,

add
Où les couples (K_1,K_2) représentent les différentes cellules issues du croisement des deux variables X ^1 et X ^2 et chacune des cellules contiennent la répartition en effectif de X, X ^1X ^2. On pose n_{k_1,k_2} la fréquence observée dont la somme \sum_{k_1 = 1} ^{K_1} \sum_{k_2 = 1} ^{K_2} n_{k_1,k_2} = n et e_{k_1,k_2} la fréquence théorique que l’on peut calculer via les formules suivantes:

– Pour le test d’adéquation: K = K_1, K_2 = 1, \forall k \in \lbrace 1, \cdots K \rbrace,

e_{k,1} = n \times P(X = k / \mbox{ la loi de distribution de r\'ef\'erence})

– Pour le test d’homogénéité: K = K_1, K_2 = 1 (respectivement K_1 = 1, K = K_2), \forall k \in \lbrace 1, \cdots K \rbrace,

e_{k,1} (respectivement e_{1,k}) = \sharp \lbrace X ^2 (\mbox{ respectivement } X ^1) = k) \rbrace

– Pour le test d’indépendance: \forall k_1 \in \lbrace 1, \cdots, K_1 \rbrace, k_2 \in \lbrace 1, \cdots K_2 \rbrace,

e_{k_1,k_2} = \frac{\sum_{k = 1} ^{K_1} n_{k_1,k} \times \sum_{k = 1} ^{K_2} n_{k,k_2}}{n}

On rappellera que ce test est réputé comme « douteux » si la configuration des données ne respecte pas le critère de Cochran: \forall k_1, k_2, e_{k_1,k_2} \geq 5.

La formule de la statistique de test du \chi ^2 est alors donnée par:

\chi ^2 = \sum_{k_1 = 1} ^{K_1} \sum_{k_2 = 1} ^{K_2} \frac{(n_{k_1,k_2} - e_{k_1,k_2}) ^2}{e_{k_1,k_2}}

Elle suit une loi du \chi ^2 à d = (n_{K_1} - 1) \times (n_{K_2} - 1) degrés de liberté et l’hypothèse H_0 est:

Les distributions comparées sont identiques / \pi_{1,1} = \cdots = \pi_{k_1,k_2} = \cdots = \pi_{K_1,K_2}

Avec \chi_{d,1-\alpha} ^2 la valeur seuil de la distribution de la statistique de test du \chi ^2 pour une confiance \alpha et pour d degrés de liberté, l’hypothèses alternative est alors,

H_1: \exists k_1 ^1, k_2 ^1, k_1 ^2, k_2 ^2 tel que \pi_{k_1^1, k_2^1} \neq \pi_{k_1^2,k_2^2}, soit \chi ^2 \geq \chi_{d,1-\alpha} ^2, pour un test bilatéral ;

– Le test du \chi ^2 ne propose pas de forme unilatérale à droite ou à gauche pour H_1 car basé sur une approche qualitative de X, X ^1 et X ^2.

La table de la loi du \chi ^2:

add

Condition pour le rejet de H_0 :

Plus la valeur de la statistique de test du \chi ^2 est grande et plus on a de chance de rejeter H_0. Ce qui revient donc à dire qu’il \exists k_1, k_2 tel que n_{k_1,k_2} >>> e_{k_1,k_2} soit que l’écart entre la distribution observée et celle attendue dans le cadre d’une distribution aléatoire est importante.

On notera que d’élever au carré le terme (n_{k_1,k_2} - e_{k_1,k_2}) amplifie la moindre répartition inattendue et qu’il n’est pas nécessaire que la condition n_{k_1,k_2} >>> e_{k_1,k_2} soit respectée \forall k_1, k_2.

La correction de continuité Yates :

Dans le cas d’effectifs observés (n \leq 50) voire lorsque l’un des effectifs théoriques est trop faible (n \leq 10), il faut prendre en compte le fait que la loi du \chi ^2 est une loi de probabilité continue alors que les données utilisées suivent une loi binomiale. Dans ce cadre là, une surévaluation du \chi ^2 est observée et est corrigée en appliquant un ajustement de \frac{1}{2} à chacun des termes calculés.

A noter que la correction de Yates ne pallie pas au problème de fiabilité induit par la présence d’effectifs théoriques trop faibles. De plus, la correction de Yates est recommandée pour des tableaux croisés de taille 2 \times 2 exclusivement.

La formule générale du test du \chi ^2 adaptée à la correction de continuité de Yates devient alors:

\chi ^2 = \sum_{k_1 = 1} ^2 \sum_{k_2 = 1} ^2 \frac{(| n_{k_1,k_2} - e_{k_1,k_2} | - 0.5) ^2}{e_{k_1,k_2}}

Calcul de la p-valeur exacte:

La loi à laquelle reporter la statistique de test du \chi ^2 de Pearson, quelque soit sa version, est celle du \chi ^2 à d degrés de liberté. Le test du \chi ^2 de Pearson travaillant sur des variables qualitatives, il n’existe qu’une version bilatéral pour le calcul de la p-valeur:

p = P(\chi_{obs} ^2 > \chi_{d,1-\alpha} ^2) = 1 - \frac{\gamma(\frac{d}{2},\frac{\chi_{obs} ^2}{2})}{\Gamma(\frac{d}{2})}

, avec \Gamma(.) la fonction gamma et \gamma(.,.) la fonction gamma incomplète de formule:

\gamma(\frac{d}{2},\frac{\chi_{obs} ^2}{2}) = \sum_{k = 0} ^{\infty} \frac{(-1) ^k (\frac{\chi_{obs} ^2}{2}) ^{\frac{d}{2} + k}}{k! (\frac{d}{2} + k)}

L’Approximation par méthode MCMC

Justification:

Une manière de pallier au cas où les effectifs théoriques sont inférieurs à 5 est soit de procéder au test exact de Fisher mais qui devient trop coûteux en temps de calcul (même pour certains logiciels) dés que le tableau est de taille supérieure à 2 \times 2, soit d’exécuter le test du \chi ^2 par algorithme de Monte-Carlo par chaînes de Markov (approche MCMC).

Formulation:

On définit dans un premier temps un nombre B de tirages aléatoires avec remises et à probabilités égales. Ainsi, on reconstitue B versions de X (notée X ^B) où de X ^1, X ^2 (notée (X ^1) ^B, (X ^2) ^B) en fonction de la version du test.

Pour chaque échantillon B tiré, on effectue le test et on compose le vecteur \chi_{MCMC} ^2 = (\chi_1 ^2, \cdots, \chi_B ^2) des statistiques de test associées aux différents X ^b, ((X ^1) ^b, (X ^2) ^b), \forall b \in \lbrace 1, \cdots, B \rbrace.

La p-valeur finale, obtenue selon la méthode MCMC est alors donnée par:

p_{\chi ^2} ^{MCMC} = \frac{1 + \sharp \lbrace \chi_b ^2 \geq \chi_{obs} ^2, \forall b \in [1, \cdots, B] \rbrace}{B + 1}

\chi_{obs} ^2 est la statistique de test obtenue sur l’échantillon complet (on s’affranchit issue de l’aspect « douteux » du résultat et lié à la configuration des données) et \chi_b ^2 celle sur le b-ième sous-échantillon construit.

Apport:

L’idée de l’approche MCMC appliquée à la théorie des tests est de comparer la statistique de test déterminée sur l’échantillon complet à celles obtenues sur les B sous-échantillons tirés aléatoirement avec remise. En réalité on va resimuler la loi de distribution de la statistique de test \chi_{obs} ^2 et déterminer empiriquement sa probabilité d’exister.

L’aspect Monte-Carlo vient du fait qu’il s’agit d’une approche probabiliste faisant notamment intervenir les chaînes de Markov, de loi stationnaire: la distribution de l’échantillon complet, et qui ont l’avantage de converger vers la loi globale permettant de supprimer la contrainte liée aux effectifs théoriques.

\bullet Tendance lorsque n \longrightarrow \infty:

Le test du \chi ^2 de Pearson est directement influencé par la taille d’échantillon. En effet, la formule montre que l’on élève au carré la différence entre la répartition observée et celle attendue dans le cadre d’une distribution aléatoire. Aussi, plus on augmente la taille de l’échantillon et plus ces différences seront marquées notamment pour des cas où effectifs observés et théoriques sont pourtant proches.

On présentera ci-dessous, pour un cas simple, l’évolution de la p-valeur au fur et à mesure que la taille de l’échantillon croît:

\begin{tabular}{|l|c|c|c|c|r|} \hline  & \multicolumn{2}{c|}{Effectif} & \multicolumn{2}{c|}{Pourcentage} &  \\ \hline N & Cellule 1 & Cellule 2 & Cellule 1 & Cellule 2 & p-valeur \\ \hline 19 & 9 & 10 & 47\% & 53\% & 0.8185 \\ \hline 190 & 90 & 100 & 47\% & 53\% & 0.4682 \\ \hline 1900 & 900 & 1000 & 47\% & 53\% & 0.0218 \\ \hline 19000 & 9000 & 10000 & 47\% & 53\% & 0.0001 \\ \hline \end{tabular}

On voit que, à proportions constantes, le test devient significatif alors que la distribution est quasi-aléatoire à chaque fois. Il s’agit d’un exemple trivial sur un tableau de taille 2 \times 2, mais dans le cas où l’on serait en présence de plus grandes dimensions le test subit encore plus les effets de la taille de l’échantillon.

\bullet Annexe théorique:

Convergence de la statistique de test vers la loi du \chi ^2

On note \chi ^2 (\lbrace p_k \rbrace) la distribution de la statistique:

p_k = P(X = k), \forall k \in \lbrace 1, \cdots, K \rbrace

Soit T valeur arbitraire, n_k l’effectif de la modalité k et K nombre de modalités tel que n = \sum_{k = 1} ^K n_k. Et \chi ^2 (\lbrace n_k \rbrace, \lbrace p_k \rbrace) la statistique de test cumulée. On a,

P(\chi ^2 (\lbrace p_k \rbrace) > T) = \sum_{n_k | \chi ^2 (\lbrace n_k \rbrace, \lbrace p_k \rbrace) > T} \frac{n!}{n_1 ! \cdots n_K !} \cdot \prod_{k = 1} ^K p_k ^{n_k}

En utilisant la formule de Stirling: n! \approx \sqrt{2 \pi n} (\frac{n}{e}) ^n, on peut écrire que:

P(\chi ^2 (\lbrace p_k \rbrace) > T) = \sum_{n_k | \chi ^2 (\lbrace n_k \rbrace, \lbrace p_k \rbrace) > T} \frac{\sqrt{2 \pi n} (\frac{n}{e}) ^n}{\prod_{k = 1} ^K \sqrt{2 \pi n_k} (\frac{n_k}{e}) ^{n_k}} \prod_{k = 1} ^K p_k ^{n_k}

 = \sum_{n_k | \chi ^2 (\lbrace n_k \rbrace, \lbrace p_k \rbrace) > T} \sqrt{\frac{2 \pi n}{\prod_{k = 1} ^K 2 \pi n_k}} \frac{n ^n}{\prod_{k = 1} ^K n_k ^{n_k}} \prod_{k = 1} ^K p_k ^{n_k}

Etant donné que les exponentielles se simplifient \frac{\frac{1}{e ^n}}{\frac{1}{\prod_{k = 1} ^K e ^{n_k}}} = \frac{e ^{\sum_{k = 1} ^K n_k}}{e ^n} = \frac{e ^n}{e ^n} = 1 on a, 

P(\chi ^2 (\lbrace p_k \rbrace) > T) = \sum_{n_k | \chi ^2 (\lbrace n_k \rbrace, \lbrace p_k \rbrace) > T} \prod_{k = 1} ^K \sqrt{\frac{2 \pi n}{\prod_{k = 1} ^K 2 \pi n_k}} (\frac{n p_k}{n_k}) ^{n_k} 

\approx \sqrt{\frac{2 \pi n}{\prod_{k = 1} ^K 2 \pi n_k}} \int_{\chi ^2 (\lbrace \sqrt{n} x_k + n p_k \rbrace, \lbrace p_k \rbrace) > T} (\prod_{k = 1} ^{K - 1} \sqrt{n} \partial x_k) \prod_{k = 1} ^{K - 1} (1 + \frac{x_k}{\sqrt{n} p_k}) ^{- (n p_k + \sqrt{n} x_k)} (1 - \frac{\sum_{k = 1} ^{K-1} x_k}{\sqrt{n} p_K}) ^{-(n p_K - \sqrt{n} \sum_{k = 1} ^{K - 1} x_k)}

, après avoir effectué les changements de variable: x_k = \frac{n_k - n \cdot p_k}{\sqrt{n}}, \forall k \ in \lbrace 1, \cdots, K-1 \rbrace et n_K = n p_K - \sqrt{n} \sum_{k = 1} ^{K-1} n_k. On justifie alors le passage à l’intégrale par le fait que l’on se place dans le cas où n est grand. Dés lors,

P(\chi ^2 (\lbrace p_k \rbrace) > T) \approx \sqrt{\frac{2 \pi n}{\prod_{k = 1} ^K (2 \pi n p_k + 2 \pi \sqrt{n} x_k)}} \int_{\chi ^2 (\lbrace \sqrt{n} x_k + n p_k \rbrace, \lbrace p_k \rbrace) > T} (\prod_{k = 1} ^{K-1} \sqrt{n} \partial x_k)

\times \prod_{k = 1} ^{K - 1} e ^{-(n p_k + \sqrt{n} x_k) ln(1 + \frac{x_k}{\sqrt{n} p_k})} e ^{-(n p_K - \sqrt{n} \sum_{k = 1} ^{K - 1} x_k) ln(1 - \frac{\sum_{k = 1} ^{K - 1} x_k}{\sqrt{n} p_K})}

En jouant sur le lien entre exponentielle et logarithme on obtient,

P(\chi ^2 (\lbrace p_k \rbrace) > T) \approx \frac{1}{\prod_{k = 1} ^{K - 1} (\sqrt{p_k})} \frac{1}{(2 \pi) ^{K - 1} \sqrt{p_n}} \int_{\chi ^2 (\lbrace p_k \rbrace) > T} \sqrt{\frac{2 \pi n}{\prod_{k = 1} ^K 2 \pi n_k}} (\prod_{k = 1} ^{K - 1} \partial x_k)

\times \prod_{k = 1} ^{K - 1} e ^{- \frac{1}{2} (\sum_{k = 1} ^{K - 1} \frac{x_k ^2}{p_k} + \frac{(\sum_{k = 1} ^{K - 1} x_k) ^2}{p_n})}

, après manipulation du développement limité du logarithme ln(1 + x) = \sum_{j = 1} ^{+\infty} (-1) ^{j+1} \frac{x ^j}{j} et ln(1 - x) = - \sum_{j = 1} ^{+\infty} \frac{x ^j}{j}.

On peut alors factoriser,

-\frac{1}{2} ( \sum_{k = 1} ^{K - 1} \frac{x_k ^2}{p_k} + \sum_{k = 1} ^{K - 1} \frac{x_k ^2}{p_K}) = -\frac{1}{2} \sum_{k, k' = 1} ^{K - 1} x_k \cdot A_k \cdot x_{k'} = \sum_{k = 1} ^{K - 1} y_k ^2

, avec A_k = \frac{\delta_{k,k'}}{p_k} + \frac{1}{p_K}

Ainsi on a que:

P(\chi ^2 (\lbrace p_k \rbrace) > T) \approx C \int_{\sum_{k = 1} ^{K - 1} y_k ^2 > T} (\prod_{k = 1} ^{K - 1} \partial y_k) \prod_{k = 1} ^{K - 1} e ^{- \frac{1}{2} \sum_{k = 1} ^{K - 1} y_k ^2}

On reconnait ici le produit d’une somme de variables aléatoires d’espérances nulles et de variance égale à 1. On retrouve ainsi la loi du \chi ^2 à K - 1 degrés de libertés.

Comprendre la correction de Yates:

Soit une variable aléatoire X de loi de distribution discrète (bâtons en rouge). L’objectif que l’on se fixe est de l’approximer par une loi de distribution continue (courbe en bleu).

add1

En rouge les probabilités observées de tirer les différentes valeurs de X comprises entre 0 et 16 et en bleu sa courbe de lissage associée

Le problème revient donc à fournir une estimation de la densité de X en tout point.

add2

On cherche à estimer la probabilité d’obtenir la valeur 6 par exemple

On a alors deux façons de procéder:

add3

A gauche on cherche à construire notre estimation en se basant sur la partie complète comprise entre 5 et 6 soit un risque de minorer la probabilité associée. A droite on se base sur la partie complète comprise entre 6 et 7, soit un risque de la majorer

Mais dans ces deux cas, soit on sous-évalue l’aire soit on la surévalue. Le moyen le plus intuitif et démontré par Yates est alors d’appliquer cette approche non pas sur l’intervalle qui nous intéresse mais sur un décalage de +/- \frac{1}{2}.

add4

On décalera l’intervalle de +/- 0.5 afin que les parties sous-évalué et surévalué se compensent entre elles lors de l’estimation globale

On obtient alors un approximation bien meilleure de la densité que l’on applique alors en chaque point.

\bullet Exemples:

Le test d’adéquation du \chi ^2

Soit la variable aléatoire X suivante:

\begin{tabular}{|c|} \hline X \\ \hline 3.1101 \\ \hline 4.1008 \\ \hline 4.7876 \\ \hline 7.0677 \\ \hline 6.0858 \\ \hline 4.9309 \\ \hline 4.0449 \\ \hline 3.0101 \\ \hline 5.9495 \\ \hline 6.8729 \\ \hline 1.0898 \\ \hline 1.9868 \\ \hline 2.9853 \\ \hline 10.0080 \\ \hline 8.9052 \\ \hline 8.0411 \\ \hline 2.0826 \\ \hline 1.0536 \\ \hline 9.0649 \\ \hline 10.0826 \\ \hline \end{tabular}

L’histogramme de distribution de X (bâtons en noir) suivant permet de  comparer sa distribution à celle attendue dans le cadre d’une loi normale (pointillés en rouge).

add

Les effectifs théoriques ne sont pas conformes aux conditions d’utilisation du test. Cependant, on assumera ici qu’il s’agit d’un exemple.

On cherche à tester si X suit une loi normale à l’aide du test du \chi^2. Pour cela on va estimer dans un premier temps la moyenne et l’écart-type de X:

\mu_X = 5.261505

\sigma_X ^2 = 8.541427

En composant le tableau de répartition en six intervalles suivants, on obtient:

\begin{tabular}{|l|c|c|c|c|c|c|} \hline Intervalles de valeurs & [0-2] & ]2-4] & ]4-6] & ]6-8] & ]8-10] & ]10-12] \\ \hline Effectifs de X & 3 & 4 & 5 & 3 & 3 & 2 \\ \hline Effectifs th\'eoriques & 1.9262176 & 4.0156696 & 5.3348812 & 4.5175974 & 2.43580677 & 0.8381492 \\ \hline \end{tabular}

Par exemple, l’effectif théorique e_{1,2} associé à la loi normale de paramètres \mu_X, \sigma_X ^2 sur l’intervalle ]2 – 4] est:

e_{1,2} = 20 \times P(X \in ]2-4] / N(\mu_X, \sigma_X ^2))

= 20 \times P(X \leq 4 / N(\mu_X, \sigma_X ^2)) - 20 \times P(X < 2 / N(\mu_X, \sigma_X ^2))

= 6.660016 - 2.644346

= 4.0156696

, soit que près de quatre observations sur vingt doivent appartenir à l’intervalle ]2-4] si X suit une loi normale de paramètres (\mu_X, \sigma_X ^2).

On peut donc calculer la statistique de test d’adéquation du \chi ^2,

\chi_{obs} ^2 = \frac{(3 - 1.9262176) ^2}{1.9262176} + \frac{(4 - 4.0156696) ^2}{4.0156696} + \cdots + \frac{(2 - 0.8381492) ^2}{0.8381492} = 2.870726

On cherche à tester bilatéralement le rejet de l’hypothèse H_0. Sous cette approche, on génère une loi du \chi ^2 à 6 - 1 = 5 degrés de liberté et l’on reporte sur le graphe ci-dessous les valeurs seuils qui correspondent aux quantiles à 20 \%, 10 \%, 5 \% et 1 \%,

add

En se reportant aux valeurs de la table de la loi du \chi ^2 ci-dessus, on constate que,

\chi_{1\%, 5} ^2 = 15.0863 > \chi_{5\%, 5} ^2 = 11.0705 > \chi_{10\%, 5} ^2 = 9.2364 > \chi_{20\%, 5} ^2 = 7.2893 > \chi_{obs} ^2 = 2.870726

Maintenant, on calcul la p-valeur exacte associée à la statistique de test \chi_{obs} ^2 dans le cadre bilatéral et pour 6 - 1 = 5 degrés de liberté. On a,

p = 1 - \frac{\gamma(\frac{5}{2},\frac{2.870726}{2})}{\Gamma(\frac{5}{2})} = 1 - \frac{0.37723378}{1.32934} = 1 - 0.2800922 = 0.7199078 > 5 \%

On ne pourra pas rejeter H_0 au risque de 5 \%. On en conclut que la variable X suit une loi normale.

Le test d’homogénéité du \chi ^2

Soit les deux variables X ^1, X ^2 ci-dessous:

\begin{tabular}{|c|c|} \hline X1 & X2 \\ \hline 3.1101 & 0.8970 \\ \hline 4.1008 & 2.0949 \\ \hline 4.7876 & 3.0307 \\ \hline 7.0677 & 4.0135 \\ \hline 6.0858 & 5.0515 \\ \hline 4.9309 & 6.0261 \\ \hline 4.0449 & 6.9059 \\ \hline 3.0101 & 7.9838 \\ \hline 5.9495 & 8.9854 \\ \hline 6.8729 & 9.9468 \\ \hline 1.0898 & 11.1682 \\ \hline 1.9868 & 11.9124 \\ \hline 2.9853 & 12.9516 \\ \hline 10.0080 & 13.9288 \\ \hline 8.9052 & 14.8826 \\ \hline 8.0411 & 15.9808 \\ \hline 2.0826 & 16.9726 \\ \hline 1.0536 & 18.1530 \\ \hline 9.0649 & 18.9751 \\ \hline 10.0826 & 19.8936 \\ \hline \end{tabular}

On représente les deux densités de distribution afin de pouvoir comparer directement X ^1 (en rouge) et X ^2 (en bleu):

add

Les effectifs théoriques ne sont pas conformes aux conditions d’utilisation du test. Cependant, on assumera ici qu’il s’agit d’un exemple.

On prend X ^2 comme variable de référence afin de lui comparer X ^1. On peut donc construire le tableau suivant en construisant quatre intervalles de valeurs permettant de comparer les deux variables:

\begin{tabular}{|l|c|c|c|c|} \hline Intervalles de valeurs & [0-5] & ]5-10] & ]10-15] & ]15-20] \\ \hline Effectifs de X1 & 11 & 7 & 2 & 0 \\ \hline Effectifs th\'eoriques = Effectifs de X2 & 4 & 6 & 5 & 5 \\ \hline \end{tabular}

On peut donc calculer la statistique de test d’homogénéité du \chi ^2,

\chi_{obs} ^2 = \frac{(11 - 4) ^2}{4} + \cdots + \frac{(0 - 5) ^2}{5} = 19.21667

On cherche à tester bilatéralement le rejet de l’hypothèse H_0. Sous cette approche, on génère une loi du \chi ^2 à 4 - 1 = 3 degrés de liberté et l’on reporte sur le graphe ci-dessous les valeurs seuils qui correspondent aux quantiles à 20 \%, 10 \%, 5 \% et 1 \%,

add.png

En se reportant aux valeurs de la table de la loi du \chi ^2 ci-dessus, on constate que,

\chi_{20\%, 5} ^2 = 4.6416 < \chi_{10\%, 5} ^2 = 6.2514 < \chi_{5\%, 5} ^2 = 7.8147 < \chi_{1\%, 5} ^2 = 11.3449 < \chi_{obs} ^2 = 19.21667

Maintenant, on calcul la p-valeur exacte associée à la statistique de test \chi_{obs} ^2 dans le cadre bilatéral et pour 4 - 1 = 3 degrés de liberté. On a,

p = 1 - \frac{\gamma(\frac{3}{2},\frac{19.21667}{2})}{\Gamma(\frac{3}{2})} = 1 - \frac{0.8860084}{0.8862269} = 1 - 0.9997534 = 0.0002465956 < 1 \%

On pourra rejeter H_0 au risque de 1 \%. On en conclut que les distribution de X ^1 et X ^2 sont différentes.

Le test du \chi ^2 d’indépendance

Soit les deux variables X ^1, X ^2 ci-dessous,

\begin{tabular}{|c|c|} \hline X1 & X2 \\ \hline B & A \\ \hline B & A \\ \hline B & A \\ \hline B & C \\ \hline B & C \\ \hline B & A \\ \hline B & A \\ \hline A & A \\ \hline A & B \\ \hline A & B \\ \hline A & B \\ \hline A & B \\ \hline A & B \\ \hline A & B \\ \hline A & B \\ \hline A & C \\ \hline A & C \\ \hline B & C \\ \hline B & C \\ \hline B & C \\ \hline \end{tabular}

Ci-dessous, l’histogramme des effectifs croisés de X ^1, X ^2 permet de voir que lorsque X ^1 = "A" alors X ^2 = "B" majoritairement et que lorsque X ^1 = "B" alors X ^2 \in \lbrace "A", "C" \rbrace exclusivement.

add

Les effectifs théoriques ne sont pas conformes aux conditions d’utilisation du test. Cependant, on assumera ici qu’il s’agit d’un exemple.

On trouve ci-dessous la table des effectifs observés et entre parenthèses les effectifs théoriques:

\begin{tabular}{|l|c|c|c|} \hline  & X2 = A & X2 = B & X2 = C \\ \hline X1 = A & 1 [3] & 7 [3.5] & 2 [3.5] \\ \hline X1 = B & 5 [3] & 0 [3.5] & 5 [3.5] \\ \hline \end{tabular}

Par exemple, pour l’effectif théorique (entre crochets dans le tableau ci-dessus) de la cellule (1,1) on a:

e_{1,1} = \frac{(1+7+2) \times (1+5)}{20} = \frac{60}{20} = 3

On peut donc calculer la statistique de test d’indépendance du \chi ^2,

\chi_{obs} ^2 = \frac{(1 - 3) ^2}{3} + \frac{(5 - 3) ^2}{3} + \frac{(7 - 3.5) ^2}{3.5} + \frac{(0 - 3.5) ^2}{3.5} + \frac{(2 - 3.5) ^2}{3.5} +\frac{(5 - 3.5) ^2}{3.5} = 10.95238

On cherche à tester bilatéralement le rejet de l’hypothèse H_0. Sous cette approche, on génère une loi du \chi ^2 à (3-1) \times (2-1) = 2 \times 1 = 2 degrés de liberté et l’on reporte sur le graphe ci-dessous les valeurs seuils qui correspondent aux quantiles à 20 \%, 10 \%, 5 \% et 1 \%,

add

En se reportant aux valeurs de la table de la loi du \chi ^2 ci-dessus, on constate que,

\chi_{20\%, 5} ^2 = 3.2189 < \chi_{10\%, 5} ^2 = 4.6052 < \chi_{5\%, 5} ^2 = 5.9315 < \chi_{1\%, 5} ^2 = 9.2103 < \chi_{obs} ^2 = 10.95238

Maintenant, on calcul la p-valeur exacte associée à la statistique de test \chi_{obs} ^2 dans le cadre bilatéral et pour 2 degrés de liberté. On a,

p = 1 - \frac{\gamma(\frac{2}{2},\frac{10.95238}{2})}{\Gamma(\frac{2}{2})} = 1 - \frac{0.9958148}{1} = 1 - 0.9958148 = 0.004185245 < 1 \%

On pourra rejeter H_0 au risque de 1 \%. On en conclut que X ^1 et X ^2 sont liées.

La correction de Yates

On s’intéresse désormais à l’impact de l’application de la correction de Yates sur les p-valeurs des trois exemples ci-dessus malgré qu’initialement la correction de Yates reste réservée aux tableaux de taille 2 \times 2.

– Concernant le test d’adéquation du \chi ^2: le tableau obtenu si l’on souhaite comparer la distribution de X à une loi normale est le suivant,

\begin{tabular}{|l|c|c|c|c|c|c|} \hline Intervalles de valeurs & [0-2] & ]2-4] & ]4-6] & ]6-8] & ]8-10] & ]10-12] \\ \hline Effectifs de X & 3 & 4 & 5 & 3 & 3 & 2 \\ \hline Effectifs th\'eoriques & 1.9262176 & 4.0156696 & 5.3348812 & 4.5175974 & 2.43580677 & 0.8381492 \\ \hline \end{tabular}

Et la statistique de test sans correction:

\chi_{obs} ^2 = \frac{(3 - 1.9262176) ^2}{1.9262176} + \frac{(4 - 4.0156696) ^2}{4.0156696} + \cdots + \frac{(2 - 0.8381492) ^2}{0.8381492} = 2.869568

Sa valeur après application de la correction de Yates:

\chi_{Yates} ^2 = \frac{(|3 - 1.9262176| - 0.5) ^2}{1.9262176} + \frac{(|4 - 4.0156696| - 0.5) ^2}{4.0156696} + \cdots + \frac{(|2 - 0.8381492| - 0.5) ^2}{0.8381492} = 0.9879872

On obtient alors:

p = 1 - \frac{\gamma(\frac{5}{2},\frac{0.9879872}{2})}{\Gamma(\frac{5}{2})} = 1 - \frac{0.04848256}{1.32934} = 1 - 0.03647114 = 0.9635289 > 5 \%

– Concernant le test d’homogénéité du \chi ^2: le tableau obtenu si l’on souhaite comparer les distributions de X ^1 et X ^2 est le suivant,

\begin{tabular}{|l|c|c|c|c|} \hline Intervalles de valeurs & [0-5] & ]5-10] & ]10-15] & ]15-20] \\ \hline Effectifs de X1 & 11 & 7 & 2 & 0 \\ \hline Effectifs th\'eoriques = Effectifs de X2 & 4 & 6 & 5 & 5 \\ \hline \end{tabular}

Et la statistique de test sans correction:

\chi_{obs} ^2 = \frac{(11 - 4) ^2}{4} + \cdots + \frac{(0 - 5) ^2}{5} = 19.21667

Sa valeur après application de la correction de Yates:

\chi_{Yates} ^2 = \frac{(|11 - 4| - 0.5) ^2}{4} + \cdots + \frac{(|0 - 5| - 0.5) ^2}{5} = 15.90417

On obtient alors:

p = 1 - \frac{\gamma(\frac{3}{2},\frac{15.90417}{2})}{\Gamma(\frac{3}{2})} = 1 - \frac{0.8851755}{0.8862269} = 1 - 0.9988135 = 0.001186454 < 1 \%

– Concernant le test d’indépendance du \chi ^2: le tableau obtenu si l’on croise les variables X ^1 et X ^2 est le suivant,

\begin{tabular}{|l|c|c|c|} \hline  & X2 = A & X2 = B & X2 = C \\ \hline X1 = A & 1 [3] & 7 [3.5] & 2 [3.5] \\ \hline X1 = B & 5 [3] & 0 [3.5] & 5 [3.5] \\ \hline \end{tabular}

Et la statistique de test sans correction:

\chi_{obs} ^2 = \frac{(1 - 3) ^2}{3} + \frac{(5 - 3) ^2}{3} + \frac{(7 - 3.5) ^2}{3.5} + \frac{(0 - 3.5) ^2}{3.5} + \frac{(2 - 3.5) ^2}{3.5} +\frac{(5 - 3.5) ^2}{3.5} = 10.95238

Sa valeur après application de la correction de Yates:

\chi_{Yates} ^2 = \frac{(|1 - 3| - 0.5) ^2}{3} + \frac{(|5 - 3| - 0.5) ^2}{3} + \frac{(|7 - 3.5| - 0.5) ^2}{3.5} + \frac{(|0 - 3.5| - 0.5) ^2}{3.5} + \frac{(|2 - 3.5| - 0.5) ^2}{3.5} +\frac{(|5 - 3.5| - 0.5) ^2}{3.5}

= 7.214286

On obtient alors:

p = 1 - \frac{\gamma(\frac{2}{2},\frac{7.214286}{2})}{\Gamma(\frac{2}{2})} = 1 - \frac{0.9728708}{1} = 1 - 0.9728708 = 0.02712924 < 5 \%

Le test du \chi ^2 par approche MCMC

On s’intéresse désormais au calcul du \chi ^2 d’indépendance par approche MCMC. Ci-dessous, le tableau obtenu si l’on croise les variables X ^1 et X ^2,

\begin{tabular}{|l|c|c|c|} \hline  & X2 = A & X2 = B & X2 = C \\ \hline X1 = A & 1 [3] & 7 [3.5] & 2 [3.5] \\ \hline X1 = B & 5 [3] & 0 [3.5] & 5 [3.5] \\ \hline \end{tabular}

Et de statistique de test: \chi_{obs} ^2 = 10.95238

On va rééchantillonner 2000 fois avec remise et pour chaque tirage E_b = ((X ^1) ^b, (X ^2) ^b) on vérifiera que l’on obtient un tableau croisé dynamique associé de taille 3 \times 2. Lorsque ce n’est pas le cas on supprimera le tirage et on procédera à un nouveau jusqu’à ce que la condition soit remplie.

On obtient alors la distribution suivante pour le vecteur \chi_{MCMC} ^2,

add

On peut déduire du graphe ci-dessus que:

\sharp \lbrace \chi_b ^2 \geq 10.95238 \rbrace = 0 \Rightarrow p_{MCMC} = \frac{1 + 0}{2001} = 0.0004997501 < 5 \%

\bullet Application sous R:

Le test d’adéquation du \chi ^2

Soit l’exemple suivant:

X = c(3.1101,4.1008,4.7876,7.0677,6.0858,4.9309,4.0449,3.0101,5.9495,6.8729,
1.0898,1.9868,2.9853,10.0080,8.9052,8.0411,2.0826,1.0536,9.0649,10.0826)

Le logiciel R ne dispose pas de fonction permettant d’appliquer directement le test d’adéquation du \chi ^2 de Pearson. Par conséquent, on proposera la fonction suivante:

Chi2_homo_adeq = function(TAB) {
# Application du test d’adéquation et d’homogénéité du Chi2 de Pearson
# Paramètre: la table contenant pour,
# – le test d’adéquation: en première ligne les données observées X ventilées selon les intervalles fixés et en seconde ligne les effectifs attendues dans le cadre de la loi fixée et pour ces mêmes intervalles ;
# – le test d’homogénéité: en première ligne les données observées de X1 ventilées selon les intervalles fixés et en seconde ligne ceux de X2 selon ces mêmes intervalles.
# Sortie: la statistique de test et sa p-valeur associée.
# Construction de la table des contributions au Chi2.
Contrib = (TAB[1,] – TAB[2,])^2/TAB[2,]
# Calcul de la statistique de test
Stat = sum(Contrib)
# Calcul des degrés de liberté
ddl = dim(TAB)[2] – 1
Resultat = data.frame(Statistique = Stat, p_valeur = 1 – pchisq(sum(Contrib),ddl,lower.tail = TRUE))
return(Resultat)
}

On lance le test du \chi ^2 d’adéquation afin de savoir si X suit une loi normale de paramètres (\mu_X = 5.261505, \sigma_X ^2 = 8.541427). On compose d’abords le tableau des effectifs observés de X et attendus selon le découpage suivant: colonne 1 = [0-2], colonne 2 = ]2-4], colonne 3 = ]4-6], colonne 4 = ]6-8], colonne 5 = ]8-10], colonne 6 = ]10-12],

T = as.table(rbind(c(3,4,5,3,3,2),c(1.9262176,4.0156696,5.3348812,4.5175974,2.43580677,0.8381492)))

On applique le test de la manière suivante:

Chi2_homo_adeq(TAB=T)

L’élément à insérer est le tableau T contenant les effectifs de X ventilés en fonction des intervalles fixés au préalable pour la première ligne. Et pour la seconde, ceux des effectifs théoriques calculés pour ces mêmes intervalles en fonction de la loi de distribution à laquelle on veut se comparer.

On obtient alors les résultats suivants:

add

On vérifie:

– La statistique de test du \chi ^2: « Statistique = 2.870726 » , qui est la même que celle obtenue lors des calculs manuels (cf section « Exemple ») ;

– La p-valeur: « p_valeur = 0.71990878 » , qui est la même que celle obtenue lors des calculs manuels (cf section « Exemple »).

Le test d’homogénéité du \chi ^2

Soit l’exemple suivant:

X1 = c(3.1101,4.1008,4.7876,7.0677,6.0858,4.9309,4.0449,3.0101,5.9495,6.8729,
1.0898,1.9868,2.9853,10.0080,8.9052,8.0411,2.0826,1.0536,9.0649,10.0826)

X2 = c(0.8970,2.0949,3.0307,4.0135,5.0515,6.0261,
6.9059,7.9838,8.9854,9.9468,11.1682,11.9124,
12.9516,13.9288,14.8826,15.9808,16.9726,18.1530,18.9751,19.8936)

Le logiciel R ne dispose pas de fonction permettant d’appliquer directement le test d’homogénéité du \chi ^2 de Pearson. Par conséquent, on proposera la fonction suivante:

Chi2_homo_adeq = function(TAB) {
# Application du test d’adéquation et d’homogénéité du Chi2 de Pearson
# Paramètre: la table contenant pour,
# – le test d’adéquation: en première ligne les données observées X ventilées selon les intervalles fixés et en seconde ligne les effectifs attendues dans le cadre de la loi fixée et pour ces mêmes intervalles ;
# – le test d’homogénéité: en première ligne les données observées de X1 ventilées selon les intervalles fixés et en seconde ligne ceux de X2 selon ces mêmes intervalles.
# Sortie: la statistique de test et sa p-valeur associée.
# Construction de la table des contributions au Chi2.
Contrib = (TAB[1,] – TAB[2,])^2/TAB[2,]
# Calcul de la statistique de test
Stat = sum(Contrib)
# Calcul des degrés de liberté
ddl = dim(TAB)[2] – 1
Resultat = data.frame(Statistique = Stat, p_valeur = 1 – pchisq(sum(Contrib),ddl,lower.tail = TRUE))
return(Resultat)
}

On lance le test du \chi ^2 d’homogénéité afin de savoir si X ^1 et X ^2 suivent la même loi de distribution. On compose d’abords le tableau des effectifs ventilés de X ^1 et X ^2 selon le découpage suivant: colonne 1 = [0-5], colonne 2 = ]5-10], colonne 3 = ]10-15], colonne  4 = ]15-20],

T = as.table(rbind(c(11,7,2,0),c(4,6,5,5)))

On applique le test de la manière suivante:

Chi2_homo_adeq(TAB=T)

L’élément à insérer est le tableau T contenant les effectifs de X ^1 ventilés en fonction des intervalles fixés au préalable pour la première ligne. Et pour la seconde, ceux de X ^2 pour ces mêmes intervalles.

On obtient alors les résultats suivants:

add

On vérifie:

– La statistique de test du \chi ^2: « Statistique = 19.21667 » , qui est la même que celle obtenue lors des calculs manuels (cf section « Exemple ») ;

– La p-valeur: « p_valeur = 0.000246596 » , qui est la même que celle obtenue lors des calculs manuels (cf section « Exemple »).

Le test d’indépendance du \chi ^2

Soit l’exemple suivant:

X1 = c(rep(‘B’,7),rep(‘A’,10),rep(‘B’,3))
X2 = c(rep(‘A’,3),rep(‘C’,2),rep(‘A’,3),rep(‘B’,7),rep(‘C’,5))

Package et fonction R: https://www.rdocumentation.org/packages/stats/versions/3.6.0/topics/chisq.test

La fonction chisq.test du package stats permet d’appliquer les différentes versions du test du \chi ^2 de Pearson. Le package se charge automatiquement lors du lancement de R.

On lance le test du \chi ^2 d’indépendance afin de savoir si X ^1 et X ^2 sont liées. On applique le test de la manière suivante:

chisq.test(x=table(X1,X2),simulate.p.value=FALSE,correct=FALSE)

Parmi les éléments à insérer les plus importants il faut relever:

– Le tableau sur lequel on veut travailler : x=table(X1,X2) ;

– Le fait que l’on veut la p-valeur sans simulation MCMC: simulate.p.value = FALSE ;

– Le fait que l’on ne veut pas appliquer la correction de Yates: correct = FALSE.

On obtient alors les résultats suivants:

add

On vérifie:

– Les données utilisées: « data: table(X1,X2) » ;

– La statistique de test du \chi ^2: « X-squared = 10.952 » , qui est la même que celle obtenue lors des calculs manuels (cf section « Exemple ») ;

– La p-valeur: « p-value = 0.004185 » , qui est la même que celle obtenue lors des calculs manuels (cf section « Exemple ») ;

– La présence ou non du warning en rouge permettant de savoir si la configuration des données répond aux hypothèses d’utilisation du test du \chi ^2 de Pearson.

\bullet Application sous SAS:

Le test d’adéquation du \chi ^2

Soit l’exemple suivant:

data E;
input ;
cards;
3.1101
4.1008
4.7876
.0677
6.0858
4.9309
4.0449
3.0101
5.9495
6.8729
1.0898
1.9868
2.9853
10.0080
8.9052
8.0411
2.0826
1.0536
9.0649
10.0826
;
run;

Le logiciel SAS n’offre pas de procédure permettant d’appliquer directement le test  d’adéquation du \chi ^2. Par conséquent, on proposera la macro suivante:

%macro chi2_homog_adeq(table=);
/* Application du test d’adéquation et d’homogénéité du Chi2 de Pearson
Paramètre: la table contenant pour,
– le test d’adéquation: en première ligne les données observées X ventilées selon les intervalles fixés (et codés: I1, I2, etc) et en seconde ligne les effectifs attendues dans le cadre de la loi fixée et pour ces mêmes intervalles ;
– le test d’homogénéité: en première ligne les données observées de X1 ventilées selon les intervalles fixés et en seconde ligne ceux de X2 selon ces mêmes intervalles.
Sortie: la statistique de test et sa p-valeur associée. */
/* Options pour éviter de saturer la log */
options nonotes spool;
/* Nombre d’intervalles fixés */
proc contents data = &table. out = intervalles noprint;
run;
proc sql noprint;
select count(*) into: nb_I from intervalles
quit;
/* Initialisation de la table des contributions au Chi2 */
data contrib;
run;
/* Initialisation de la statistique de test du Chi2 */
%let chi2 = 0;
%do i = 1 %to &nb_I.;
/* On retient l’effectif en première ligne pour l’intervalle I */
data _null_;
set &table.;
if _n_ = 1;
call symput(« obs »,I&i.);
run;
/* On retient l’effectif en seconde ligne pour l’intervalle I */
data _null_;
set &table.;
if _n_ = 2;
call symput(« theo »,I&i.);
run;
/* On calcul la contribution au Chi2 correspondant à l’intervalle I */
data contrib_add;
I&i. = (&obs.-&theo.)**2/&theo.;
run;
/* On fusionne le nouveau résultat à ceux déjà calculés */
data contrib;
merge contrib contrib_add;
run;
/* On met à jour le calcul de la statistique de test du Chi2 avec l’itération en cours */
%let chi2 = %sysevalf(&chi2. + (&obs.-&theo.)**2/&theo.);
%end;
/* Calcul des degrés de liberté */
%let ddl = %sysevalf(&nb_I. – 1);
/* Création de la table des résultats */
data result;
Statistique = &chi2.;
P_valeur = 1-Probchi(&chi2.,&ddl.);
run;
/* Suppression des tables sans intérêt */
proc datasets noprint lib = work;
delete intervalles contrib_add;
run;
/* Reset des options d’afficahe */
options notes nospool;
%mend;

On lance le test du \chi ^2 d’adéquation afin de savoir si X suit une loi normale de paramètres (\mu_X = 5.261505, \sigma_X ^2 = 8.541427). On compose d’abords le tableau des effectifs observés de X et attendus selon le découpage suivant: colonne I1 = [0-2], colonne I2 = ]2-4], colonne I3 = ]4-6], colonne I4 = ]6-8], colonne I5 = ]8-10], colonne I6 = ]10-12],

data T;
input I1 I2 I3 I4 I5 I6;
cards;
3 4 5 3 3 2
1.9262176 4.0156696 5.3348812 4.5175974 2.43580677 0.8381492
;
run;

On applique le test de la manière suivante:

%chi2_homog_adeq(table=T);

Le seul paramètre à insérer est le nom de la table contenant les effectifs observés et théoriques ventilés selon les intervalles d’intérêt: table = T.

On obtient alors les résultats suivants dans la table générée en fin de procédure:

add

La première table présente les contributions aux \chi ^2 selon les différents intervalles retenus. Dans la seconde table renvoyée par la macro, on vérifie:

– La statistique de test: « Statistique = 2.8707263511 » , qui est la même que celle obtenue lors des calculs manuels (cf section « Exemple ») ;

– La p-valeur: « P_valeur= 0.7199078369 » , qui est la même que celle obtenue lors des calculs manuels (cf section « Exemple »).

Le test d’homogénéité du \chi ^2

Soit l’exemple suivant:

data E;
input X1 X2;
cards;
3.1101 0.8970
4.1008 2.0949
4.7876 3.0307
7.0677 4.0135
6.0858 5.0515
4.9309 6.0261
4.0449 6.9059
3.0101 7.9838
5.9495 8.9854
6.8729 9.9468
1.0898 11.1682
1.9868 11.9124
2.9853 12.9516
10.0080 13.9288
8.9052 14.8826
8.0411 15.9808
2.0826 16.9726
1.0536 18.1530
9.0649 18.9751
10.0826 19.8936
;
run;

Le logiciel SAS n’offre pas de procédure permettant d’appliquer directement le test  d’homogénéité du \chi ^2. Par conséquent, on proposera la macro suivante:

%macro chi2_homog_adeq(table=);
/* Application du test d’adéquation et d’homogénéité du Chi2 de Pearson
Paramètre: la table contenant pour,
– le test d’adéquation: en première ligne les données observées X ventilées selon les intervalles fixés (et codés: I1, I2, etc) et en seconde ligne les effectifs attendues dans le cadre de la loi fixée et pour ces mêmes intervalles ;
– le test d’homogénéité: en première ligne les données observées de X1 ventilées selon les intervalles fixés et en seconde ligne ceux de X2 selon ces mêmes intervalles.
Sortie: la statistique de test et sa p-valeur associée. */
/* Options pour éviter de saturer la log */
options nonotes spool;
/* Nombre d’intervalles fixés */
proc contents data = &table. out = intervalles noprint;
run;
proc sql noprint;
select count(*) into: nb_I from intervalles
quit;
/* Initialisation de la table des contributions au Chi2 */
data contrib;
run;
/* Initialisation de la statistique de test du Chi2 */
%let chi2 = 0;
%do i = 1 %to &nb_I.;
/* On retient l’effectif en première ligne pour l’intervalle I */
data _null_;
set &table.;
if _n_ = 1;
call symput(« obs »,I&i.);
run;
/* On retient l’effectif en seconde ligne pour l’intervalle I */
data _null_;
set &table.;
if _n_ = 2;
call symput(« theo »,I&i.);
run;
/* On calcul la contribution au Chi2 correspondant à l’intervalle I */
data contrib_add;
I&i. = (&obs.-&theo.)**2/&theo.;
run;
/* On fusionne le nouveau résultat à ceux déjà calculés */
data contrib;
merge contrib contrib_add;
run;
/* On met à jour le calcul de la statistique de test du Chi2 avec l’itération en cours */
%let chi2 = %sysevalf(&chi2. + (&obs.-&theo.)**2/&theo.);
%end;
/* Calcul des degrés de liberté */
%let ddl = %sysevalf(&nb_I. – 1);
/* Création de la table des résultats */
data result;
Statistique = &chi2.;
P_valeur = 1-Probchi(&chi2.,&ddl.);
run;
/* Suppression des tables sans intérêt */
proc datasets noprint lib = work;
delete intervalles contrib_add;
run;
/* Reset des options d’affichage */
options notes nospool;
%mend;

On lance le test du \chi ^2 d’homogénéité afin de savoir si X ^1 et X ^2 suivent la même loi de distribution. On compose d’abords le tableau des effectifs ventilés de X ^1 et X ^2 selon le découpage suivant: colonne I1 = [0-5], colonne I2 = ]5-10], colonne I3 = ]10-15], colonne I4 = ]15-20],

data T;
input I1 I2 I3 I4;
cards;
11 7 2 0
4 6 5 5
;
run;

On applique le test de la manière suivante:

%chi2_homog_adeq(table=T);

Le seul paramètre à insérer est le nom de la table contenant les effectifs observés et théoriques ventilés selon les intervalles d’intérêt: table = T.

On obtient alors les résultats suivants dans la table générée en fin de procédure:

add

La première table présente les contributions aux \chi ^2 selon les différents intervalles retenus. Dans la seconde table renvoyée par la macro, on vérifie:

– La statistique de test: « Statistique = 19.21666666667 » , qui est la même que celle obtenue lors des calculs manuels (cf section « Exemple ») ;

– La p-valeur: « P_valeur= 0.000246596 » , qui est la même que celle obtenue lors des calculs manuels (cf section « Exemple »).

Le test d’indépendance du \chi ^2

Soit l’exemple suivant:

data E;
input X1 $1. X2 $2.;
cards;
B A
B A
B A
B C
B C
B A
B A
A A
A B
A B
A B
A B
A B
A B
A B
A C
A C
B C
B C
B C
;
run;

Procédure SAS : https://support.sas.com/documentation/cdl/en/statug/63962/HTML/default/viewer.htm#freq_toc.htm

On lance le test d’indépendance du \chi ^2 afin de savoir si X ^1 et X ^2 sont liées. On procède de la manière suivante:

proc freq data = E;
tables X1 * X2 / chisq;
ods exclude CrossTabFreqs;
run;

Parmi les éléments à insérer les plus importants il faut relever:

– La table contenant nos données: data = E ;

– Les deux variables aléatoires que l’on souhaite croiser et sur lesquelles on souhaite appliquer le test du \chi ^2: tables X1*X2 / chisq ;

– On aurait pu appliquer l’approche par méthode MCMC en rajoutant la ligne: exact chisq / mc n = ;

– Dans le cas d’un tableau de taille 2 \times 2, la correction de continuité de Yates est automatiquement calculée ;

– L’ods output est utilisé afin de filtrer les résultats et n’afficher que ceux qui nous intéressent.

On obtient alors les résultats suivants:

add

La ligne Chi-Square correspond au test auquel on s’intéresse. On vérifie:

– Dans la colonne « Valeur » , la statistique de test: « 10.9524  » , qui est la même que celle obtenue lors des calculs manuels (cf section « Exemple ») ;

– Dans la colonne « Prob » , la p-valeur : « 0.0042 » , qui est la même celle obtenue lors des calculs manuels (cf section « Exemple »).

\bullet Bibliographie:

– Karl Pearson’s Theoretical Errors and the Advances They Inspired de Stephen M. Stigler

– Contingency table involving small numbers and the \chi ^2 test de Frank Yates

– A simplified Monte-Carlo significance test procédure de Adery Hope

– Statistique, dictionnaire encyclopédique de Yadolah Dodge

– Data mining et statistique décisionnelle, l’intelligence des données de Stéphane Tufféry

– C’est quoi la correction de continuité de Yates ? de J. Lobry