Jaka jest różnica między testem McNemara a testem chi-kwadrat i skąd wiesz, kiedy go użyć?

30

Próbowałem czytać z różnych źródeł, ale nadal nie jestem pewien, który test byłby odpowiedni w moim przypadku. Są trzy różne pytania, które zadaję o mój zestaw danych:

  1. Osobniki są badane pod kątem infekcji od X w różnych momentach. Chcę wiedzieć, czy proporcje dodatniego dla X po są powiązane z proporcją dodatniego dla X przed:

                 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
    

    Z mojego zrozumienia, ponieważ dane są powtarzanymi pomiarami, muszę użyć testu McNemara, który sprawdza, czy proporcja dodatnia dla X uległa zmianie.

    Ale moje pytania wydają się potrzebować testu chi-kwadrat - testowania, czy proporcja dodatnia dla X po jest związana z proporcją dodatnią dla X wcześniej.

    Nie jestem nawet pewien, czy poprawnie rozumiem różnicę między testem McNemara a chi-kwadratem. Jaki byłby właściwy test, gdyby moje pytanie brzmiało: „Czy odsetek osób zakażonych X po tym jest inny niż wcześniej?”

  2. Podobny przypadek, ale gdzie zamiast przed i po, mierzę dwie różne infekcje w jednym momencie:

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

    Który test byłby tutaj odpowiedni, gdyby pytanie brzmiało: „Czy wyższe proporcje jednej infekcji odnoszą się do wyższych proporcji Y”?

  3. Jeśli moje pytanie brzmiałoby: „Czy zakażenie Y w czasie t2 jest związane z zakażeniem X w czasie t1?”, Który test byłby odpowiedni?

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

We wszystkich tych przypadkach korzystałem z testu McNemara, ale mam wątpliwości, czy jest to właściwy test, aby odpowiedzieć na moje pytania. Używam R. Czy glmzamiast tego mogę użyć dwumianowy ? Czy byłoby to analogiczne do testu chi-kwadrat?

Anto
źródło
1
Czy spróbować odczytać stats.stackexchange.com/questions/tagged/mcnemar-test tematów tutaj na teście McNemar?
ttnphns,
Co rozumiesz przez „relację między dwoma prawdopodobieństwami”?
Michael M
@ttnphns Przejrzałem je, ale nie byłem w stanie przeformułować tego na moje pytanie. Po dłuższym zastanowieniu wydaje się, że mogę odpowiedzieć na dwa pytania oparte na pytaniu Q1: Chi-sq powiedziałby mi, czy proporcja + ve X po jest związana z proporcją + ve X przed, podczas gdy Mcnemar powiedziałby mi, czy była zmiana proporcji. Czy mam rację?
Anto
Nie można tutaj zastosować standardowego testu niezależności , ponieważ każda osoba jest reprezentowana przez dwie wartości powodujące nieprzypadkowe próbki. χ2)
Michael M,
Dzięki @MichaelMayer. Używałem McNemar aż widziałem tego . Tam, gdzie wyjaśniono Mcnemara, mówi, co zrobiłby Chi-sq w tej samej sprawie. Jestem dość zakłopotany. Sposób, w jaki każdy test mówi nam na tej stronie, muszę wybrać Chi-sq, ale ponieważ są to pomiary na ten sam temat, muszę wybrać McNemara!
Anto

Odpowiedzi:

48

To bardzo niefortunne, że test McNemara jest tak trudny do zrozumienia dla ludzi. Zauważam nawet, że na górze strony w Wikipedii znajduje się informacja, że ​​wyjaśnienie na stronie jest trudne do zrozumienia dla ludzi. Typowym krótkim wyjaśnieniem testu McNemara jest albo to, że jest to: „test chi-kwadrat wewnątrz badanych”, albo „test marginalnej jednorodności tabeli nieprzewidzianych zdarzeń”. Uważam, że żaden z nich nie jest bardzo pomocny. Po pierwsze, nie jest jasne, co należy rozumieć przez „chi-kwadrat wewnątrz badanych”, ponieważ zawsze mierzysz badanych dwa razy (raz na każdą zmienną) i próbujesz ustalić związek między tymi zmiennymi. Ponadto „marginalna jednorodność” (Tragiczne jest to, że nawet ta odpowiedź może być myląca. Jeśli tak, może pomóc w przeczytaniu mojej drugiej próby poniżej).

Zobaczmy, czy możemy przejść przez proces rozumowania twojego najlepszego przykładu, aby sprawdzić, czy możemy zrozumieć, czy (a jeśli tak, to dlaczego) test McNemara jest odpowiedni. Umieściłeś:

wprowadź opis zdjęcia tutaj

Jest to tabela zdarzeń, więc wiąże się ona z analizą chi-kwadrat. Ponadto chcesz zrozumieć związek między a A f t e r , a test chi-kwadrat sprawdza zależność między zmiennymi, więc na pierwszy rzut oka wydaje się, że test chi-kwadrat musi być analiza, która odpowiada na twoje pytanie. bmifaormiZAfatmir

Warto jednak zaznaczyć, że możemy również przedstawić te dane w następujący sposób:

wprowadź opis zdjęcia tutaj

Gdy spojrzysz na dane w ten sposób, możesz pomyśleć, że możesz wykonać zwykły stary test . Ale test t nie jest całkiem właściwy. Istnieją dwa problemy: Po pierwsze, ponieważ każdy wiersz zawiera dane mierzone dla tego samego przedmiotu, nie chcielibyśmy przeprowadzać testu t między podmiotami , chcielibyśmy przeprowadzić test t wśród podmiotów . Po drugie, ponieważ dane te są dystrybuowane jako dwumianowe , wariancja jest funkcją średniej. Oznacza to, że nie ma dodatkowej niepewności, o którą należy się martwić po oszacowaniu średniej próbki (tj. Nie trzeba później szacować wariancji), więc nie trzeba odwoływać się do rozkładu t , można użyć ztttttzdystrybucja. (Więcej na ten temat może pomóc, aby przeczytać moją odpowiedź tutaj: oo -test kontra χ 2 badania ). Tak więc, musiałby wewnątrz-tematy Z -test. Oznacza to, że potrzebujemy wewnętrznego testu równości proporcji. zχ2)z

Widzieliśmy, że istnieją dwa różne sposoby myślenia i analizowania tych danych (podpowiadane przez dwa różne sposoby patrzenia na dane). Musimy więc zdecydować, w jaki sposób powinniśmy skorzystać. Test chi-kwadrat ocenia, czy i A f t e r są niezależne. Oznacza to, że ludzie, którzy byli wcześniej chorzy, częściej chorują później niż ludzie, którzy nigdy nie byli chorzy. Niezwykle trudno jest zobaczyć, jak by to nie było, biorąc pod uwagę, że pomiary te są oceniane na tych samych przedmiotach. Jeśli otrzymałeś nieistotny wynik (jak prawie to robisz), byłby to po prostu błąd typu II. Zamiast tego, czy B e fbmifaormiZAfatmir a f t e r są niezależne, to niemal na pewno chcesz wiedzieć, czy oczyszczalnie (pytanie chi-kwadrat nie odpowiada). Jest to bardzo podobne do dowolnej liczby badań w porównaniu z badaniami kontrolnymi, w których chcesz sprawdzić, czy średnie są równe, z tym wyjątkiem, że w tym przypadku twoje pomiary są tak / nie i są w obrębie badanych. Rozważ bardziej typowy tbmifaormiZAfatmirt-test sytuacji z pomiarem ciśnienia krwi przed i po pewnym leczeniu. Ci, których bp był wcześniej wyższy od średniej próbki, prawie na pewno będą później znajdować się wśród wyższych bps, ale nie chcesz wiedzieć o spójności rankingów, chcesz wiedzieć, czy leczenie doprowadziło do zmiany średniej bp . Twoja sytuacja tutaj jest bezpośrednio analogiczna. Konkretnie, chcesz uruchomić wewnątrz-tematy -test równości proporcji. Taki jest test McNemara.z

z

ZAfatmirN.oYmistotzalbmifaormiN.o1157351192Ymis22013233totzal1377481425
bmifaormiZAfatmir
Przed proporcją tak=220+131425,Po proporcji tak=35+131425
1322035220/(220+35).5R

Jest kolejna dyskusja na temat testu McNemara, z rozszerzeniami do tablic awaryjnych większych niż 2x2, tutaj .


Oto Rdemo z twoimi danymi:

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 

Gdybyśmy nie wzięli pod uwagę charakteru danych twoich podmiotów, mielibyśmy nieco mniej skuteczny test równości proporcji:

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


Oto odpowiedzi na twoje konkretne pytania:

  1. Prawidłowa analiza to test McNemara (jak omówiono szczegółowo powyżej).
  2. Ta wersja jest trudniejsza, a sformułowanie „robi większe proporcje jednej infekcji w stosunku do wyższych proporcji Y” jest niejednoznaczne. Istnieją dwa możliwe pytania:

    • Jest całkowicie uzasadnione, aby wiedzieć, czy pacjenci, którzy dostają jedną z infekcji, dostają drugą, w takim przypadku zastosowałbyś test niezależności chi-kwadrat. To pytanie dotyczy tego, czy podatność na dwie różne infekcje jest niezależna (być może dlatego, że są one skurczone różnymi drogami fizjologicznymi), czy też nie (być może są one skurczone z powodu ogólnie osłabionego układu odpornościowego).
    • Jest również całkowicie uzasadnione, aby wiedzieć, czy ta sama część pacjentów ma tendencję do zarażania się obydwiema infekcjami, w takim przypadku należy zastosować test McNemara. Pytanie dotyczy tego, czy infekcje są równie zjadliwe.
  3. Ponieważ jest to znowu ta sama infekcja, oczywiście będą one powiązane. Rozumiem, że ta wersja nie jest przed i po leczeniu, ale w pewnym późniejszym momencie. W związku z tym pytasz, czy wskaźniki infekcji w tle zmieniają się organicznie, co jest znowu całkowicie uzasadnionym pytaniem. W każdym razie poprawna analiza jest testem McNemara.
    Edycja: Wydaje się, że źle zinterpretowałem twoje trzecie pytanie, być może z powodu literówki. Teraz interpretuję to jako dwie różne infekcje w dwóch różnych punktach czasowych. Zgodnie z tą interpretacją odpowiedni byłby test chi-kwadrat.
gung - Przywróć Monikę
źródło
@Alexis O ile mi wiadomo, wydajesz się, że ty i Gung rozmawiacie obok siebie. Nawet tak zwany test t „niesparowanych” lub „niezależnych próbek” lub „ANOVA z próbkami jednokierunkowymi” lub „niezależnymi próbkami” w rzeczywistości wymaga sparowanych danych w sensie Gunga: dla każdego pacjenta należy zarejestrować zarówno kategoryczną grupę zmienna członkostwa i ciągła zmienna wyniku . (Jeśli zmienna członkostwa w grupie ma dwa poziomy, zwykle używamy niesparowanego testu t; dla poziomów 3+ potrzebujesz jednokierunkowej ANOVA).
Silverfish,
2
Wyjaśniając, który test zastosować, pokazuję oba sposoby spojrzenia na niego - jeśli masz obserwacje zmiennej ciągłej, po jednej dla każdego przedmiotu, a badani pochodzą z 2 (lub 3+) grup i jesteś zainteresowany różnicami między grupy, a następnie użyj testu t niezależnych próbek (lub jednostronnej ANOVA). Następnie potwierdź swój wybór, patrząc na tabelę danych: czy dla każdego przedmiotu masz dwie informacje: kategoria członkostwa w grupie i zmienna ciągła. Możemy nawet odwrócić sytuację i powiedzieć, że test t jest rodzajem testu powiązania między zmienną binarną i ciągłą.
Silverfish,
2
Sparowany test t (lub skorelowane próbki ANOVA) stosuje się, jeśli dla każdego pacjenta masz dwa (lub 3+) ciągłe odczyty, wykonane w różnych warunkach, i chcesz sprawdzić różnice między warunkami. Jest to „sparowane” w innym znaczeniu. Ale w tym pytaniu mamy dwie zmienne kategoryczne dla każdego przedmiotu. Patrząc na tabelę danych, zarejestrowane wartości tych zmiennych kategorialnych muszą występować parami. Ale to nie znaczy, że sam projekt badania jest sparowany. Jest to mylące (jak notatki Gunga). Ale jeśli znasz swój plan badań, może to rozwiązać (jak zauważa Alexis)
Silverfish
@Silverfish Jeśli masz dwie obserwacje (tej samej zmiennej nominalnej) poczynione na każdym temacie, w jakim sensie nie jest to sparowany projekt?
Alexis,
1
@Alexis To „tej samej zmiennej”, która jest kluczowa - i potencjalnie myląca. Być może wiesz, że reprezentuje tę samą zmienną, choć w różnych warunkach lub w różnych czasach, ale w zależności od sposobu, w jaki układamy tabelę danych, mogą wydawać się, że są rejestrowane jako różne zmienne (np. Osobne „przed” i „po” zmienna).
Silverfish,
22

Wygląda na to, że zrobiłem z tego skrót. Pozwól, że spróbuję wyjaśnić to jeszcze raz, w inny sposób, a my przekonamy się, czy to może pomóc wyjaśnić sytuację.

Tradycyjnym sposobem wyjaśnienia testu McNemara w porównaniu do testu chi-kwadrat jest zapytanie, czy dane są „sparowane” i zalecenie testu McNemar, jeśli dane są sparowane, oraz testu chi-kwadrat, jeśli dane są „niesparowane”. Odkryłem, że prowadzi to do wielu nieporozumień (ten wątek jest przykładem!). Zamiast tego stwierdziłem, że najbardziej pomocne jest skupienie się na pytaniu, które próbujesz zadać , i skorzystanie z testu, który pasuje do twojego pytania. Aby uczynić to bardziej konkretnym, spójrzmy na gotowy scenariusz:

Spacerujesz po konferencji statystycznej i dla każdego statystyka, którego spotykasz, rejestrujesz, czy pochodzą one ze Stanów Zjednoczonych czy Wielkiej Brytanii. Zapisujesz również, czy mają wysokie ciśnienie krwi, czy normalne ciśnienie krwi.

Oto dane:

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

W tym momencie ważne jest, aby dowiedzieć się, jakie pytanie chcemy zadać na temat naszych danych. Możemy tu zadać trzy różne pytania:

  1. Może chcemy wiedzieć, czy zmienne kategoryczne BPi Nationalitysą związane lub niezależny;
  2. Możemy się zastanawiać, czy wysokie ciśnienie krwi jest bardziej powszechne wśród amerykańskich statystyk niż wśród brytyjskich;
  3. Na koniec możemy się zastanawiać, czy odsetek statystyk z wysokim ciśnieniem krwi jest równy odsetkowi statystów z USA, z którymi rozmawialiśmy. Odnosi się to do marginalnych proporcji tabeli. Nie są one drukowane domyślnie w R, ale możemy je w ten sposób uzyskać (zauważ, że w tym przypadku są dokładnie takie same):

    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 

Jak powiedziałem, tradycyjne podejście omówione w wielu podręcznikach polega na określeniu, który test zastosować, na podstawie tego, czy dane są „sparowane”, czy nie. Ale to bardzo mylące, czy ta tabela awaryjna jest „sparowana”? Jeśli porównamy proporcję z wysokim ciśnieniem krwi między statystami z USA i Wielkiej Brytanii, porównamy dwie proporcje (aczkolwiek tej samej zmiennej) zmierzone dla różnych grup ludzi. Z drugiej strony, jeśli chcesz porównać proporcję z wysokim ciśnieniem krwi do proporcji w USA, porównujesz dwie proporcje (aczkolwiek różnych zmiennych) mierzone dla tego samego zestawu osób. Te dane są oba„sparowane” i „niesparowane” jednocześnie (choć w odniesieniu do różnych aspektów danych). To prowadzi do zamieszania. Aby uniknąć tego zamieszania, uważam, że powinieneś przemyśleć, jakie pytanie zadajesz. W szczególności, jeśli chcesz wiedzieć:

  1. Jeśli zmienne są niezależne: użyj testu chi-kwadrat.
  2. Jeśli proporcja z wysokim ciśnieniem krwi różni się w zależności od narodowości: użyj testu Z dla różnicy proporcji.
  3. Jeśli proporcje krańcowe są takie same: użyj testu McNemara.

Ktoś może się ze mną nie zgodzić, argumentując, że ponieważ tabela kontyngencji nie jest „sparowana”, test McNemara nie może być użyty do przetestowania równości marginalnych proporcji i że zamiast tego należy zastosować test chi-kwadrat. Ponieważ jest to punkt sporny, spróbujmy oba sprawdzić, czy wyniki mają 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%

Spróbujmy innego przykładu:

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

Tym razem test chi-kwadrat daje wartość p wynoszącą 1, co oznacza, że ​​proporcje brzeżne są tak równe, jak mogą być. Widzieliśmy jednak, że marginesowe proporcje nie są oczywiście równe, więc wynik ten nie ma sensu w świetle naszych danych. Z drugiej strony test McNemara daje wartość p wynoszącą około 0. Innymi słowy, jest bardzo mało prawdopodobne, aby uzyskać dane o marginalnych proporcjach tak dalekie od równości, jak te, jeśli naprawdę są one równe w populacji. Ponieważ nasze obserwowane proporcje krańcowe są dalekie od równości, ten wynik ma sens.

Fakt, że test chi-kwadrat daje wyniki, które nie mają sensu, biorąc pod uwagę nasze dane, sugeruje, że jest coś złego w stosowaniu testu chi-kwadrat tutaj. Oczywiście fakt, że test McNemara dostarczył sensownych wyników, nie dowodzi, że jest on prawidłowy, mógł być po prostu zbiegiem okoliczności, ale test chi-kwadrat jest wyraźnie błędny.

Zobaczmy, czy możemy przeanalizować argument, dlaczego test McNemara może być właściwy. Użyję trzeciego zestawu danych:

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 

(Aby użyć prop.test()do przetestowania proporcji marginalnych, musiałem ręcznie wprowadzić liczby „sukcesów” i całkowitą liczbę „prób”, ale z ostatniego wiersza wyniku widać, że proporcje są poprawne.) Sugeruje to, że biorąc pod uwagę ilość danych, jest mało prawdopodobne, aby proporcje krańcowe były tak dalekie od równości, gdyby faktycznie były równe.

Czy ten test jest ważny? Występują tutaj dwa problemy: test zakłada, że ​​mamy 800 danych, podczas gdy w rzeczywistości mamy tylko 400. Ten test również nie bierze pod uwagę, że te dwie proporcje nie są niezależne, w tym sensie, że zostały zmierzone na tych samych ludziach.


% wysoki BP: 190+15400% US: 190+60400
1904001560π=.5poniżej zera. Taki był wgląd McNemara. W rzeczywistości test McNemara jest zasadniczo tylko dwumianowym testem tego, czy obserwacje mogą równie dobrze wpaść do tych dwóch komórek:
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 

W tej wersji wykorzystywane są tylko obserwacje informacyjne i nie są one liczone dwukrotnie. Wartość p jest tutaj znacznie mniejsza, 0,0000001588, co często ma miejsce, gdy bierze się pod uwagę zależność danych. Oznacza to, że ten test jest silniejszy niż test Z różnicy proporcji. Widzimy ponadto, że powyższa wersja jest zasadniczo taka sama jak test McNemara:

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

Jeśli nieokreślalność jest myląca, test McNemara zazwyczaj, a w R, podnosi wynik do kwadratu i porównuje go z rozkładem chi-kwadrat, który nie jest dokładnym testem jak dwumian powyżej:

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

Tak więc, jeśli chcesz sprawdzić, czy marginesowe proporcje tabeli zdarzeń są równe, test McNemara (lub dokładny test dwumianowy obliczony ręcznie) jest poprawny. Wykorzystuje tylko istotne informacje bez nielegalnego wykorzystywania jakichkolwiek danych dwukrotnie. Nie tylko „dzieje się”, aby uzyskać wyniki, które mają sens z danymi.

Nadal uważam, że próba ustalenia, czy tabela awaryjna jest „sparowana”, nie jest pomocna. Sugeruję użycie testu, który odpowiada pytaniu o dane.

gung - Przywróć Monikę
źródło
1
Masz mój głos. :)
Alexis,
11

χ2)χ2)


χ2)

Na przykład, możesz mieć próbkę 20 statystyk z USA i oddzielną niezależną próbę 37 statystyk z Wielkiej Brytanii i mierzyć, czy ci statystycy są nadciśnieniem, czy normotensją. Twoja hipoteza zerowa jest taka, że ​​zarówno statystycy z Wielkiej Brytanii, jak i ze Stanów Zjednoczonych mają takie samo podstawowe prawdopodobieństwo bycia nadciśnieniem (tj. Że wiedza, czy ktoś pochodzi z USA, czy z Wielkiej Brytanii, nie mówi nic o prawdopodobieństwie nadciśnienia). Oczywiście możliwe jest, że możesz mieć taki sam rozmiar próbki w każdej grupie, ale to nie zmienia faktu, że próbki są niezależne (tj. Niesparowane ).


χ2)

Na przykład, możesz mieć indywidualnie dobrane dane z badania kontroli przypadków, pobrane z międzynarodowej konferencji statystycznej, na której 30 statystystów z nadciśnieniem (przypadki) i 30 statystyk bez nadciśnienia (kontrola), którzy są indywidualnie dopasowani pod względem wieku, płci, BMI i statusu palenia do konkretnych przypadków), są poddawane ocenie z perspektywy czasu pobytu zawodowego w Wielkiej Brytanii w porównaniu z pobytem w innym miejscu. Wartość zerowa polega na tym, że prawdopodobieństwo zamieszkiwania w Wielkiej Brytanii wśród przypadków jest takie samo, jak prawdopodobieństwo przebywania w Wielkiej Brytanii jako kontroli (tzn. Że wiedza o swoim nadciśnieniu nie mówi nic o historii pobytu w Wielkiej Brytanii).

rsχ2)=[(r-s)-1]2)(r+s)

Anto, w twoim przykładzie, twoje dane są sparowane (ta sama zmienna zmierzona dwukrotnie u tego samego pacjenta), a zatem test McNemara jest odpowiednim wyborem testu na powiązanie.

[Gung i ja nie zgadzaliśmy się przez jakiś czas na temat wcześniejszej odpowiedzi.]

Cytowane odniesienia
„Zakładając, że nadal jesteśmy zainteresowani porównywaniem proporcji, co możemy zrobić, jeśli nasze dane zostaną sparowane, a nie niezależne? ... W tej sytuacji stosujemy test McNemara.” - Pagano i Gauvreau, Zasady biostatystyki , 2. miejsce wydanie, strona 349. [ Podkreślenie dodane ]

„Wyrażenie to jest lepiej znane jako statystyki testu McNemar z parami dopasowanymi (McNemar, 1949) i stanowiło podstawę analizy par dopasowanych ”. - Rothman, Grenlandia i Lash. Współczesna epidemiologia , strona 286. [ Podkreślenie dodane ]

„Sparowany test t i powtarzane miary analizy wariancji można wykorzystać do analizy eksperymentów, w których badana zmienna może być mierzona w skali interwałowej (i spełnia inne założenia wymagane w metodach parametrycznych). Co z eksperymentami, analogicznymi do tych w rozdziale 5, gdzie wynik mierzy się w skali nominalnej ? Problem ten często pojawia się, gdy pyta się, czy dana osoba zareagowała na leczenie, lub porównuje wyniki dwóch różnych testów diagnostycznych, które zostały zaklasyfikowane jako pozytywne lub negatywne u tych samych osób Opracujemy procedurę analizy takich eksperymentów, test Mcnemara na zmiany , w kontekście jednego z takich badań. ”- Glanz, Primer of Biostatisticsχ2)

„W przypadku dopasowanych danych kontroli przypadków z jedną kontrolą na przypadek wynikowa analiza jest prosta, a odpowiednim testem statystycznym jest test McNemara chi-kwadrat ... zauważ, że do obliczenia zarówno ilorazu szans, jak i statystyki, jedyni uczestnicy to pary, które różnią się pod względem ekspozycji , tj. pary, w których skrzynka została odkryta, ale kontrola nie została ujawniona, oraz te, w których kontrola została ujawniona, ale obudowa nie została ujawniona. ”- Elwood. Krytyczna ocena badań epidemiologicznych i badań klinicznych , 1. wydanie, strony 189–190. [ Podkreślenie dodane ]

Alexis
źródło
7

Rozumiem test McNemara w następujący sposób: służy on do sprawdzenia, czy interwencja znacząco wpłynęła na wynik binarny. W twoim przykładzie grupa badanych jest sprawdzana pod kątem infekcji, a odpowiedź jest rejestrowana jako tak lub nie. Wszyscy uczestnicy otrzymują następnie jakąś interwencję, powiedzmy antybiotyk. Następnie są ponownie sprawdzane pod kątem infekcji, a odpowiedź rejestrowana jest ponownie jako tak / nie. (Pary) odpowiedzi można umieścić w tabeli zakaźnej:

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

Test McNemara byłby do tego odpowiedni.

Z tabeli jasno wynika, że ​​znacznie więcej osób przekształciło się z „tak” na „nie” (220 / (220 + 13) lub 94,4%) niż z „nie” na „tak” (35 / (1157 + 35) lub 2,9 %). Biorąc pod uwagę te proporcje, wartość P McNemara (4,901e-31) wydaje się bardziej poprawna niż wartość P chi-kwadrat (0,04082).

Jeśli tabela zakaźności przedstawia 2 różne infekcje (pytanie 2), to bardziej odpowiednie byłoby Chi-kwadrat.

Twoje trzecie pytanie jest niejednoznaczne: najpierw podajesz odniesienie Y w t2 do Y w t1, ale w tabeli piszesz „X” w t1 vs Y w t2. Y w t2 vs Y w t1 jest takie samo jak twoje pierwsze pytanie, dlatego potrzebny jest test McNemara, podczas gdy X w t1 i Y w t2 wskazują, że różne zdarzenia są porównywane, a zatem chi-kwadrat będzie bardziej odpowiedni.

Edycja: Jak wspomniała Alexis w komentarzu, dopasowane dane sterujące wielkością liter są również analizowane przez test McNemara. Na przykład do badania rekrutuje się 1425 pacjentów z rakiem, a dla każdego pacjenta rekrutuje się również dopasowaną kontrolę. Wszystkie te (1425 * 2) są sprawdzane pod kątem infekcji. Wyniki każdej pary można wyświetlić w podobnej tabeli:

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

Jaśniej:

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

Pokazuje, że znacznie częściej pacjent z rakiem miał infekcję, a kontrola nie, niż odwrotnie. Jego znaczenie można sprawdzić za pomocą testu McNemara.

Jeśli ci pacjenci i kontrole nie były dopasowane i niezależne, można tylko wykonać poniższą tabelę i wykonać test chisquare:

            Infection
            No    Yes
Cancer  No  1377   48
        Yes 1192  233

Jaśniej:

                No infection        Infection
No cancer       1377                48
Cancer          1192                233

Pamiętaj, że te liczby są takie same jak marginesy pierwszej tabeli:

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

To musi być powód użycia terminów takich jak „częstotliwości krańcowe” i „krańcowa jednorodność” w teście McNemara.

Co ciekawe, funkcja addmargins może również pomóc zdecydować, którego testu użyć. Jeśli suma całkowita jest o połowę mniejsza niż liczba obserwowanych osób (co wskazuje, że przeprowadzono parowanie), wówczas stosuje się test McNemara, w przeciwnym razie właściwy jest test chisquare:

> 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

Kody R dla powyższych tabel pochodzą z powyższych odpowiedzi:

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

Poniższy pseudokod może również pomóc w rozpoznaniu różnicy:

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

Edytować:

mid-pciekawa jest odmiana testowania McNemara ( https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3716987/ ). Porównuje bi ctabeli awaryjnej, tj. Liczba, która zmieniła się z tak na nie w porównaniu z liczbą, która zmieniła się z nie na tak (ignorując liczbę tych, którzy pozostali tak lub nie przez badanie). Można to wykonać za pomocą testu dwumianowego w pythonie, jak pokazano na https://gist.github.com/kylebgorman/c8b3fb31c1552ecbaafb

Może to być równoważne, binom.test(b, b+c, 0.5)ponieważ w przypadkowej zmianie można oczekiwać, bże będzie równa c.

rnso
źródło
3
Nie tylko do analizy interwencyjnej: służy również do analizy dopasowanych danych kontroli przypadków w sensie obserwacyjnym.
Alexis,
Biorąc pod uwagę opis / konfigurację przed tabelą dla Q3, podejrzewam, że „X” to literówka, ale to był dobry haczyk i jest to użyteczny wkład w wątek +1.
gung - Przywróć Monikę
@mso Edycja Q3. jest X w t1! w przeciwnym razie, jak mówisz, nie różni się od Q1. to Q ma ponad rok i jest zaskoczony, że ktoś do niego wraca z tymi samymi myślami, które mnie zdezorientowały. Podążam z dużym zainteresowaniem!
Anto
Przepraszam, PO wyjaśnił Q3, najwyraźniej są to 2 różne choroby w 2 różnych czasach. Znowu dobry chwyt.
gung - Przywróć Monikę