Accéder au contenu principal

Test du chi carré dans R : Un guide complet

Apprenez à créer un tableau de contingence et à effectuer des tests du khi-deux dans R à l'aide de la fonction chisq.test(). Découvrez des applications pratiques et interprétez les résultats en toute confiance.
Actualisé 15 janv. 2025  · 8 min de lecture

Comprendre comment analyser et interpréter les données est une compétence inestimable pour les professionnels des données. Il existe de nombreux tests statistiques différents qui sont utilisés pour différentes raisons. Le test du chi-carré est un test courant qui est utilisé dans un contexte spécifique : lorsque vous devez déterminer des associations entre des variables catégorielles. C'est une chose courante que les chercheurs doivent savoir, et c'est pourquoi le test du chi carré est l'un des tests statistiques les plus utilisés.

Ce tutoriel présente le test du chi-carré, ses différents types et les étapes à suivre pour l'effectuer à l'aide du langage de programmation R. À la fin de ce guide, vous aurez acquis les connaissances et les compétences nécessaires pour appliquer en toute confiance le test du chi-carré à vos propres données et en interpréter les résultats.

Si vous ne connaissez pas le langage de programmation R, vous pouvez consulter le cursus professionnel Data Analyst with R, qui s'adresse aux débutants, afin de vous familiariser avec le langage à l'aide d'exemples pratiques d'analyse de données.

Principales étapes : Comment effectuer un test du khi-deux dans R

Pour effectuer un test du chi-carré dans R, procédez comme suit :

  • Étape 1: Préparez vos données sous la forme d'un tableau de contingence.

  • Étape 2: Utilisez la fonction chisq.test() pour appliquer le test du chi-carré.

Voici un exemple rapide de démonstration à l'aide d'un échantillon de données :

# Step 1: Creating a contingency table
data <- matrix(c(10, 20, 30, 40), nrow = 2)

# Step 2: Applying the chi-square test function
result <- chisq.test(data)

# Viewing the result
print(result)

Cet extrait de code crée un tableau de contingence 2x2 et effectue le test du chi-carré. Le résultat indiquera la statistique du test, les degrés de liberté et la valeur p.

Qu'est-ce qu'un test du chi carré ?

Le test du chi-carré est un test statistique utilisé pour déterminer s'il existe une association significative entre des variables catégorielles. Elle compare les fréquences observées des occurrences dans les différentes catégories avec les fréquences attendues s'il n'y avait pas d'association entre les variables.

Types de tests chi-carré

Il existe deux types principaux de tests du chi-carré :

  1. Test d'indépendance du chi carré : Il permet de déterminer si les variables sont indépendantes ou s'il existe une relation entre elles. Par exemple, vous pourriez vouloir savoir si le sexe influe sur les préférences électorales.
  2. Test du chi carré de l'adéquation : Ce test permet de vérifier si les données de l'échantillon correspondent à une distribution de population. Par exemple, vous pourriez vouloir déterminer si un dé est équitable en comparant la fréquence observée de chaque face à la fréquence attendue si le dé était équitable.

Hypothèses du test du chi-carré

Pour garantir la validité du test du chi-carré, certaines hypothèses doivent être respectées :

  • Les données doivent être présentées sous la forme de fréquences ou de nombres de cas.
  • Les catégories doivent s'exclure mutuellement.
  • Pour le test d'indépendance du chi-carré, la fréquence attendue dans chaque catégorie doit être d'au moins 5.
  • Le test d'adéquation attend une fréquence d'au moins 1, et pas plus de 20 % des fréquences attendues sont inférieures à 5.

Applications pratiques des tests chi-carré

Les tests du khi-deux sont largement utilisés dans le monde universitaire et dans l'industrie, en particulier pour tester des hypothèses sur l'indépendance de variables catégorielles. Voici quelques-unes de ces applications pratiques :

  • Étude de marché : Parmi les applications possibles, citons l'analyse des préférences des clients pour un produit en fonction des différents groupes d'âge et niveaux de revenus, ou la détermination de l'efficacité des différentes campagnes de marketing en fonction des segments démographiques.
  • Recherche médicale : Les cas d'utilisation les plus courants sont l'étude de l'association entre les facteurs liés au mode de vie (par exemple, le tabagisme, l'exercice physique) et l'incidence des maladies (par exemple, le cancer du poumon, les maladies cardiaques) ou l'évaluation des taux de guérison des différents groupes de traitement dans le cadre d'essais cliniques.
  • Contrôle de la qualité : Il est couramment utilisé pour déterminer si les défauts des produits sont indépendants du processus de fabrication ou de lignes de production spécifiques et pour comparer la qualité des produits provenant de différents fournisseurs afin de déterminer s'il existe une différence significative dans les taux de défauts.
  • Éducation: Les tests sont souvent utilisés pour déterminer s'il existe une différence significative dans les taux de réussite entre les élèves de différentes écoles ou méthodes d'enseignement et pour évaluer si l'introduction d'un nouveau programme d'études améliore les performances des élèves dans toutes les matières.

Il convient de noter qu'il s'agit là de quelques-unes des nombreuses applications dans les universités et l'industrie et qu'elles peuvent être étendues à d'autres domaines et champs d'activité.

Réalisation d'un test du khi-deux dans R : Un exemple

La meilleure façon d'apprendre à effectuer des tests du khi-deux est d'utiliser un exemple dans lequel nous appliquons le test à un ensemble de données. Nous utiliserons le jeu de données Niveaux d'anémie au Nigeria, qui peut être téléchargé sur Kaggle. Les données proviennent des enquêtes démographiques et de santé du Nigéria (NDHS) de 2018. Elle étudie l'impact de l'âge des mères et des facteurs socio-économiques sur les niveaux d'anémie chez les enfants âgés de 0 à 59 mois dans les 36 États du Nigeria et le Territoire de la capitale fédérale. 

Chargeons l'ensemble de données dans R et examinons un échantillon pour mieux comprendre les données. Pour lire les fichiers CSV dans R, vous devez installer un paquetage appelé readr.

# Load the necessary libraries
install.packages('readr')
library(readr)

# Load the dataset from the CSV file
dataset <- read_csv("children anemia.csv")

# Display the first few rows of the dataset
head(dataset)

# Rename a column
colnames(dataset)[colnames(dataset) == "Anemia level...8"] <- "Anemia level"

# Display the column names
colnames(dataset)

En plus d'un échantillon de l'ensemble de données, nous verrons les colonnes de l'ensemble de données ci-dessous :

Colonnes d'un ensemble de données en RColonnes de l'ensemble de données. Image par l'auteur.

Parmi elles, nous choisirons ces deux colonnes pour évaluer s'il existe une relation entre elles.

  • Niveau d'études le plus élevé : Cette colonne classe le niveau d'éducation de la mère en "Pas d'éducation", "Primaire", "Secondaire" et "Supérieur".

  • Niveau d'anémie : Cette colonne indique le niveau d'anémie de l'enfant, par exemple "Modéré", "Sévère" ou "Pas d'anémie".

Étape 1 : Création d'un tableau de contingence

Un tableau de contingence, également appelé tableau croisé, montre comment les valeurs de deux ou plusieurs variables catégorielles sont réparties dans leurs catégories respectives. 

Nous allons sélectionner les deux tableaux de l'ensemble de données et les convertir au format requis pour les tableaux de contingence. Pour ces opérations, nous utiliserons un paquetage couramment utilisé, appelé dplyr.

# Install and load the package
install.packages('dplyr')

library(dplyr)

# Select the columns of interest
selected_data <- dataset %>% select(Highest educational level, Anemia level)

# Create a contingency table for Highest educational level and Anemia level
contingency_table <- table(selected_data$Highest educational level, selected_data$Anemia level)

# View the contingency table
print(contingency_table)

Le tableau de contingence qui en résulte se présente comme suit :

Tableau de contingence en R

Tableau de contingence. Image par l'auteur.

Étape 2 : Application de la fonction de test du chi-carré

Puisque nous disposons de l'ensemble des données dans le format de tableau de contingence souhaité, il nous suffit d'appliquer la fonction chisq.test(). Il n'est pas nécessaire de charger des bibliothèques pour appeler cette fonction, car elle est disponible dans le paquetage de base de R.

# Perform chi-square test
chi_square_test <- chisq.test(contingency_table)

# View the results
print(chi_square_test)

Le résultat sera le suivant :

Le test chi-carré de Pearson donne les résultats suivants : R

Résultats du test chi-carré de Pearson. Image par l'auteur.

C'est tout ! Nous avons effectué le test du chi-carré en deux étapes simples. Ensuite, comment interpréter les résultats ?

Formuler des hypothèses et interpréter les résultats

Les hypothèses énoncent clairement ce que nous testons et établissent un cadre pour l'interprétation des résultats. En termes plus simples, l'hypothèse que nous formulons nous donne une question claire à laquelle nous devons répondre, et le test du chi-deux nous aide à déterminer si les données observées soutiennent ou réfutent l'affirmation.

Hypothèses pour le test du chi-carré

Lorsque vous effectuez un test du chi-carré, vous établissez généralement deux hypothèses :

  • Hypothèse nulle (H0) : L'hypothèse nulle stipule qu'il n'y a pas d'association entre les deux variables catégorielles testées. Elle suppose que toute différence observée dans les données est due au hasard plutôt qu'à une véritable relation.
  • Hypothèse alternative (H1) : L'hypothèse alternative affirme qu'il existe une association significative entre les deux variables. Elle suggère que les différences observées ne sont pas dues au hasard et qu'il existe une relation entre les variables.

En appliquant les concepts d'hypothèse nulle et d'hypothèse alternative aux variables sur lesquelles nous avons effectué le test du khi-deux, nous pouvons formuler l'hypothèse comme suit :

  • Hypothèse nulle (H0) : L'hypothèse nulle est qu'il n'y a pas d'association entre le niveau d'éducation le plus élevé de la mère et le niveau d'anémie de l'enfant. Cela signifie que nous supposons que la probabilité qu'un enfant souffre d'anémie est indépendante du niveau d'éducation de la mère.
  • Hypothèse alternative (H1) : L'hypothèse alternative est qu'il existe une association entre le niveau d'éducation le plus élevé de la mère et le niveau d'anémie de l'enfant. Cela signifie que le niveau d'éducation de la mère influe sur la probabilité que l'enfant souffre d'anémie.

Interprétation des résultats du test du chi-carré

Maintenant que nous avons formulé une hypothèse, nous pouvons interpréter les résultats dans le contexte de l'hypothèse :

  • Statistique du chi-carré (X-carré) : La statistique du test du chi-carré est 142.86. Cette valeur mesure l'écart entre les fréquences observées dans le tableau de contingence et les fréquences auxquelles on s'attendrait s'il n'y avait pas d'association entre les variables.

  • Degrés de liberté (df) : Le degré de liberté de ce test est 9. Elle est calculée comme suit : (nombre de lignes - 1) * (nombre de colonnes - 1).

  • Valeur P : La valeur p est inférieure à 2.2e-16, ce qui est extrêmement faible. Cette valeur p indique la probabilité d'observer une statistique du chi-carré aussi extrême que, ou plus extrême que, 142.86 si l'hypothèse nulle était vraie.

Nous rejetons l'hypothèse nulle car la valeur p est beaucoup plus petite que les niveaux de signification courants (par exemple, 0,05, 0,01 ou même 0,001). Cela prouve bien qu'il existe une association significative entre le niveau d'éducation de la mère et l'état d'anémie de l'enfant. En d'autres termes, les résultats du test du chi-deux indiquent que la probabilité qu'un enfant souffre d'anémie est significativement associée au niveau d'éducation de la mère.

Analyse complémentaire : Accès aux valeurs de chisq.test()

Au-delà des tests d'hypothèse, nous pouvons récupérer certaines valeurs de l'objet renvoyé par la fonction chisq.test():

Chiffres observés

Ces chiffres représentent le nombre réel d'enfants présentant différents niveaux d'anémie en fonction du niveau d'éducation de la mère. Les chiffres observés peuvent être récupérés à partir du code suivant :

# Observed counts
observed_counts <- chi_square_test$observed

print(observed_counts)

Le résultat est le suivant :

Chiffres observés.

Chiffres observés. Image par l'auteur.

Nombre attendu

Ces chiffres sont calculés en supposant qu'il n'y a pas d'association entre le niveau d'éducation de la mère et l'état d'anémie de l'enfant. Les nombres attendus peuvent être récupérés à partir du code suivant :

# Expected counts
expected_counts <- chi_square_test$expected
print(round(expected_counts, 2))

Le résultat est le suivant :

Chiffres attendus.

Chiffres attendus. Image par l'auteur.

Résidus de Pearson

Ces résidus permettent d'identifier les écarts les plus importants entre les effectifs observés et les effectifs attendus, en indiquant les cellules qui contribuent le plus à la statistique du khi-deux. Les résidus de Pearson peuvent être récupérés à partir du code suivant :

# Pearson residuals
pearson_residuals <- chi_square_test$residuals
print(round(pearson_residuals, 2))

Le résultat est le suivant :

Sortie des résidus.

Sortie des résidus. Image par l'auteur.

Essayons de comprendre ce que signifient ces chiffres résiduels :

  • Résidus positifs : Des résidus positifs indiquent que le nombre observé est plus élevé que prévu. Par exemple, un résidu de 5.96 pour "Pas anémique" dans le groupe d'éducation "supérieure" signifie qu'il y a significativement plus d'enfants qui ne sont pas anémiques que prévu parmi les mères ayant un niveau d'éducation supérieur.

  • Résidus négatifs : Des résidus négatifs indiquent que le nombre observé est plus faible que prévu. Par exemple, un résidu de -5.74 pour l'anémie "modérée" dans le groupe d'éducation "supérieure" suggère qu'il y a significativement moins d'enfants modérément anémiques que prévu parmi les mères ayant un niveau d'éducation supérieur.

  • Des résidus importants : Des résidus positifs ou négatifs importants suggèrent un écart significatif par rapport à ce qui était attendu. Ces cellules contribuent le plus à la statistique du chi-carré. Par exemple, l'important résidu positif pour "Pas anémique" dans le groupe d'éducation "supérieure" et l'important résidu négatif pour l'anémie "modérée" dans le même groupe indiquent de fortes divergences dans les niveaux d'anémie des enfants en fonction du niveau d'éducation de la mère.

  • Petits résidus : Des résidus faibles (proches de 0) suggèrent que les nombres observés sont proches des nombres attendus, ce qui indique une déviation plus faible. Par exemple, les résidus pour l'éducation "primaire" à travers les niveaux d'anémie sont relativement plus petits, ce qui indique que les comptes observés et attendus sont plus proches pour ce groupe.

Diagramme de contribution

Sur la base des valeurs extraites ci-dessus, la contribution de chaque cellule à la statistique du chi-carré peut être calculée par le code ci-dessous et convertie en pourcentage :

# Calculate contribution to chi-square statistic
contributions <- (observed_counts - expected_counts)^2 / expected_counts

# Calculate percentage contributions
total_chi_square <- chi_square_test$statistic
percentage_contributions <- 100 * contributions / total_chi_square

# Print percentage contributions
print("Percentage Contributions:")
print(round(percentage_contributions, 2))

La sortie que nous verrons est la suivante :

Pourcentage de contribution.Pourcentage de contribution. Image par l'auteur.

 

La contribution calculée peut être visualisée sous forme de carte thermique. Pour ce faire, nous utiliserons un paquet appelé pheatmap, après l'avoir installé et chargé.

# Install and load heatmap package
install.packages("pheatmap")
library(heatmap)

# Create heatmap for percentage contributions
pheatmap(percentage_contributions,
        display_numbers = TRUE,
        cluster_rows = FALSE,
        cluster_cols = FALSE,
        main = "Percentage Contribution to Chi-Square Statistic")

Le résultat est le suivant :

Pourcentage de contribution à la carte thermique de la statistique du chi-carré dans RPourcentage de contribution à la carte thermique de la statistique du chi-carré. Image par l'auteur.

Une carte thermique comme celle ci-dessus avec les contributions peut être utile si vous décidez d'effectuer une analyse plus approfondie pour comprendre quel type d'association existe après que nous ayons découvert l'existence d'associations sur la base des résultats du test du khi-deux.

Conclusion

Ce didacticiel vous a présenté le test du chi-carré, ses différents types et les hypothèses sous-jacentes. Nous avons également appris à effectuer le test et à interpréter les résultats en R avec une visualisation supplémentaire à l'aide d'un exemple. 

Les tests du khi-deux sont couramment utilisés lors des tests d'hypothèses et, de manière générale, en statistique. Envisagez de suivre l'un de ces cours pour consolider votre compréhension de l'analyse des données et des statistiques à l'aide de R :

Maîtriser l'IA pour les entreprises

Apprenez à tirer une valeur commerciale de l'IA et des LLM.

Faire progresser ma carrière

Arunn Thevapalan's photo
Author
Arunn Thevapalan
LinkedIn
Twitter

En tant que data scientist senior, je conçois, développe et déploie des solutions d'apprentissage automatique à grande échelle pour aider les entreprises à prendre de meilleures décisions basées sur les données. En tant que rédacteur spécialisé dans la science des données, je partage mes apprentissages, mes conseils de carrière et des tutoriels pratiques approfondis.

Questions fréquemment posées

Quel est l'objectif d'un test du chi-carré ?

Le test du chi-carré est utilisé pour déterminer s'il existe une association significative entre deux variables catégorielles.

Le test du chi-carré peut-il être utilisé avec des échantillons de petite taille ?

Elle n'est généralement pas recommandée car le test nécessite une fréquence attendue d'au moins 5 dans chaque cellule pour produire des résultats fiables.

Qu'indiquent les résidus de Pearson dans un test du chi-carré ?

Les résidus de Pearson indiquent dans quelle mesure chaque cellule du tableau de contingence contribue à la statistique globale du khi-deux. Les valeurs positives indiquent que les comptes observés sont plus élevés que prévu, et les valeurs négatives indiquent qu'ils sont plus faibles.

Comment créer un tableau de contingence dans R pour le test du chi-deux ?

Utilisez les fonctions table() ou xtabs() pour créer un tableau de contingence à partir de vos variables catégorielles.

Que faire si mes données ne répondent pas aux hypothèses d'un test du chi-carré ?

Envisagez d'utiliser le test exact de Fisher, qui est plus approprié pour les échantillons de petite taille ou lorsque les fréquences attendues sont faibles.

Sujets

Apprenez avec DataCamp

cours

Hypothesis Testing in R

4 hr
24.5K
Learn how and when to use hypothesis testing in R, including t-tests, proportion tests, and chi-square tests.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Voir plusVoir plus