Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment effectuer le test de McNemar en Python



Le test de McNemar est utilisé pour déterminer s’il existe une différence statistiquement significative dans les proportions entre les données appariées.

Ce didacticiel explique comment effectuer le test de McNemar en Python.

Exemple : le test de McNemar en Python

Supposons que les chercheurs souhaitent savoir si une certaine vidéo marketing peut changer l’opinion des gens sur une loi particulière. Ils interrogent 100 personnes pour savoir si elles soutiennent ou non la loi. Ensuite, ils montrent la vidéo marketing aux 100 personnes et les interrogent à nouveau une fois la vidéo terminée.

Le tableau suivant montre le nombre total de personnes qui ont soutenu la loi avant et après avoir visionné la vidéo :

Vidéo avant le marketing
Vidéo après le marketing Soutien Ne supporte pas
Soutien 30 40
Ne supporte pas 12 18

Pour déterminer s’il y avait une différence statistiquement significative dans la proportion de personnes qui soutenaient la loi avant et après le visionnage de la vidéo, nous pouvons effectuer le test de McNemar.

Étape 1 : Créez les données.

Tout d’abord, nous allons créer un tableau pour contenir nos données :

data = [[30, 40],
         [12, 18]]

Étape 2 : Effectuer le test de McNemar

Ensuite, nous pouvons utiliser la fonction mcnemar() de la bibliothèque Python statsmodels, qui utilise la syntaxe suivante :

mcnemar(tableau, exact=Vrai, correction=Vrai)

où:

  • table : Une table de contingence carrée
  • exact : si exact est vrai, alors la distribution binomiale sera utilisée. Si exact est faux, alors la distribution du Chi carré sera utilisée
  • correction : si vrai, une correction de continuité est utilisée. En règle générale, cette correction est généralement appliquée lorsque le nombre de cellules du tableau est inférieur à 5.

Le code suivant montre comment utiliser cette fonction dans notre exemple spécifique :

from statsmodels.stats.contingency_tables import mcnemar

#McNemar's Test with no continuity correction
print(mcnemar(data, exact=False))

pvalue      0.000181
statistic   14.019

#McNemar's Test with continuity correction
print(mcnemar(data, exact=False, correction=False))

pvalue      0.000103
statistic   15.077

Dans les deux cas – que l’on applique ou non la correction de continuité – la valeur p du test est inférieure à 0,05.

Cela signifie que dans les deux cas, nous rejetterions l’hypothèse nulle et conclurions que la proportion de personnes qui soutenaient la loi avant et après avoir regardé la vidéo marketing était statistiquement différente.

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *