Quelle est la différence entre le test de McNemar et le test du chi carré, et comment savez-vous quand les utiliser?

30

J'ai essayé de lire sur différentes sources, mais je ne sais toujours pas quel test serait le plus approprié dans mon cas. Il y a trois questions différentes que je pose à propos de mon jeu de données:

  1. Les sujets sont testés pour des infections de X à différents moments. Je veux savoir si les proportions de positif pour X après sont liées à la proportion de positif pour X avant:

                 After   
               |no  |yes|
    Before|No  |1157|35 |
          |Yes |220 |13 |
    
    results of chi-squared test: 
    Chi^2 =  4.183     d.f. =  1     p =  0.04082 
    
    results of McNemar's test: 
    Chi^2 =  134.2     d.f. =  1     p =  4.901e-31
    

    D'après ma compréhension, comme les données sont des mesures répétées, je dois utiliser le test de McNemar, qui teste si la proportion de positifs pour X a changé.

    Mais mes questions semblent nécessiter le test du chi carré - tester si la proportion de positif pour X après est liée à la proportion de positif pour X avant.

    Je ne suis même pas sûr de bien comprendre la différence entre le test de McNemar et le chi-carré. Quel serait le bon test si ma question était: "La proportion de sujets infectés par X après est-elle différente d'avant?"

  2. Un cas similaire, mais où au lieu d'avant et après, je mesure deux infections différentes à un moment donné:

            Y   
          |no  |yes|
    X|No  |1157|35 |
     |Yes |220 |13 |
    

    Quel test serait ici si la question était "Est-ce que des proportions plus élevées d'une infection se rapportent à des proportions plus élevées de Y"?

  3. Si ma question était «L'infection Y au temps t2 est-elle liée à l'infection X au temps t1?», Quel test serait approprié?

                  Y at t2   
                |no  |yes|
    X at t1|No  |1157|35 |
           |Yes |220 |13 |
    

J'utilisais le test de McNemar dans tous ces cas, mais j'ai des doutes si c'est le bon test pour répondre à mes questions. J'utilise R. Puis-je utiliser un binôme à la glmplace? Serait-ce analogue au test du chi carré?

Anto
la source
1
Avez-vous essayé de lire les sujets de stats.stackexchange.com/questions/tagged/mcnemar-test ici sur le test Mcnemar?
ttnphns
Qu'entendez-vous par «relation entre deux probabilités»?
Michael M
@ttnphns Je les ai parcourus, mais je n'ai pas pu les reformuler à ma question. Après plus de réflexion, il semble que je puisse répondre à deux questions basées sur le Q1: le chi carré me dirait si la proportion de + ve X après est liée à la proportion de + ve X avant tandis que Mcnemar me dirait s'il y a eu un changement dans les proportions. Ai-je raison?
Anto
Vous ne pouvez pas utiliser ici un test d'indépendance standard car chaque personne est représentée par deux valeurs provoquant des échantillons non aléatoires. χ2
Michael M
Merci @MichaelMayer. J'utilisais mcnemar jusqu'à ce que je voie cela . Lorsque le Mcnemar's est expliqué, il dit ce que le fait de faire un chi carré répondrait dans le même cas. Je suis assez perplexe. De la façon dont ce que chaque test nous dit est encadré sur cette page, je dois opter pour le chi carré mais comme ce sont des mesures sur le même sujet, je dois choisir celui de McNemar!
Anto

Réponses:

48

Il est très regrettable que le test de McNemar soit si difficile à comprendre pour les gens. Je remarque même qu'en haut de sa page Wikipédia, il indique que l'explication sur la page est difficile à comprendre pour les gens. L'explication courte typique du test de McNemar est soit qu'il s'agit d'un «test chi carré intra-sujets», soit qu'il s'agit d'un «test de l'homogénéité marginale d'un tableau de contingence». Je ne trouve aucun de ces éléments très utile. Premièrement, il n'est pas clair ce que l'on entend par `` chi carré intra-sujets '', car vous mesurez toujours vos sujets deux fois (une fois sur chaque variable) et essayez de déterminer la relation entre ces variables. De plus, «homogénéité marginale» (Tragiquement, même cette réponse peut prêter à confusion. Si c'est le cas, il peut être utile de lire ma deuxième tentative ci-dessous.)

Voyons si nous pouvons travailler à travers un processus de raisonnement sur votre meilleur exemple pour voir si nous pouvons comprendre si (et si oui, pourquoi) le test de McNemar est approprié. Vous avez mis:

entrez la description de l'image ici

Il s'agit d'un tableau de contingence, il implique donc une analyse du chi carré. De plus, vous voulez comprendre la relation entre et A f t e r , et le test du chi carré vérifie une relation entre les variables, donc à première vue, il semble que le test du chi carré doit être l'analyse qui répond à votre question. BeForeUNEFter

Cependant, il convient de souligner que nous pouvons également présenter ces données comme suit:

entrez la description de l'image ici

Quand vous regardez les données de cette façon, vous pourriez penser que vous pourriez faire un vieux régulier -test. Mais un t- test n'est pas tout à fait correct. Il y a deux problèmes: Premièrement, parce que chaque ligne répertorie les données mesurées à partir du même sujet, nous ne voudrions pas faire un test t entre sujets , nous voudrions faire un test t entre sujets . Deuxièmement, étant donné que ces données sont distribuées sous forme de binôme , la variance est fonction de la moyenne. Cela signifie qu'il n'y a pas d'incertitude supplémentaire à craindre une fois que la moyenne de l'échantillon a été estimée (c'est-à-dire que vous n'avez pas à estimer la variance par la suite), vous n'avez donc pas à vous référer à la distribution t , vous pouvez utiliser le ztttttzDistribution. (Pour en savoir plus, il peut être utile de lire ma réponse ici: Le -test par rapport au χ 2 testszχ2 ). Par conséquent, nous aurions besoin d' un intra-sujets -test. Autrement dit, nous avons besoin d'un test intra-sujets d'égalité des proportions. z

Nous avons vu qu'il y a deux façons différentes de penser et d'analyser ces données (motivées par deux façons différentes de regarder les données). Nous devons donc décider de la façon dont nous devons utiliser. Le test du chi carré évalue si et A f t e r sont indépendants. Autrement dit, les personnes qui ont été malades auparavant sont-elles plus susceptibles de l'être ensuite que les personnes qui n'ont jamais été malades. Il est extrêmement difficile de voir comment cela ne serait pas le cas étant donné que ces mesures sont évaluées sur les mêmes sujets. Si vous obteniez un résultat non significatif (comme vous le faites presque), ce serait simplement une erreur de type II. Au lieu de savoir si B e fBeForeUNEFter et A f t e r sont indépendants, vous voulez certainement savoir si le traitement fonctionne (une question chi-carré ne répond pas). Ceci est très similaire à n'importe quel nombre d'études de traitement vs études de contrôle où vous voulez voir si les moyennes sont égales, sauf que dans ce cas, vos mesures sont oui / non et elles sont intra-sujets. Considérons un t plus typiqueBeForeUNEFtert- situation de test avec pression artérielle mesurée avant et après un traitement. Ceux dont le pb était au-dessus de la moyenne de votre échantillon au préalable auront presque certainement tendance à être parmi les pb les plus élevés par la suite, mais vous ne voulez pas connaître la cohérence des classements, vous voulez savoir si le traitement a conduit à un changement du pb moyen . Votre situation ici est directement analogue. Plus précisément, vous souhaitez exécuter un test intérieur des sujets de l'égalité des proportions. C'est le test de McNemar.z

Donc, après avoir réalisé que nous voulons effectuer le test de McNemar, comment cela fonctionne-t-il? Exécuter un test entre sujets est facile, mais comment exécuter une version intra-sujets? La clé pour comprendre comment effectuer un test de proportions intra-sujets est d'examiner le tableau de contingence, qui décompose les proportions:z
Il est évidentleBeforeproportions sont les totaux de ligne divisé par le total général, et leAfterproportions sont les totaux des colonnes divisé partotal global. Lorsque nous regardons le tableau de contingence, nous pouvons voir que ce sont, par exemple:Avant la proportion oui=220+13

UNEFterNoOuiestotunelBeForeNo1157351192Ouies22013233totunel1377481425
BeForeUNEFter
Ce qui est intéressant à noter ici, c'est que13observations étaient oui avant et après. Ils se retrouvent dans les deux proportions, mais en raison de leur présence dans les deux calculs, ils n'ajoutent aucune information distincte sur la variation de la proportion de oui. De plus, ils sont comptés deux fois, ce qui n'est pas valable. De même, le total global se retrouve dans les deux calculs et n'ajoute aucune information distincte. En décomposant les proportions, nous sommes en mesure de reconnaître que les seules informations distinctes sur les proportions avant et après des oui existent dans les220et35, ce sont donc les chiffres que nous devons analyser. C'était la perspicacité de McNemar. De plus, il s'est rendu compte que sous le nul, il s'agit d'un test binomial de220/
Avant proportion oui=220+131425,Après proportion oui=35+131425
1322035 contre une proportion nulle de 0,5 . (Il existe une formulation équivalente qui est distribuée sous la forme d'un chi carré, ce quiproduit.) 220/(220+35).5R

Il y a une autre discussion sur le test de McNemar, avec des extensions aux tables de contingence supérieures à 2x2, ici .


Voici une Rdémo avec vos données:

mat = as.table(rbind(c(1157, 35), 
                     c( 220, 13) ))
colnames(mat) <- rownames(mat) <- c("No", "Yes")
names(dimnames(mat)) = c("Before", "After")
mat
margin.table(mat, 1)
margin.table(mat, 2)
sum(mat)

mcnemar.test(mat, correct=FALSE)
#  McNemar's Chi-squared test
# 
# data:  mat
# McNemar's chi-squared = 134.2157, df = 1, p-value < 2.2e-16
binom.test(c(220, 35), p=0.5)
#  Exact binomial test
# 
# data:  c(220, 35)
# number of successes = 220, number of trials = 255, p-value < 2.2e-16
# alternative hypothesis: true probability of success is not equal to 0.5
# 95 percent confidence interval:
#  0.8143138 0.9024996
# sample estimates:
# probability of success 
#              0.8627451 

Si nous ne tenions pas compte de la nature intra-sujets de vos données, nous aurions un test un peu moins puissant d'égalité des proportions:

prop.test(rbind(margin.table(mat, 1), margin.table(mat, 2)), correct=FALSE)
#  2-sample test for equality of proportions without continuity
#  correction
# 
# data:  rbind(margin.table(mat, 1), margin.table(mat, 2))
# X-squared = 135.1195, df = 1, p-value < 2.2e-16
# alternative hypothesis: two.sided
# 95 percent confidence interval:
#  0.1084598 0.1511894
# sample estimates:
#    prop 1    prop 2 
# 0.9663158 0.8364912 

X-squared = 133.6627chi-squared = 134.215713N=2850N=1425


Voici les réponses à vos questions concrètes:

  1. L'analyse correcte est le test de McNemar (comme discuté en détail ci-dessus).
  2. Cette version est plus délicate et le libellé "est-ce que des proportions plus élevées d'une infection se rapportent à des proportions plus élevées de Y" est ambigu. Il y a deux questions possibles:

    • Il est parfaitement raisonnable de vouloir savoir si les patients qui contractent l'une des infections ont tendance à contracter l'autre, auquel cas vous utiliseriez le test d'indépendance du chi carré. Cette question demande si la sensibilité aux deux infections différentes est indépendante (peut-être parce qu'elles sont contractées par différentes voies physiologiques) ou non (peut-être qu'elles sont contractées en raison d'un système immunitaire généralement affaibli).
    • Il est également parfaitement raisonnable de savoir si la même proportion de patients a tendance à contracter les deux infections, auquel cas vous utiliseriez le test de McNemar. La question ici est de savoir si les infections sont également virulentes.
  3. Comme il s'agit encore une fois de la même infection, ils seront bien sûr liés. Je suppose que cette version n'est pas avant et après un traitement, mais juste à un moment ultérieur. Ainsi, vous demandez si les taux d'infection de fond changent de manière organique, ce qui est encore une fois une question parfaitement raisonnable. Quoi qu'il en soit, l'analyse correcte est le test de McNemar.
    Edit: Il semblerait que j'ai mal interprété votre troisième question, peut-être à cause d'une faute de frappe. Je l'interprète maintenant comme deux infections différentes à deux moments différents. Selon cette interprétation, le test du chi carré serait approprié.
gung - Réintégrer Monica
la source
@Alexis Autant que je sache, vous et Gung semblez vous parler. Même le test t dit "non appariés" ou "échantillons indépendants", ou l'ANOVA "unidirectionnelle" ou "échantillons indépendants", nécessite en fait des données appariées au sens du gung: pour chaque sujet, vous devez enregistrer à la fois un groupe catégorique variable d'adhésion et une variable de résultat continue . (Si la variable d'appartenance à un groupe a deux niveaux, nous utilisons généralement le test t non apparié; pour les niveaux 3+, vous avez besoin d'une ANOVA unidirectionnelle).
Silverfish
2
En expliquant quel test utiliser, je montre les deux façons de le voir - si vous avez des observations d'une variable continue, une pour chaque sujet, et que les sujets viennent de 2 (ou 3+) groupes et que vous êtes intéressé par les différences entre groupes, puis utilisez le test t d'échantillons indépendants (ou ANOVA unidirectionnelle). Confirmez ensuite votre choix en consultant votre tableau de données: avez-vous, pour chaque sujet, deux informations: la catégorie d'appartenance au groupe et la variable continue. On peut même renverser la vapeur et dire que le test t est une sorte de test d'association entre variable binaire et variable continue.
Silverfish
2
Un test t apparié (ou des échantillons corrélés ANOVA) est utilisé si, pour chaque sujet, vous avez deux (ou 3+) lectures continues, prises dans des conditions différentes, et que vous souhaitez tester les différences entre les conditions. C'est «jumelé» dans un sens différent. Mais dans cette question, nous avons deux variables catégorielles enregistrées pour chaque sujet. En regardant le tableau de données, les valeurs enregistrées de ces variables catégorielles doivent venir par paires. Mais cela ne signifie pas que le plan d'étude lui-même est associé. C'est déroutant (comme des notes intestinales). Mais si vous connaissez la conception de votre étude, cela peut le résoudre (comme le note Alexis)
Silverfish
@Silverfish Si vous avez deux observations (de la même variable nominale) faites sur chaque sujet, en quel sens n'est-ce pas un plan par paires?
Alexis
1
@Alexis C'est celle "de la même variable" qui est la clé - et potentiellement déroutante. Vous savez peut-être qu'il représente la même variable, bien que dans des conditions différentes ou à des moments différents, mais selon la façon dont nous présentons le tableau de données, ils peuvent sembler être enregistrés comme des variables différentes (par exemple, un "avant" et un "après" séparés). variable).
Silverfish
22

Eh bien, il semble que j'aie fait un hachage de cela. Permettez-moi d'essayer de l'expliquer à nouveau, d'une manière différente et nous verrons si cela pourrait aider à clarifier les choses.

La manière traditionnelle d'expliquer le test de McNemar par rapport au test du chi carré est de demander si les données sont "appariées" et de recommander le test de McNemar si les données sont appariées et le test du chi carré si les données sont "non appariées". J'ai trouvé que cela conduit à beaucoup de confusion (ce fil étant un exemple!). Au lieu de cela, j'ai trouvé qu'il est très utile de se concentrer sur la question que vous essayez de poser et d'utiliser le test qui correspond à votre question. Pour rendre cela plus concret, regardons un scénario composé:

Vous vous promenez dans une conférence de statistiques et pour chaque statisticien que vous rencontrez, vous enregistrez s'il s'agit des États-Unis ou du Royaume-Uni. Vous enregistrez également s'ils ont une pression artérielle élevée ou une pression artérielle normale.

Voici les données:

mat = as.table(rbind(c(195,   5),
                     c(  5, 195) ))
colnames(mat)        = c("US", "UK")
rownames(mat)        = c("Hi", "Normal")
names(dimnames(mat)) = c("BP", "Nationality")
mat
#         Nationality
# BP        US  UK
#   Hi     195   5
#   Normal   5 195

À ce stade, il est important de comprendre quelle question nous voulons poser à nos données. Il y a trois questions différentes que nous pourrions poser ici:

  1. Nous pourrions vouloir savoir si les variables catégorielles BPet Nationalitysont associées ou indépendantes;
  2. On peut se demander si l'hypertension artérielle est plus courante chez les statisticiens américains que chez les statisticiens britanniques;
  3. Enfin, on peut se demander si la proportion de statisticiens souffrant d'hypertension artérielle est égale à la proportion de statisticiens américains à qui nous avons parlé. Il s'agit des proportions marginales du tableau. Ceux-ci ne sont pas imprimés par défaut dans R, mais nous pouvons les obtenir ainsi (notez que, dans ce cas, ils sont exactement les mêmes):

    margin.table(mat, 1)/sum(mat)
    # BP
    #    Hi Normal 
    #   0.5    0.5 
    margin.table(mat, 2)/sum(mat)
    # Nationality
    #  US  UK 
    # 0.5 0.5 

Comme je l'ai dit, l'approche traditionnelle, discutée dans de nombreux manuels, consiste à déterminer le test à utiliser en fonction du «jumelage» ou non des données. Mais c'est très déroutant, ce tableau de contingence est-il «jumelé»? Si nous comparons la proportion d'hypertension artérielle entre les statisticiens américains et britanniques, vous comparez deux proportions (bien que de la même variable) mesurées sur différents groupes de personnes. D'un autre côté, si vous voulez comparer la proportion d'hypertension artérielle à la proportion américaine, vous comparez deux proportions (bien que de variables différentes) mesurées sur le même ensemble de personnes. Ces données sont à la fois"appariés" et "non appariés" en même temps (bien qu'en ce qui concerne les différents aspects des données). Cela crée de la confusion. Pour essayer d'éviter cette confusion, je soutiens que vous devriez réfléchir à la question que vous posez. Plus précisément, si vous voulez savoir:

  1. Si les variables sont indépendantes: utilisez le test du chi carré.
  2. Si la proportion d'hypertension artérielle diffère selon la nationalité: utilisez le test z pour la différence de proportions.
  3. Si les proportions marginales sont les mêmes: utilisez le test de McNemar.

Quelqu'un pourrait être en désaccord avec moi ici, faisant valoir que parce que le tableau de contingence n'est pas "apparié", le test de McNemar ne peut pas être utilisé pour tester l'égalité des proportions marginales et que le test du chi carré devrait être utilisé à la place. Puisque c'est le point de discorde, essayons les deux pour voir si les résultats ont du sens:

chisq.test(mat)
#  Pearson's Chi-squared test with Yates' continuity correction
# 
# data:  mat
# X-squared = 357.21, df = 1, p-value < 2.2e-16
mcnemar.test(mat)
#  McNemar's Chi-squared test
# 
# data:  mat
# McNemar's chi-squared = 0, df = 1, p-value = 1

50%=50%

Essayons un autre exemple:

mat2 = as.table(rbind(c(195, 195),
                      c(  5,   5) ))
colnames(mat2)        = c("US", "UK")
rownames(mat2)        = c("Hi", "Normal")
names(dimnames(mat2)) = c("BP", "Nationality")
mat2
#         Nationality
# BP        US  UK
#   Hi     195 195
#   Normal   5   5
margin.table(mat2, 1)/sum(mat2)
# BP
#     Hi Normal 
#  0.975  0.025 
margin.table(mat2, 2)/sum(mat2)
# Nationality
#  US  UK 
# 0.5 0.5 

97,5%50%

chisq.test(mat2)
#  Pearson's Chi-squared test
# 
# data:  mat2
# X-squared = 0, df = 1, p-value = 1
mcnemar.test(mat2)
#  McNemar's Chi-squared test with continuity correction
# 
# data:  mat2
# McNemar's chi-squared = 178.605, df = 1, p-value < 2.2e-16

Cette fois, le test du chi carré donne une valeur de p de 1, ce qui signifie que les proportions marginales sont aussi égales qu'elles peuvent l'être. Mais nous avons vu que les proportions marginales ne sont évidemment pas égales, ce résultat n'a donc aucun sens à la lumière de nos données. D'un autre côté, le test de McNemar donne une valeur de p d'environ 0. En d'autres termes, il est extrêmement peu probable d'obtenir des données avec des proportions marginales aussi éloignées de l'égalité que celles-ci, si elles sont vraiment égales dans la population. Puisque nos proportions marginales observées sont loin d'être égales, ce résultat est logique.

Le fait que le test du chi carré donne des résultats qui n'ont aucun sens étant donné nos données suggère qu'il y a quelque chose de mal à utiliser le test du chi carré ici. Bien sûr, le fait que le test de McNemar ait fourni des résultats raisonnables ne prouve pas qu'il est valide, il s'agit peut-être simplement d'une coïncidence, mais le test du chi carré est clairement faux.

Voyons si nous pouvons étudier l'argument pour expliquer pourquoi le test de McNemar pourrait être le bon. J'utiliserai un troisième jeu de données:

mat3 = as.table(rbind(c(190,  15),
                      c( 60, 135) ))
colnames(mat3)        = c("US", "UK")
rownames(mat3)        = c("Hi", "Normal")
names(dimnames(mat3)) = c("BP", "Nationality")
mat3
#         Nationality
# BP        US  UK
#   Hi     190  15
#   Normal  60 135
margin.table(mat3, 1)/sum(mat3)
# BP
#     Hi Normal 
# 0.5125 0.4875 
margin.table(mat3, 2)/sum(mat3)
# Nationality
#    US    UK 
# 0.625 0.375 

51,25%62,5%

prop.test(x=c(205, 250), n=c(400, 400))
#  2-sample test for equality of proportions with continuity correction
# 
# data:  c(205, 250) out of c(400, 400)
# X-squared = 9.8665, df = 1, p-value = 0.001683
# alternative hypothesis: two.sided
# 95 percent confidence interval:
#   -0.18319286 -0.04180714
# sample estimates:
# prop 1 prop 2 
# 0.5125 0.6250 

(Pour prop.test()tester les proportions marginales, j'ai dû saisir manuellement le nombre de `` succès '' et le nombre total de `` tests '', mais vous pouvez voir sur la dernière ligne de la sortie que les proportions sont correctes.) Cela suggère que il est peu probable d'obtenir des proportions marginales aussi loin de l'égalité si elles étaient réellement égales, compte tenu de la quantité de données dont nous disposons.

Ce test est-il valide? Il y a deux problèmes ici: le test estime que nous avons 800 données, alors que nous n'en avons en réalité que 400. Ce test ne prend pas non plus en compte que ces deux proportions ne sont pas indépendantes, en ce sens qu'elles ont été mesurées sur les mêmes personnes.


% BP élevé: 190+15400% US: 190+60400
1904001560π=.5sous le nul. C'était la perspicacité de McNemar. En fait, le test de McNemar n'est essentiellement qu'un test binomial de la probabilité que les observations tombent également dans ces deux cellules:
binom.test(x=15, n=(15+60))
#  Exact binomial test
# 
# data:  15 and (15 + 60)
# number of successes = 15, number of trials = 75, p-value = 1.588e-07
# alternative hypothesis: true probability of success is not equal to 0.5
# 95 percent confidence interval:
#   0.1164821 0.3083261
# sample estimates:
# probability of success 
#                    0.2 

Dans cette version, seules les observations informatives sont utilisées et elles ne sont pas comptées deux fois. La valeur de p est ici beaucoup plus petite, 0,000000001588, ce qui est souvent le cas lorsque la dépendance dans les données est prise en compte. Autrement dit, ce test est plus puissant que le test z de différence de proportions. Nous pouvons en outre voir que la version ci-dessus est essentiellement la même que le test de McNemar:

mcnemar.test(mat3, correct=FALSE)
#  McNemar's Chi-squared test
# 
# data:  mat3
# McNemar's chi-squared = 27, df = 1, p-value = 2.035e-07

Si la non-identité est source de confusion, le test de McNemar typiquement et dans R, évalue le résultat au carré et le compare à la distribution du chi carré, qui n'est pas un test exact comme le binôme ci-dessus:

(15-60)^2/(15+60)
# [1] 27
1-pchisq(27, df=1)
# [1] 2.034555e-07

Ainsi, lorsque vous souhaitez vérifier que les proportions marginales d'une table de contingence sont égales, le test de McNemar (ou le test binomial exact calculé manuellement) est correct. Il utilise uniquement les informations pertinentes sans utiliser illégalement deux fois les données. Il ne s'agit pas simplement de produire des résultats qui donnent un sens aux données.

Je continue de croire qu'essayer de déterminer si une table de contingence est «jumelée» est inutile. Je suggère d'utiliser le test qui correspond à la question que vous posez sur les données.

gung - Réintégrer Monica
la source
1
Vous avez obtenu mon vote. :)
Alexis
11

χ2χ2


χ2

Par exemple, vous pourriez avoir un échantillon de 20 statisticiens des États-Unis et un échantillon indépendant distinct de 37 statisticiens du Royaume-Uni, et avoir une mesure pour savoir si ces statisticiens sont hypertendus ou normotendus. Votre hypothèse nulle est que les statisticiens britanniques et américains ont la même probabilité sous-jacente d'être hypertendu (c'est-à-dire que savoir si l'on est des États-Unis ou du Royaume-Uni ne dit rien sur la probabilité d'hypertension). Bien sûr, il est possible que vous ayez la même taille d'échantillon dans chaque groupe, mais cela ne change pas le fait que les échantillons soient indépendants (c'est-à-dire non appariés ).

Données binaires dans des échantillons appariés
Dans ce cas, vous utiliseriez McNemar'sχ2

Par exemple, vous pourriez avoir des données d'études cas-témoins appariées individuellement échantillonnées à partir d'une conférence internationale de statisticiens, où 30 statisticiens souffrant d' hypertension (cas) et 30 statisticiens sans hypertension (témoins; qui sont individuellement appariés par âge, sexe, IMC et statut de fumeur cas particuliers), sont évalués rétrospectivement pour la résidence professionnelle au Royaume-Uni par rapport à la résidence ailleurs. La valeur nulle est que la probabilité de résider au Royaume-Uni parmi les cas est la même que la probabilité de résider au Royaume-Uni en tant que contrôle (c'est-à-dire que connaître son statut d'hypertension ne dit rien de son histoire de résidence au Royaume-Uni).

rsχ2=[(r-s)-1]2(r+s) sont des comptes de paires discordantes .

Anto, dans votre exemple, vos données sont appariées (même variable mesurée deux fois dans le même sujet) et donc le test de McNemar est le choix approprié de test pour l'association.

[Gung et moi étions en désaccord pendant un certain temps sur une réponse antérieure.]

Références citées
"En supposant que nous sommes toujours intéressés à comparer les proportions, que pouvons-nous faire si nos données sont couplées plutôt qu'indépendantes? ... Dans cette situation, nous utilisons le test de McNemar." - Pagano et Gauvreau, Principles of Biostatistics , 2nd édition, page 349. [Je souligne ]

"L'expression est mieux connue sous le nom de statistique de test de paires appariées de McNemar (McNemar, 1949), et a été un pilier de l' analyse de paires appariées ." - Rothman, Greenland, & Lash.Épidémiologie moderne , page 286. [ Je souligne ]

chez les mêmes individus Nous développerons une procédure pour analyser de telles expériences, le test de Mcnemar pour les changements , dans le cadre d'une telle étude. "- Glanz, Primer of Biostatisticsχ2 test du aux données appariées à la page 201.]

"Pour les données cas-témoins appariées avec un contrôle par cas , l'analyse résultante est simple, et le test statistique approprié est le test chi-carré de McNemar ... notez que pour le calcul du rapport de cotes et de la statistique, les seuls contributeurs sont les paires dont l'exposition est disparate , c'est-à-dire les paires où le cas a été exposé mais le contrôle ne l'a pas été, et celles où le contrôle a été exposé mais le cas ne l'a pas été. "- Elwood. Évaluation critique des études épidémiologiques et des essais cliniques , 1re édition, pages 189–190. [ Italiques ajoutés ]

Alexis
la source
7

Ma compréhension du test de McNemar est la suivante: il est utilisé pour voir si une intervention a fait une différence significative dans un résultat binaire. Dans votre exemple, un groupe de sujets est vérifié pour l'infection et la réponse est enregistrée comme oui ou non. Tous les sujets reçoivent ensuite une intervention, par exemple un antibiotique. Ils sont ensuite vérifiés à nouveau pour l'infection et la réponse est enregistrée comme oui / non à nouveau. Les (paires de) réponses peuvent être mises dans le tableau de contigence:

             After   
           |no  |yes|
Before|No  |1157|35 |
      |Yes |220 |13 |

Et le test de McNemar serait approprié pour cela.

Il ressort clairement du tableau que beaucoup plus sont passés de «oui» à «non» (220 / (220 + 13) ou 94,4%) que de «non» à «oui» (35 / (1157 + 35) ou 2,9 %). Compte tenu de ces proportions, la valeur P de McNemar (4.901e-31) semble plus correcte que la valeur P chi carré (0.04082).

Si le tableau de contigence représente 2 infections différentes (question 2), alors le chi carré serait plus approprié.

Votre troisième question est ambiguë: vous énoncez d'abord la relation entre Y à t2 et Y à t1 mais dans le tableau, vous écrivez «X» à t1 vs Y à t2. Y à t2 vs Y à t1 est le même que votre première question et donc le test de McNemar est nécessaire, tandis que X à t1 et Y à t2 indiquent que différents événements sont comparés et donc le chi carré sera plus approprié.

Edit: Comme mentionné par Alexis dans le commentaire, les données cas-témoins appariées sont également analysées par le test de McNemar. Par exemple, 1425 patients cancéreux sont recrutés pour une étude et pour chaque patient un contrôle apparié est également recruté. Tous ces (1425 * 2) sont vérifiés pour l'infection. Les résultats de chaque paire peuvent être montrés par un tableau similaire:

             Normal   
           |no  |yes|
Cancer|No  |1157|35 |
      |Yes |220 |13 |

Plus clairement:

                                    Normal:
                                    No infection   Infection  
Cancer patient:     No infection    1157            35      
                    Infection       220             13      

Cela montre qu'il est beaucoup plus fréquent que les patients cancéreux soient infectés et non contrôlés, plutôt que l'inverse. Son importance peut être testée par le test de McNemar.

Si ces patients et contrôles n'étaient pas appariés et indépendants, on ne peut que faire le tableau suivant et faire un test chisquare:

            Infection
            No    Yes
Cancer  No  1377   48
        Yes 1192  233

Plus clairement:

                No infection        Infection
No cancer       1377                48
Cancer          1192                233

Notez que ces nombres sont identiques aux marges du premier tableau:

> addmargins(mat)
      After
Before   No  Yes  Sum
   No  1157   35 1192
   Yes  220   13  233
   Sum 1377   48 1425

Cela doit être la raison de l'utilisation de termes comme «fréquences marginales» et «homogénéité marginale» dans le test de McNemar.

Fait intéressant, la fonction addmargins peut également aider à décider quel test utiliser. Si le total général est la moitié du nombre de sujets observés (indiquant que l'appariement a été effectué), le test de McNemar est applicable, sinon le test chisquare est approprié:

> addmargins(mat)
      Normal
Cancer   No  Yes  Sum
   No  1157   35 1192
   Yes  220   13  233
   Sum 1377   48 1425
> 
> addmargins(mat3)
      Infection
Cancer   No  Yes  Sum
   No  1377   48 1425
   Yes 1192  233 1425
   Sum 2569  281 2850

Les codes R des tableaux ci-dessus sont ceux des réponses ci-dessus:

mat = as.table(rbind(c(1157, 35), 
                      c( 220, 13) ))
colnames(mat) <- rownames(mat) <- c("No", "Yes")
names(dimnames(mat)) = c("Cancer", "Normal")

mat3 = as.table(rbind(c(1377, 48), 
                     c(1192, 233) ))
colnames(mat3) <- rownames(mat3) <- c("No", "Yes")
names(dimnames(mat3)) = c("Cancer", "Infection")

Le pseudocode suivant peut également aider à connaître la différence:

subject_id      result_first_observation    result_second_observation   
1               no                          yes                     
2               yes                         no                      
...

mcnemar.test(table(result_first_observation, result_second_observation))



pair_id     result_case_subject     result_control_subject  
1           no                      yes                     
2           yes                     no                      
...

mcnemar.test(table(result_case_subject, result_control_subject))



subject_id      result_first_test       result_second_test
1               yes                     no
2               no                      yes
..

chisq.test(table(result_first_test, result_second_test))

Modifier:

mid-pla variation du test de McNemar ( https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3716987/ ) est intéressante. Il compare bet cdu tableau de contingence, c'est-à-dire le nombre qui est passé de oui à non et le nombre qui est passé de non à oui (en ignorant le nombre de ceux qui sont restés oui ou non pendant l'étude). Il peut être effectué à l'aide du test binomial en python, comme indiqué sur https://gist.github.com/kylebgorman/c8b3fb31c1552ecbaafb

Il pourrait être équivalent à binom.test(b, b+c, 0.5)car dans un changement aléatoire, on s'attendrait bà être égal à c.

rnso
la source
3
Non seulement pour l'analyse d'intervention: il est également utilisé pour analyser les données cas-témoins appariées dans un sens observationnel.
Alexis
Étant donné la description / configuration avant le tableau pour Q3, je soupçonne que le "X" est une faute de frappe, mais c'était une bonne prise et c'est une contribution utile au fil +1.
gung - Rétablir Monica
@mso Edited Q3. c'est X à t1! sinon, comme vous le dites, ce n'est pas différent du premier trimestre. ce Q a plus d'un an et est surpris de voir quelqu'un y revenir avec les mêmes pensées qui m'ont dérouté. À suivre avec beaucoup d'intérêt!
Anto
Mes excuses, le PO a clarifié Q3, il s'agit évidemment de 2 maladies différentes à 2 moments différents. Encore une fois, bonne prise.
gung - Rétablir Monica