Qual è la differenza tra il test di McNemar e il test chi-quadrato e come fai a sapere quando usarli?


30

Ho provato a leggere su diverse fonti, ma non sono ancora chiaro quale test sarebbe appropriato nel mio caso. Ci sono tre diverse domande che sto ponendo sul mio set di dati:

  1. I soggetti sono testati per le infezioni da X in momenti diversi. Voglio sapere se le proporzioni di positivo per X dopo sono correlate alla proporzione di positivo per X prima:

                 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
    

    Secondo la mia comprensione, poiché i dati sono misure ripetute, devo usare il test di McNemar, che verifica se la proporzione di positivo per X è cambiata.

    Ma le mie domande sembrano aver bisogno del test chi-quadrato - test se la proporzione di positivo per X dopo è correlata alla proporzione di positivo per X prima.

    Non sono nemmeno sicuro di comprendere correttamente la differenza tra il test di McNemar e il chi-quadrato. Quale sarebbe il test giusto se la mia domanda fosse: "La percentuale di soggetti infetti da X dopo è diversa da prima?"

  2. Un caso simile, ma dove invece di prima e dopo, misuro due diverse infezioni in un determinato momento:

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

    Quale test sarebbe proprio qui se la domanda è "Le percentuali più alte di una infezione si riferiscono alle proporzioni più alte di Y"?

  3. Se la mia domanda fosse: "L'infezione Y al momento t2 è correlata all'infezione X al tempo t1?", Quale test sarebbe appropriato?

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

Stavo usando il test di McNemar in tutti questi casi, ma ho i miei dubbi se questo è il test giusto per rispondere alle mie domande. Sto usando R. Potrei usare un binomio glminvece? Sarebbe analogo al test chi-quadrato?


1
Hai provato a leggere gli argomenti stats.stackexchange.com/questions/tagged/mcnemar-test qui sul test Mcnemar?
ttnphns,

Cosa intendi per "relazione tra due probabilità"?
Michael M,

@ttnphns Li ho esaminati, ma non sono riuscito a riformularlo alla mia domanda. Dopo ulteriori riflessioni, sembra che io possa rispondere a due domande basate sul Q1: Chi-sq mi direbbe se la proporzione di + ve X dopo fosse correlata alla proporzione di + ve X prima mentre Mcnemar mi direbbe se c'è stato un cambiamento nelle proporzioni. Ho ragione?
Anto,

Non è possibile utilizzare un test di indipendenza standard qui perché ogni persona è rappresentata da due valori che causano campioni non casuali. χ2
Michael M,

Grazie @MichaelMayer. Stavo usando McNemar fino a quando non ho visto questo . Dove viene spiegato il Mcnemar, dice a cosa risponderebbe facendo un Chi-sq nello stesso caso. Sono abbastanza perplesso. Il modo in cui ogni test ci dice è inquadrato in questa pagina, devo optare per il Chi-sq ma dato che sono misurazioni sullo stesso argomento, devo scegliere quello di McNemar!
Anto

Risposte:


48

È davvero un peccato che il test di McNemar sia così difficile da capire per le persone. Ho anche notato che nella parte superiore della sua pagina di Wikipedia si afferma che la spiegazione sulla pagina è difficile da capire per le persone. La tipica breve spiegazione del test di McNemar è che si tratta di: "un test chi-quadro entro soggetti" o che è "un test dell'omogeneità marginale di una tabella di contingenza". Trovo che nessuno di questi sia molto utile. Innanzitutto, non è chiaro cosa si intende per "chi-quadrato" all'interno dei soggetti, poiché si misurano sempre due volte i propri soggetti (una volta su ciascuna variabile) e si cerca di determinare la relazione tra tali variabili. Inoltre, "omogeneità marginale" (Tragicamente, anche questa risposta può essere fonte di confusione. Se lo è, può aiutare a leggere il mio secondo tentativo di seguito.)

Vediamo se siamo in grado di elaborare un processo di ragionamento sul tuo esempio principale per vedere se siamo in grado di capire se (e in tal caso, perché) il test di McNemar è appropriato. Hai messo:

inserisci qui la descrizione dell'immagine

Questa è una tabella di contingenza, quindi connota un'analisi chi-quadro. Inoltre, si vuole capire la relazione tra e A f t e r , e il chi-quadrato test controlla per una relazione tra le variabili, così a prima vista sembra che il test chi-quadro deve essere l'analisi che risponde alla tua domanda. BeforeUNfter

Tuttavia, vale la pena sottolineare che possiamo anche presentare questi dati in questo modo:

inserisci qui la descrizione dell'immagine

Quando guardi i dati in questo modo, potresti pensare di poter fare un vecchio test regolare . Ma un test t non è del tutto corretto. Ci sono due questioni: in primo luogo, perché ogni dati elenca fila misurati dallo stesso soggetto, che non vorrebbe fare un tra soggetti t -test, vorremmo fare una entro i soggetti t -test. In secondo luogo, poiché questi dati sono distribuiti come binomiali , la varianza è una funzione della media. Ciò significa che non c'è ulteriore incertezza di cui preoccuparsi una volta stimata la media del campione (cioè, non è necessario stimare successivamente la varianza), quindi non è necessario fare riferimento alla distribuzione t , è possibile utilizzare il ztttttzdistribuzione. (Per ulteriori informazioni su questo, può aiutare a leggere la mia risposta qui: La -test contro la χ 2 test dizχ2 .) Quindi, avremmo bisogno di un entro i soggetti -test. Cioè, abbiamo bisogno di un test entro soggetti di uguaglianza di proporzioni. z

Abbiamo visto che ci sono due modi diversi di pensare e analizzare questi dati (spinti da due modi diversi di guardare i dati). Quindi dobbiamo decidere in che modo dovremmo usare. I valuta il test del chi-quadrato se e A f t e r sono indipendenti. Cioè, le persone che erano precedentemente malate hanno maggiori probabilità di ammalarsi in seguito rispetto alle persone che non sono mai state malate. È estremamente difficile vedere come non sarebbe il caso dato che queste misurazioni sono valutate sugli stessi soggetti. Se ottenessi un risultato non significativo (come quasi lo fai) sarebbe semplicemente un errore di tipo II. Invece che se B e fBeforeUNfter e A f t e r sono indipendenti, è quasi certamente vogliono sapere se le opere di trattamento (una domanda chi-quadrato non risponde). Questo è molto simile a qualsiasi numero di studi di trattamento vs. controllo in cui si desidera vedere se i mezzi sono uguali, tranne per il fatto che in questo caso le misurazioni sono sì / no e rientrano nei soggetti. Considera una t più tipicaBeforeUNftert-test della situazione con la pressione sanguigna misurata prima e dopo un certo trattamento. Quelli il cui bp era in precedenza sopra la media del campione tenderà quasi sicuramente ad essere tra i bp più alti in seguito, ma non si desidera conoscere la coerenza delle classifiche, si vuole sapere se il trattamento ha portato a un cambiamento nella bp media . La tua situazione qui è direttamente analoga. In particolare, si desidera eseguire un test all'interno di soggetti di uguaglianza di proporzioni. Questo è il test di McNemar.z

Quindi, avendo capito che vogliamo condurre il test di McNemar, come funziona? Eseguire una -test tra soggetti è facile, ma come si esegue una versione entro soggetti? La chiave per capire come eseguire un test di proporzioni all'interno dei soggetti è esaminare la tabella di contingenza, che decompone le proporzioni:z
Ovviamente ilBeforeproporzioni sono i totali di riga diviso per il totale, e laAfterproporzioni sono i totali di colonna diviso per totale. Quando osserviamo la tabella di contingenza possiamo vedere che quelli sono, ad esempio:Prima della proporzione sì=220+13

UNfterNoYeStotun'lBeforeNo1157351192YeS22013233totun'l1377481425
BeforeUNfter
Ciò che è interessante notare qui è che13osservazioni erano sì sia prima che dopo. Finiscono come parte di entrambe le proporzioni, ma come risultato della presenza in entrambi i calcoli non aggiungono informazioni distinte sulla variazione della percentuale di sì. Inoltre vengono conteggiati due volte, il che non è valido. Allo stesso modo, il totale complessivo finisce in entrambi i calcoli e non aggiunge informazioni distinte. Decomponendo le proporzioni siamo in grado di riconoscere che le uniche informazioni distinte sulle proporzioni prima e dopo dei sì esistono nei220e35, quindi quelli sono i numeri che dobbiamo analizzare. Questa era l'intuizione di McNemar. Inoltre, si è reso conto che sotto il null, questo è un test binomiale di220/
Prima della proporzione si=220+131425,Dopo la proporzione si=35+131425
1322035 contro una proporzione nulla di 0,5 . (Esiste una formulazione equivalente che viene distribuita come chi-quadrato, che è ciò cheproduce.) 220/(220+35).5R

C'è un'altra discussione sul test di McNemar, con estensioni alle tabelle di contingenza più grandi di 2x2, qui .


Ecco una Rdemo con i tuoi dati:

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 

Se non prendessimo in considerazione la natura soggettiva dei tuoi dati, avremmo un test leggermente meno potente dell'uguaglianza delle proporzioni:

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


Ecco le risposte alle tue domande concrete:

  1. L'analisi corretta è il test di McNemar (come discusso ampiamente sopra).
  2. Questa versione è più complicata e l'espressione "fa proporzioni più elevate di una infezione si riferiscono a proporzioni più elevate di Y" è ambigua. Ci sono due possibili domande:

    • È perfettamente ragionevole voler sapere se i pazienti che ottengono una delle infezioni tendono a prendere l'altra, nel qual caso useresti il ​​test chi-quadrato di indipendenza. Questa domanda è chiedersi se la suscettibilità alle due diverse infezioni sia indipendente (forse perché sono contratte attraverso percorsi fisiologici diversi) o meno (forse sono contratte a causa di un sistema immunitario generalmente indebolito).
    • È anche perfettamente ragionevole sapere cosa sapere se la stessa percentuale di pazienti tende a contrarre entrambe le infezioni, nel qual caso useresti il ​​test di McNemar. La domanda qui è se le infezioni sono ugualmente virulente.
  3. Poiché questa è ancora una volta la stessa infezione, ovviamente saranno correlati. Capisco che questa versione non è prima e dopo un trattamento, ma solo in un momento successivo. Pertanto, ti stai chiedendo se i tassi di infezione di fondo stanno cambiando organicamente, il che è di nuovo una domanda perfettamente ragionevole. Ad ogni modo, l'analisi corretta è il test di McNemar.
    Modifica: Sembrerebbe che abbia frainteso la tua terza domanda, forse a causa di un errore di battitura. Ora lo interpreto come due diverse infezioni in due timepunti separati. Secondo questa interpretazione, il test chi-quadrato sarebbe appropriato.

@Alexis Per quanto ne so, tu e il gung sembrate parlarvi. Anche il cosiddetto test t "campioni non accoppiati" o "campioni indipendenti", o il "campioni a senso unico" o "ANOVA campioni indipendenti", in realtà richiede dati accoppiati nel senso di gung: per ogni soggetto, è necessario registrare entrambi un gruppo categoriale variabile di appartenenza e una variabile di risultato continua . (Se la variabile di appartenenza al gruppo ha due livelli, di solito utilizziamo il t-test spaiato; per i livelli 3+ è necessario ANOVA unidirezionale).
Silverfish

2
Quando spiego quale test usare, mostro entrambi i modi di vederlo: se hai osservazioni di una variabile continua, una per ogni soggetto, e i soggetti provengono da 2 (o 3+) gruppi e sei interessato alle differenze tra gruppi, quindi utilizzare il test t per campioni indipendenti (o ANOVA unidirezionale). Quindi conferma la tua scelta guardando la tabella dei dati: hai, per ogni materia, due informazioni: categoria per l'appartenenza al gruppo e la variabile continua. Possiamo persino capovolgere le cose e dire che il t-test è una specie di test di associazione tra variabile binaria e continua.
Silverfish

2
T-test associato (o campioni correlati ANOVA) viene utilizzato se, per ogni soggetto, si hanno due (o 3+) letture continue, prese in condizioni diverse e si desidera verificare le differenze tra le condizioni. Questo è "accoppiato" in un altro senso. Ma in questa domanda, abbiamo due variabili categoriche registrate per ogni argomento. Guardando la tabella dei dati, i valori registrati di quelle variabili categoriali devono essere in coppia. Ma ciò non significa che il disegno dello studio stesso sia accoppiato. Questo è confuso (come note gung). Ma se conosci il tuo progetto di studio, questo può risolverlo (come nota Alexis)
Silverfish,

@Silverfish Se hai fatto due osservazioni (della stessa variabile nominale) su ciascun soggetto, in che senso non è un disegno accoppiato?
Alexis,

1
@Alexis È quella "della stessa variabile" che è la chiave - e potenzialmente confusa. Potresti sapere che rappresenta la stessa variabile, anche se in condizioni diverse o in momenti diversi, ma a seconda del modo in cui disponiamo la tabella dei dati, potrebbero sembrare che vengano registrati come variabili diverse (ad esempio un "prima" separato e "dopo" variabile).
Silverfish

22

Bene, sembra che ne abbia fatto un hash. Vorrei provare a spiegarlo di nuovo, in un modo diverso e vedremo se potrebbe aiutare a chiarire le cose.

Il modo tradizionale di spiegare il test di McNemar rispetto al test chi-quadrato è quello di chiedere se i dati sono "accoppiati" e di consigliare il test McNemar se i dati sono accoppiati e il test chi-quadrato se i dati sono "non accoppiati". Ho scoperto che questo crea molta confusione (questo thread è un esempio!). Al posto di questo, ho scoperto che è molto utile concentrarsi sulla domanda che si sta tentando di porre e utilizzare il test corrispondente alla propria domanda. Per rendere questo più concreto, diamo un'occhiata a uno scenario inventato:

Cammini in una conferenza statistica e per ogni statista che incontri, registri se provengono dagli Stati Uniti o dal Regno Unito. Registri anche se hanno la pressione alta o normale.

Ecco i dati:

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

A questo punto, è importante capire quale domanda vogliamo porre ai nostri dati. Ci sono tre diverse domande che potremmo porre qui:

  1. Potremmo voler sapere se le variabili categoriali BPe Nationalitysono associate o indipendenti;
  2. Potremmo chiederci se la pressione alta è più comune tra i statistici statunitensi che tra i statistici del Regno Unito;
  3. Infine, potremmo chiederci se la percentuale di statistici con ipertensione arteriosa è uguale alla percentuale di statistici statunitensi con cui abbiamo parlato. Questo si riferisce alle proporzioni marginali della tabella. Questi non sono stampati per impostazione predefinita in R, ma possiamo ottenerli in questo modo (notare che, in questo caso, sono esattamente gli stessi):

    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 

Come ho detto, l'approccio tradizionale, discusso in molti libri di testo, è di determinare quale test usare in base al fatto che i dati siano "accoppiati" o meno. Ma questo è molto confuso, questa tabella di contingenza è "accoppiata"? Se confrontiamo la proporzione con l'ipertensione arteriosa tra statistici statunitensi e britannici, stai confrontando due proporzioni (sebbene della stessa variabile) misurate su diversi gruppi di persone. D'altra parte, se si desidera confrontare la proporzione con l'ipertensione arteriosa con la proporzione degli Stati Uniti, si stanno confrontando due proporzioni (sebbene con variabili diverse) misurate sullo stesso gruppo di persone. Questi dati sono entrambi"accoppiato" e "non accoppiato" allo stesso tempo (anche se in relazione a diversi aspetti dei dati). Questo porta alla confusione. Per cercare di evitare questa confusione, sostengo che dovresti pensare in termini di quale domanda stai ponendo. In particolare, se vuoi sapere:

  1. Se le variabili sono indipendenti: utilizzare il test chi-quadrato.
  2. Se la proporzione con ipertensione arteriosa differisce in base alla nazionalità: utilizzare il test z per la differenza di proporzioni.
  3. Se le proporzioni marginali sono le stesse: usa il test di McNemar.

Qualcuno potrebbe non essere d'accordo con me qui, sostenendo che poiché la tabella di contingenza non è "accoppiata", il test di McNemar non può essere usato per testare l'uguaglianza delle proporzioni marginali e che invece dovrebbe essere usato il test chi-quadrato. Poiché questo è il punto controverso, proviamo entrambi a vedere se i risultati hanno senso:

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%

Proviamo un altro esempio:

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

Questa volta, il test chi-quadrato dà un valore p di 1, il che significa che le proporzioni marginali sono uguali come possono essere. Ma abbiamo visto che le proporzioni marginali non sono ovviamente uguali, quindi questo risultato non ha alcun senso alla luce dei nostri dati. D'altra parte, il test di McNemar produce un valore p di circa 0. In altre parole, è estremamente improbabile ottenere dati con proporzioni marginali lontane dall'uguaglianza come queste, se sono veramente uguali nella popolazione. Poiché le nostre proporzioni marginali osservate sono tutt'altro che uguali, questo risultato ha senso.

Il fatto che il test chi-quadrato produca risultati insensati, dati i nostri dati, suggerisce che c'è qualcosa di sbagliato nell'utilizzare il test chi-quadrato qui. Naturalmente, il fatto che il test di McNemar abbia fornito risultati sensati non dimostra che sia valido, potrebbe essere stato solo una coincidenza, ma il test chi-quadro è chiaramente sbagliato.

Vediamo se riusciamo a risolvere l'argomento del perché il test di McNemar potrebbe essere quello giusto. Userò un terzo set di dati:

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 

(Per utilizzare prop.test()per testare le proporzioni marginali, ho dovuto inserire manualmente il numero di "successi" e il numero totale di "prove", ma dall'ultima riga dell'output è possibile vedere che le proporzioni sono corrette.) Ciò suggerisce che è improbabile ottenere proporzioni marginali così lontane dall'uguaglianza se fossero effettivamente uguali, data la quantità di dati che abbiamo.

Questo test è valido? Ci sono due problemi qui: il test ritiene che abbiamo 800 dati, quando in realtà ne abbiamo solo 400. Questo test non tiene conto del fatto che queste due proporzioni non sono indipendenti, nel senso che sono state misurate sulle stesse persone.


% BP alta: 190+15400% USA: 190+60400
1904001560π=.5sotto il null. Questa era l'intuizione di McNemar. In effetti, il test di McNemar è essenzialmente solo un test binomiale per stabilire se le osservazioni possano ugualmente cadere in quelle due cellule:
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 

In questa versione, vengono utilizzate solo le osservazioni informative e non vengono conteggiate due volte. Il valore p qui è molto più piccolo, 0,0000001588, come spesso accade quando si tiene conto della dipendenza nei dati. Cioè, questo test è più potente del test z della differenza di proporzioni. Possiamo inoltre vedere che la versione precedente è essenzialmente la stessa del test di 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

Se la non identicità è confusa, il test di McNemar in genere, e in R, quadra il risultato e lo confronta con la distribuzione chi-quadrata, che non è un test esatto come il binomio sopra:

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

Pertanto, quando si desidera verificare che le proporzioni marginali di una tabella di contingenza siano uguali, il test di McNemar (o l'esatto test binomiale calcolato manualmente) è corretto. Utilizza solo le informazioni pertinenti senza utilizzare illegalmente due dati. Non capita solo di "produrre" risultati che abbiano un senso per i dati.

Continuo a credere che cercare di capire se una tabella di contingenza è "accoppiata" non è utile. Suggerisco di utilizzare il test che corrisponde alla domanda che stai ponendo dei dati.


1
Hai ottenuto il mio voto. :)
Alexis,

11

χ2χ2


χ2

Ad esempio, potresti avere un campione di 20 statistici dagli Stati Uniti e un campione indipendente separato di 37 statistici dal Regno Unito e valutare se questi statistici sono ipertesi o normotesi. La tua ipotesi nulla è che sia gli statistici del Regno Unito che quelli degli Stati Uniti abbiano la stessa probabilità di essere ipertesi (ovvero che sapere se si proviene dagli Stati Uniti o dal Regno Unito non dice nulla sulla probabilità di ipertensione). Naturalmente è possibile che tu possa avere la stessa dimensione del campione in ciascun gruppo, ma ciò non cambia il fatto che i campioni siano indipendenti (cioè non accoppiati ).


χ2

Ad esempio, potresti avere dati di studio caso-controllo abbinati individualmente campionati da una conferenza statistica internazionale, in cui 30 statistici con ipertensione (casi) e 30 statistici senza ipertensione (controlli; che sono abbinati individualmente per età, sesso, BMI e stato di fumo in casi particolari), sono valutati retrospettivamente per residenza professionale nel Regno Unito rispetto a residenza altrove. Il nullo è che la probabilità di risiedere nel Regno Unito tra i casi è la stessa della probabilità di risiedere nel Regno Unito come controlli (cioè che conoscere il proprio stato ipertensivo non dice nulla sulla storia della residenza nel Regno Unito).

rSχ2=[(r-S)-1]2(r+S)

Anto, nel tuo esempio, i tuoi dati sono accoppiati (stessa variabile misurata due volte nello stesso soggetto) e quindi il test di McNemar è la scelta appropriata del test da associare.

[Gung e io non eravamo d'accordo per una volta su una risposta precedente.]

Riferimenti citati
"Supponendo che siamo ancora interessati a confrontare le proporzioni, cosa possiamo fare se i nostri dati sono associati, piuttosto che indipendenti? ... In questa situazione, utilizziamo il test di McNemar." - Pagano e Gauvreau, Principi di biostatistica , 2 ° edizione, pagina 349. [ Enfasi aggiunta ]

"L'espressione è meglio conosciuta come statistica del test delle coppie abbinate McNemar (McNemar, 1949), ed è stata un pilastro dell'analisi delle coppie abbinate ." - Rothman, Groenlandia e Lash. Epidemiologia moderna , pagina 286. [ Enfasi aggiunta ]

"Il test t accoppiato e le misure ripetute di analisi della varianza possono essere utilizzati per analizzare esperimenti in cui la variabile studiata può essere misurata su una scala di intervallo (e soddisfa altri presupposti richiesti di metodi parametrici). Che dire di esperimenti, analoghi a quelli nel capitolo 5, in cui il risultato è misurato su una scala nominale ? Questo problema si pone spesso quando si chiede se un individuo ha risposto a un trattamento o quando si confrontano i risultati di due diversi test diagnostici classificati positivi o negativi negli stessi individui Svilupperemo una procedura per analizzare tali esperimenti, il test di Mcnemar per i cambiamenti , nel contesto di uno di questi studi. "- Glanz, Primer of Biostatisticsχ2

"Per dati caso-controllo abbinati con un controllo per caso , l'analisi risultante è semplice e il test statistico appropriato è il test chi-quadrato di McNemar ... notare che per il calcolo sia del rapporto di probabilità che della statistica, gli unici contributori sono le coppie che sono disparate nell'esposizione , cioè le coppie in cui è stato esposto il caso ma non il controllo, e quelle in cui è stato esposto il controllo ma il caso no. "- Elwood. Valutazione critica di studi epidemiologici e studi clinici , 1a edizione, pagine 189-190. [ Enfasi aggiunta ]


7

La mia comprensione del test di McNemar è la seguente: è usato per vedere se un intervento ha fatto una differenza significativa in un risultato binario. Nel tuo esempio, un gruppo di soggetti viene controllato per l'infezione e la risposta viene registrata come sì o no. A tutti i soggetti viene quindi dato un intervento, ad esempio un farmaco antibiotico. Vengono quindi ricontrollati per l'infezione e la risposta viene nuovamente registrata come sì / no. Le (coppie di) risposte possono essere inserite nella tabella delle contigenze:

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

E il test di McNemar sarebbe appropriato per questo.

Dalla tabella si evince che molti altri si sono convertiti da "sì" a "no" (220 / (220 + 13) o 94,4%) che da "no" a "sì" (35 / (1157 + 35) o 2.9 %). Considerando queste proporzioni, il valore P di McNemar (4.901e-31) appare più corretto del valore P chi-quadrato (0.04082).

Se la tabella di contigenza rappresenta 2 diverse infezioni (domanda 2), allora Chi-quadrato sarebbe più appropriato.

La tua terza domanda è ambigua: prima affermi di mettere in relazione Y in t2 con Y in t1 ma nella tabella scrivi "X" in t1 contro Y in t2. Y a t2 vs Y a t1 è uguale alla tua prima domanda e quindi è necessario il test di McNemar, mentre X a t1 e Y a t2 indicano che si stanno confrontando diversi eventi e quindi il Chi-quadrato sarà più appropriato.

Modifica: come menzionato da Alexis nel commento, anche i dati di controllo caso abbinati vengono analizzati dal test di McNemar. Ad esempio, 1425 pazienti affetti da cancro sono reclutati per uno studio e per ogni paziente viene anche assunto un controllo abbinato. Tutti questi (1425 * 2) sono controllati per l'infezione. I risultati di ciascuna coppia possono essere mostrati da una tabella simile:

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

Più chiaramente:

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

Dimostra che è molto più spesso che il malato di cancro ha avuto infezione e il controllo no, piuttosto che il contrario. Il suo significato può essere testato dal test di McNemar.

Se questi pazienti e controlli non erano abbinati e indipendenti, si può solo fare la seguente tabella ed eseguire un test chisquare:

            Infection
            No    Yes
Cancer  No  1377   48
        Yes 1192  233

Più chiaramente:

                No infection        Infection
No cancer       1377                48
Cancer          1192                233

Si noti che questi numeri sono gli stessi dei margini della prima tabella:

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

Questo deve essere il motivo dell'uso di termini come "frequenze marginali" e "omogeneità marginale" nel test di McNemar.

È interessante notare che la funzione addmargins può anche aiutare a decidere quale test usare. Se il totale generale è la metà del numero di soggetti osservati (indicando che è stata effettuata l'associazione), allora il test di McNemar è applicabile, altrimenti il ​​test chisquare è appropriato:

> 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

I codici R per le tabelle sopra sono come dalle risposte sopra:

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")

Il seguente pseudocodice può anche aiutare a conoscere la differenza:

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))

Modificare:

mid-pè interessante la variazione del test McNemar peforming ( https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3716987/ ). Confronta be cdella tabella di contingenza, ovvero il numero che è passato da sì a no rispetto al numero che è passato da no a sì (ignorando il numero di coloro che sono rimasti sì o no attraverso lo studio). Può essere eseguito utilizzando il test binomiale in Python, come mostrato su https://gist.github.com/kylebgorman/c8b3fb31c1552ecbaafb

Potrebbe essere equivalente a binom.test(b, b+c, 0.5)poiché in un cambiamento casuale, ci si aspetterebbe bdi essere uguale a c.


3
Non solo per l'analisi di intervento: viene utilizzato anche per analizzare i dati caso-controllo abbinati in senso osservazionale.
Alexis,

Data la descrizione / impostazione prima della tabella per Q3, sospetto che la "X" sia un errore di battitura, ma è stata una buona cattura e questo è un utile contributo al thread +1.
gung - Ripristina Monica

@mso Modificato Q3. è X a t1! altrimenti, come dici tu non è diverso da Q1. questo Q ha più di un anno e è sorpreso di vedere qualcuno tornarci con gli stessi pensieri che mi hanno confuso. Seguendo con molto interesse!
Anto

Mi scuso, l'OP ha chiarito il terzo trimestre, evidentemente si tratta di 2 malattie diverse in 2 momenti diversi. Ancora una volta, buona cattura.
gung - Ripristina Monica
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.