Apa perbedaan antara tes McNemar dan tes chi-squared, dan bagaimana Anda tahu kapan harus menggunakan masing-masing?

30

Saya telah mencoba membaca sumber-sumber yang berbeda, tetapi saya masih belum jelas tes apa yang cocok untuk kasus saya. Ada tiga pertanyaan berbeda yang saya tanyakan tentang dataset saya:

  1. Subjek diuji untuk infeksi dari X pada waktu yang berbeda. Saya ingin tahu apakah proporsi positif untuk X setelah terkait dengan proporsi positif untuk X sebelumnya:

                 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
    

    Dari pemahaman saya, karena data adalah ukuran berulang, saya harus menggunakan tes McNemar, yang menguji apakah proporsi positif untuk X telah berubah.

    Tetapi pertanyaan saya tampaknya memerlukan uji chi-squared - menguji apakah proporsi positif untuk X setelah dikaitkan dengan proporsi positif untuk X sebelumnya.

    Saya bahkan tidak yakin apakah saya memahami perbedaan antara tes McNemar dan chi-square dengan benar. Apa yang akan menjadi tes yang tepat jika pertanyaan saya adalah, "Apakah proporsi subjek yang terinfeksi X setelah berbeda dari sebelumnya?"

  2. Kasus serupa, tetapi di mana daripada sebelum dan sesudah, saya mengukur dua infeksi berbeda pada satu titik waktu:

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

    Tes mana yang tepat di sini jika pertanyaannya adalah "Apakah proporsi yang lebih tinggi dari satu infeksi berhubungan dengan proporsi Y yang lebih tinggi"?

  3. Jika pertanyaan saya adalah, "Apakah infeksi Y pada waktu t2 terkait dengan infeksi X pada waktu t1?", Tes mana yang sesuai?

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

Saya menggunakan tes McNemar dalam semua kasus ini, tetapi saya ragu apakah itu tes yang tepat untuk menjawab pertanyaan saya. Saya menggunakan R. Bisakah saya menggunakan binomial glmsaja? Apakah itu analog dengan tes chi-squared?

Anto
sumber
1
Apakah Anda mencoba membaca stats.stackexchange.com/questions/tagged/mcnemar-test topik di sini pada tes Mcnemar?
ttnphns
Apa yang Anda maksud dengan "hubungan antara dua probabilitas"?
Michael M
@ttnphns saya memang telah melalui mereka, tetapi tidak dapat memformulasikannya kembali ke pertanyaan saya. Setelah berpikir lebih lanjut, sepertinya saya bisa menjawab dua pertanyaan berdasarkan pada Q1: Chi-sq akan memberi tahu saya jika proporsi + ve X setelah dikaitkan dengan proporsi + ve X sebelumnya sementara Mcnemar akan memberi tahu saya jika telah ada perubahan proporsi. Apakah saya benar?
Anto
Anda tidak dapat menggunakan standar -independensi di sini karena setiap orang diwakili oleh dua nilai yang menyebabkan sampel non-acak. χ2
Michael M
Terima kasih @MichaelMayer. Saya menggunakan mcnemar sampai saya melihat ini . Di mana Mcnemar dijelaskan, dia mengatakan apa yang dilakukan chi-sq akan menjawab dalam kasus yang sama. Saya cukup bingung. Cara setiap tes memberi tahu kami dibingkai pada halaman ini, saya harus menggunakan Chi-sq tetapi karena mereka mengukur pada subjek yang sama, saya harus memilih McNemar!
Anto

Jawaban:

48

Sangat disayangkan bahwa tes McNemar sangat sulit bagi orang untuk mengerti. Saya bahkan memperhatikan bahwa di bagian atas halaman Wikipedia itu menyatakan bahwa penjelasan pada halaman tersebut sulit dipahami orang. Penjelasan singkat yang khas untuk uji McNemar adalah bahwa itu adalah: 'tes chi-kuadrat dalam-mata pelajaran', atau bahwa itu adalah 'tes homogenitas marginal dari tabel kontingensi'. Saya menemukan keduanya tidak sangat membantu. Pertama, tidak jelas apa yang dimaksud dengan 'dalam-subyek chi-kuadrat', karena Anda selalu mengukur subjek Anda dua kali (satu kali pada setiap variabel) dan mencoba menentukan hubungan antara variabel-variabel tersebut. Selain itu, 'homogenitas marginal' (Tragisnya, bahkan jawaban ini mungkin membingungkan. Jika ya, mungkin membantu untuk membaca upaya kedua saya di bawah ini.)

Mari kita lihat apakah kita dapat bekerja melalui proses penalaran tentang contoh teratas Anda untuk melihat apakah kita dapat memahami apakah (dan jika demikian, mengapa) uji McNemar sesuai. Anda telah menempatkan:

masukkan deskripsi gambar di sini

Ini adalah tabel kontingensi, jadi ini berkonotasi dengan analisis chi-squared. Selain itu, Anda ingin memahami hubungan antara dan A f t e r , dan tes chi-squared memeriksa hubungan antara variabel, jadi pada pandangan pertama sepertinya tes chi-squared harus analisis yang menjawab pertanyaan Anda. BeforeAfter

Namun, perlu ditunjukkan bahwa kami juga dapat menyajikan data ini seperti:

masukkan deskripsi gambar di sini

Ketika Anda melihat data dengan cara ini, Anda mungkin berpikir Anda bisa melakukan tua biasa -test. Tapi uji t tidak tepat. Ada dua masalah: Pertama, karena setiap baris mencantumkan data yang diukur dari subjek yang sama, kami tidak ingin melakukan antar-subyek t -tes, kami ingin melakukan dalam-subyek t -tes. Kedua, karena data ini didistribusikan sebagai binomial , varians adalah fungsi dari mean. Ini berarti bahwa tidak ada ketidakpastian tambahan yang perlu dikhawatirkan begitu rata-rata sampel telah diperkirakan (yaitu, Anda tidak perlu memperkirakan varians selanjutnya), sehingga Anda tidak harus merujuk pada distribusi t , Anda dapat menggunakan ztttttzdistribusi. (Untuk lebih lanjut tentang ini, mungkin membantu untuk membaca jawaban saya di sini: Tes - vs tes χ 2.zχ2 ) Dengan demikian, kita perlu tes dalam-subyek -tes. Artinya, kita perlu uji dalam-subyek tentang kesetaraan proporsi. z

Kita telah melihat bahwa ada dua cara berpikir dan menganalisis data yang berbeda ini (didorong oleh dua cara berbeda dalam memandang data). Jadi kita harus memutuskan jalan mana yang harus kita gunakan. Uji chi-squared menilai apakah dan A f t e r independen. Artinya, adalah orang-orang yang sakit sebelumnya lebih cenderung sakit setelahnya daripada orang-orang yang tidak pernah sakit. Sangat sulit untuk melihat bagaimana hal itu tidak akan terjadi mengingat pengukuran ini dinilai pada subjek yang sama. Jika Anda mendapatkan hasil yang tidak signifikan (seperti yang hampir Anda lakukan) itu hanya akan menjadi kesalahan tipe II. Alih-alih apakah B e fBefHaireSEBUAHfter dan A f t e r independen, Anda hampir pasti ingin tahu apakah karya pengobatan (pertanyaan chi-kuadrat tidak jawaban). Ini sangat mirip dengan sejumlah studi pengobatan vs kontrol di mana Anda ingin melihat apakah rata-rata sama, kecuali bahwa dalam hal ini pengukuran Anda adalah ya / tidak dan mereka berada di dalam mata pelajaran. Pertimbangkan t yang lebih khasBefHaireSEBUAHftertSituasi -test dengan tekanan darah diukur sebelum dan setelah beberapa perawatan. Mereka yang bp-nya di atas rata-rata sampel Anda sebelumnya hampir pasti akan cenderung berada di antara bps yang lebih tinggi sesudahnya, tetapi Anda tidak ingin tahu tentang konsistensi peringkat, Anda ingin tahu apakah perawatan itu mengarah pada perubahan rata-rata bp . Situasi Anda di sini langsung analog. Khususnya, Anda ingin menjalankan dalam-mata pelajaran -uji kesetaraan proporsi. Itulah tes McNemar.z

Jadi, setelah menyadari bahwa kami ingin melakukan tes McNemar, bagaimana cara kerjanya? Menjalankan antar-subyek -test itu mudah, tetapi bagaimana kita menjalankan versi di dalam-subyek? Kunci untuk memahami bagaimana melakukan tes proporsi subjek dalam diri adalah dengan memeriksa tabel kontingensi, yang menguraikan proporsi:z
JelasBeforeproporsi yang jumlah baris dibagi dengan total keseluruhan, danAfterproporsi adalah jumlah kolom dibagi dengan total keseluruhan. Ketika kita melihat tabel kontingensi kita dapat melihat bahwa itu adalah, misalnya:Sebelum proporsi ya=220+13

SEBUAHfterNHaiYestHaitSebuahlBefHaireNHai1157351192Yes22013233tHaitSebuahl1377481425
BefHaireSEBUAHfter
Yang menarik untuk dicatat di sini adalah bahwa13pengamatan adalah ya sebelum dan sesudahnya. Mereka berakhir sebagai bagian dari kedua proporsi, tetapi sebagai hasil dari kedua perhitungan, mereka tidak menambahkan informasi yang berbeda tentang perubahan proporsi ya. Apalagi mereka dihitung dua kali, yang tidak valid. Demikian juga, total keseluruhan berakhir di kedua perhitungan dan tidak menambahkan informasi yang berbeda. Dengan mendekomposisi proporsi kita dapat mengenali bahwa satu-satunya informasi yang berbeda tentang proporsi sebelum dan sesudah ya ada di220dan35, jadi itu adalah angka yang perlu kita analisis. Ini adalah wawasan McNemar. Selain itu, ia menyadari bahwa di bawah nol, ini adalah uji binomial220/
Sebelum proporsi ya=220+131425,Setelah proporsi ya=35+131425
1322035 dengan proporsi nol dari 0,5 . (Ada formulasi setara yang didistribusikan sebagai chi-squared, yang merupakankeluaranapa.) 220/(220+35).5R

Ada diskusi lain tentang uji McNemar, dengan ekstensi ke tabel kontingensi lebih besar dari 2x2, di sini .


Berikut ini adalah Rdemo dengan data Anda:

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 

Jika kami tidak memperhitungkan sifat subyek dalam data Anda, kami akan memiliki tes yang sedikit kurang kuat tentang persamaan proporsi:

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


Inilah jawaban atas pertanyaan konkret Anda:

  1. Analisis yang benar adalah tes McNemar (seperti dibahas secara luas di atas).
  2. Versi ini lebih rumit, dan frasa "apakah proporsi yang lebih tinggi dari satu infeksi berhubungan dengan proporsi Y yang lebih tinggi" adalah ambigu. Ada dua pertanyaan yang mungkin:

    • Sangat masuk akal untuk ingin tahu apakah pasien yang mendapatkan salah satu infeksi cenderung mendapatkan yang lain, dalam hal ini Anda akan menggunakan uji independensi chi-square. Pertanyaan ini menanyakan apakah kerentanan terhadap dua infeksi yang berbeda itu independen (mungkin karena mereka dikontrak melalui jalur fisiologis yang berbeda) atau tidak (mungkin mereka dikontrak karena sistem kekebalan yang umumnya lemah).
    • Juga masuk akal untuk mengetahui apa yang harus diketahui jika proporsi pasien yang sama cenderung mendapatkan kedua infeksi, dalam hal ini Anda akan menggunakan tes McNemar. Pertanyaannya di sini adalah apakah infeksi itu sama-sama ganas.
  3. Karena ini sekali lagi infeksi yang sama, tentu saja mereka akan berhubungan. Saya mengetahui bahwa versi ini bukan sebelum dan sesudah perawatan, tetapi hanya pada beberapa waktu kemudian. Dengan demikian, Anda bertanya apakah tingkat infeksi latar belakang berubah secara organik, yang lagi-lagi merupakan pertanyaan yang masuk akal. Bagaimanapun, analisis yang benar adalah tes McNemar.
    Sunting: Tampaknya saya salah mengartikan pertanyaan ketiga Anda, mungkin karena kesalahan ketik. Saya sekarang menafsirkannya sebagai dua infeksi berbeda pada dua titik waktu terpisah. Di bawah interpretasi ini, tes chi-squared akan sesuai.
gung - Reinstate Monica
sumber
@Alexis Sejauh yang saya bisa tahu, Anda dan gung sepertinya saling berbicara satu sama lain. Bahkan apa yang disebut uji "sampel tidak berpasangan" atau "sampel independen", atau "sampel satu arah" atau "sampel independen ANOVA", sebenarnya memerlukan data berpasangan dalam pengertian gung: untuk setiap subjek, Anda harus merekam kedua kelompok kategori variabel keanggotaan dan variabel hasil kontinu . (Jika variabel keanggotaan grup memiliki dua level, kami biasanya menggunakan uji-t tidak berpasangan; untuk level 3+ Anda memerlukan ANOVA satu arah).
Silverfish
2
Saat menjelaskan tes mana yang akan digunakan, saya menunjukkan kedua cara untuk melihatnya - jika Anda memiliki pengamatan variabel kontinu, satu untuk setiap mata pelajaran, dan mata pelajaran berasal dari 2 (atau 3+) kelompok dan Anda tertarik pada perbedaan antara kelompok, kemudian gunakan uji-t sampel independen (atau ANOVA satu arah). Kemudian konfirmasikan pilihan Anda dengan melihat tabel data Anda: apakah Anda memiliki, untuk setiap subjek, dua potong informasi: kategori untuk keanggotaan grup dan variabel kontinu. Kita bahkan dapat membalikkan keadaan dan mengatakan uji-t adalah semacam uji hubungan antara variabel biner dan kontinu.
Silverfish
2
Uji-berpasangan (atau sampel berkorelasi ANOVA) digunakan jika, untuk setiap subjek, Anda memiliki dua (atau 3+) bacaan berkelanjutan, diambil dalam kondisi yang berbeda, dan Anda ingin menguji perbedaan antara kondisi. Ini "berpasangan" dalam arti yang berbeda. Namun dalam pertanyaan ini, kami memiliki dua variabel kategori yang direkam untuk setiap mata pelajaran. Melihat tabel data, nilai-nilai yang terekam dari variabel-variabel kategori tersebut harus berpasangan. Tetapi ini tidak berarti bahwa desain penelitian itu sendiri berpasangan. Ini membingungkan (seperti catatan gung). Tetapi jika Anda tahu desain studi Anda, ini bisa menyelesaikannya (seperti catatan alexis)
Silverfish
@Silverfish Jika Anda memiliki dua pengamatan (dari variabel nominal yang sama) yang dilakukan pada setiap subjek, dalam arti apa itu bukan desain berpasangan?
Alexis
1
@Alexis Itu "dari variabel yang sama" yang merupakan kunci - dan berpotensi membingungkan. Anda mungkin tahu itu mewakili variabel yang sama, meskipun dalam kondisi yang berbeda atau pada waktu yang berbeda, tetapi tergantung pada cara kami meletakkan tabel data, mereka mungkin tampak dicatat sebagai variabel yang berbeda (misalnya "sebelum" dan "setelah" yang terpisah. variabel).
Silverfish
22

Yah, sepertinya saya sudah membuat hash ini. Izinkan saya mencoba menjelaskan ini lagi, dengan cara yang berbeda dan kita akan melihat apakah ini dapat membantu menjernihkan semuanya.

Cara tradisional untuk menjelaskan uji McNemar vs uji chi-squared adalah untuk menanyakan apakah data "dipasangkan" dan untuk merekomendasikan tes McNemar jika data dipasangkan dan uji chi-kuadrat jika data "tidak berpasangan". Saya telah menemukan bahwa ini menyebabkan banyak kebingungan (utas ini menjadi contoh!). Sebagai gantinya, saya telah menemukan bahwa paling membantu untuk fokus pada pertanyaan yang Anda coba tanyakan , dan untuk menggunakan tes yang cocok dengan pertanyaan Anda. Untuk membuat ini lebih konkret, mari kita lihat skenario buatan:

Anda berjalan di sekitar konferensi statistik dan untuk setiap ahli statistik yang Anda temui, Anda mencatat apakah mereka berasal dari AS atau Inggris. Anda juga merekam apakah mereka memiliki tekanan darah tinggi atau tekanan darah normal.

Berikut datanya:

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

Pada titik ini, penting untuk mencari tahu pertanyaan apa yang ingin kita tanyakan dari data kita. Ada tiga pertanyaan berbeda yang bisa kami tanyakan di sini:

  1. Kami mungkin ingin tahu apakah variabel kategori BPdan Nationalityterkait atau independen;
  2. Kita mungkin bertanya-tanya apakah tekanan darah tinggi lebih umum di kalangan ahli statistik AS daripada di antara para ahli statistik Inggris;
  3. Akhirnya, kita mungkin bertanya-tanya apakah proporsi ahli statistik dengan tekanan darah tinggi sama dengan proporsi ahli statistik AS yang kita ajak bicara. Ini mengacu pada proporsi marginal dari tabel. Ini tidak dicetak secara default di R, tetapi kita bisa mendapatkannya (perhatikan bahwa, dalam hal ini, mereka persis sama):

    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 

Seperti yang saya katakan, pendekatan tradisional, yang dibahas dalam banyak buku teks, adalah menentukan tes mana yang akan digunakan berdasarkan apakah data "dipasangkan" atau tidak. Tapi ini sangat membingungkan, apakah tabel kontingensi ini "berpasangan"? Jika kami membandingkan proporsi dengan tekanan darah tinggi antara ahli statistik AS dan Inggris, Anda membandingkan dua proporsi (walaupun dari variabel yang sama) diukur pada set orang yang berbeda. Di sisi lain, jika Anda ingin membandingkan proporsi dengan tekanan darah tinggi dengan proporsi AS, Anda membandingkan dua proporsi (walaupun variabel yang berbeda) diukur pada kelompok orang yang sama. Data-data ini baik"berpasangan" dan "tidak berpasangan" pada saat yang sama (meskipun berkenaan dengan berbagai aspek data). Ini menyebabkan kebingungan. Untuk menghindari kebingungan ini, saya berpendapat bahwa Anda harus memikirkan pertanyaan yang Anda tanyakan. Khususnya, jika Anda ingin tahu:

  1. Jika variabel independen: gunakan uji chi-squared.
  2. Jika proporsi dengan tekanan darah tinggi berbeda menurut kebangsaan: gunakan z-test untuk perbedaan proporsi.
  3. Jika proporsi marjinalnya sama: gunakan uji McNemar.

Seseorang mungkin tidak setuju dengan saya di sini, dengan alasan bahwa karena tabel kontingensi tidak "berpasangan", uji McNemar tidak dapat digunakan untuk menguji kesetaraan proporsi marjinal dan bahwa uji chi-kuadrat harus digunakan sebagai gantinya. Karena ini adalah titik pertikaian, mari kita coba keduanya untuk melihat apakah hasilnya masuk akal:

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%

Mari kita coba contoh lain:

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

Kali ini, uji chi-squared memberikan nilai-p 1, yang berarti bahwa proporsi marjinal sama dengan yang mereka bisa. Tetapi kami melihat bahwa proporsi marginal sangat jelas tidak sama, sehingga hasil ini tidak masuk akal mengingat data kami. Di sisi lain, uji McNemar menghasilkan nilai-p sekitar 0. Dengan kata lain, sangat tidak mungkin untuk mendapatkan data dengan proporsi marjinal sejauh kesetaraan seperti ini, jika mereka benar-benar sama dalam populasi. Karena proporsi marjinal kami yang diamati jauh dari sama, hasil ini masuk akal.

Fakta bahwa uji chi-squared menghasilkan hasil yang tidak masuk akal mengingat data kami menunjukkan ada yang salah dengan menggunakan uji chi-squared di sini. Tentu saja, fakta bahwa tes McNemar memberikan hasil yang masuk akal tidak membuktikan bahwa itu valid, mungkin hanya kebetulan, tetapi tes chi-squared jelas salah.

Mari kita lihat apakah kita bisa membahas argumen mengapa tes McNemar mungkin yang benar. Saya akan menggunakan dataset ketiga:

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 

(Untuk menggunakan prop.test()untuk menguji proporsi marjinal, saya harus memasukkan angka 'keberhasilan' dan jumlah total 'percobaan' secara manual, tetapi Anda dapat melihat dari baris terakhir dari output bahwa proporsinya benar.) Ini menunjukkan bahwa tidak mungkin untuk mendapatkan proporsi marjinal sejauh ini dari kesetaraan jika mereka benar-benar sama, mengingat jumlah data yang kami miliki.

Apakah tes ini valid? Ada dua masalah di sini: Tes ini meyakini kita memiliki 800 data, padahal sebenarnya kita hanya memiliki 400 data. Tes ini juga tidak memperhitungkan bahwa dua proporsi ini tidak independen, dalam arti bahwa mereka diukur pada orang yang sama.


% BP tinggi: 190+15400% AS: 190+60400
1904001560π=.5di bawah nol. Itu adalah wawasan McNemar. Faktanya, tes McNemar pada dasarnya hanya tes binomial apakah pengamatan sama-sama jatuh ke dalam dua sel:
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 

Dalam versi ini, hanya pengamatan informatif yang digunakan dan tidak dihitung dua kali. Nilai p di sini jauh lebih kecil, 0,0000001588, yang sering terjadi ketika ketergantungan pada data diperhitungkan. Artinya, tes ini lebih kuat daripada uji-z perbedaan proporsi. Lebih jauh kita dapat melihat bahwa versi di atas pada dasarnya sama dengan tes 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

Jika non-identitas adalah membingungkan, tes McNemar biasanya, dan dalam R, kuadratkan hasilnya dan membandingkannya dengan distribusi chi-kuadrat, yang bukan tes yang tepat seperti binomial di atas:

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

Jadi, ketika Anda ingin memeriksa proporsi marginal dari tabel kontingensi adalah sama, tes McNemar (atau tes binomial yang tepat dihitung secara manual) benar. Hanya menggunakan informasi yang relevan tanpa secara ilegal menggunakan data apa pun dua kali. Itu tidak hanya 'terjadi' untuk menghasilkan hasil yang masuk akal dari data.

Saya terus percaya bahwa mencoba mencari tahu apakah tabel kontingensi "dipasangkan" tidak membantu. Saya sarankan menggunakan tes yang cocok dengan pertanyaan yang Anda tanyakan dari data.

gung - Reinstate Monica
sumber
1
Anda mendapat suara saya. :)
Alexis
11

χ2χ2


χ2

Misalnya, Anda mungkin memiliki sampel 20 ahli statistik dari AS, dan sampel independen terpisah dari 37 ahli statistik dari Inggris, dan memiliki ukuran apakah para ahli statistik ini hipertensi atau normotensi. Hipotesis nol Anda adalah bahwa ahli statistik Inggris dan AS memiliki kemungkinan dasar yang sama untuk menjadi hipertensi (yaitu mengetahui apakah seseorang berasal dari AS atau dari Inggris tidak memberi tahu siapa pun tentang kemungkinan hipertensi). Tentu saja mungkin bahwa Anda dapat memiliki ukuran sampel yang sama di setiap kelompok, tetapi itu tidak mengubah fakta sampel menjadi independen (yaitu tidak berpasangan ).


χ2

Misalnya, Anda mungkin memiliki data studi kasus-kontrol yang dicocokkan secara individu sampel dari konferensi ahli statistik internasional, di mana 30 ahli statistik dengan hipertensi (kasus) dan 30 ahli statistik tanpa hipertensi (kontrol; yang secara individual dicocokkan berdasarkan usia, jenis kelamin, BMI & status merokok untuk kasus-kasus tertentu), dinilai secara retrospektif untuk residensi profesional di Inggris versus residensi di tempat lain. Nolnya adalah bahwa probabilitas tinggal di Inggris di antara kasus-kasus adalah sama dengan probabilitas tinggal di Inggris sebagai kontrol (yaitu bahwa mengetahui status hipertensi seseorang tidak memberi tahu apa-apa tentang riwayat tinggal seseorang di Inggris).

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

Anto, dalam contoh Anda, data Anda dipasangkan (variabel yang sama diukur dua kali dalam subjek yang sama) dan karena itu tes McNemar adalah pilihan tes yang tepat untuk hubungan.

[gung dan aku tidak setuju untuk sementara waktu tentang jawaban sebelumnya.]

Referensi Dikutip
"Dengan asumsi bahwa kami masih tertarik untuk membandingkan proporsi, apa yang dapat kami lakukan jika data kami dipasangkan, daripada independen? ... Dalam situasi ini, kami menggunakan tes McNemar." - Pagano dan Gauvreau, Prinsip Biostatistik , 2nd edisi, halaman 349. [ Penekanan ditambahkan ]

"Ungkapan ini lebih dikenal sebagai statistik uji pasangan-berpasangan McNemar (McNemar, 1949), dan telah menjadi andalan analisis pasangan-cocok ." - Rothman, Greenland, & Lash. Epidemiologi Modern , halaman 286. [ Penekanan ditambahkan ]

"Uji t berpasangan dan pengukuran berulang dari analisis varian dapat digunakan untuk menganalisis eksperimen di mana variabel yang sedang dipelajari dapat diukur pada skala interval (dan memenuhi asumsi lain yang diperlukan dari metode parametrik). Bagaimana dengan eksperimen, analog dengan yang pada Bab 5, di mana hasilnya diukur pada skala nominal ? Masalah ini sering muncul ketika menanyakan apakah seseorang merespons pengobatan atau tidak ketika membandingkan hasil dua tes diagnostik berbeda yang diklasifikasikan positif atau negatif pada individu yang sama. Kami akan mengembangkan prosedur untuk menganalisis eksperimen semacam itu, uji Mcnemar untuk perubahan , dalam konteks satu studi tersebut. "- Glanz, Primer of Biostatisticsχ2

"Untuk data kontrol kasus yang cocok dengan satu kontrol per kasus , analisis yang dihasilkan sederhana, dan uji statistik yang sesuai adalah uji chi-squared McNemar ... perhatikan bahwa untuk perhitungan baik rasio odds dan statistik, satu-satunya kontributor adalah pasangan yang terpisah dalam pemaparan , yaitu pasangan di mana kasing terbuka tetapi kontrol tidak, dan pasangan di mana kontrol terbuka tetapi kasing tidak ada. "- Elwood. Penilaian Kritis Studi Epidemiologis dan Uji Klinis , edisi 1, halaman 189–190. [ Penekanan ditambahkan ]

Alexis
sumber
7

Pemahaman saya tentang tes McNemar adalah sebagai berikut: Digunakan untuk melihat apakah intervensi telah membuat perbedaan yang signifikan terhadap hasil biner. Dalam contoh Anda, sekelompok subjek diperiksa untuk infeksi dan responsnya dicatat sebagai ya atau tidak. Semua subjek kemudian diberi intervensi, misalnya obat antibiotik. Mereka kemudian diperiksa lagi untuk infeksi dan respon dicatat sebagai ya / tidak lagi. Respons (pasang) dapat diletakkan di tabel darurat:

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

Dan tes McNemar akan sesuai untuk ini.

Jelas dari tabel bahwa banyak lagi yang telah dikonversi dari 'ya' ke 'tidak' (220 / (220 + 13) atau 94,4%) daripada dari 'tidak' menjadi 'ya' (35 / (1157 + 35) atau 2,9 %). Mempertimbangkan proporsi ini, nilai P McNemar (4,901e-31) nampak lebih benar daripada nilai chi-square P (0,04082).

Jika tabel darurat mewakili 2 infeksi berbeda (pertanyaan 2), maka Chi-square akan lebih tepat.

Pertanyaan ke-3 Anda tidak jelas: Anda pertama-tama menyatakan Y terkait pada t2 dengan Y pada t1 tetapi dalam tabel Anda menulis 'X' pada t1 vs Y pada t2. Y pada t2 vs Y pada t1 sama dengan pertanyaan pertama Anda dan oleh karena itu diperlukan uji McNemar, sedangkan X pada t1 dan Y pada t2 menunjukkan peristiwa yang berbeda dibandingkan dan karenanya Chi-square akan lebih sesuai.

Sunting: Seperti disebutkan oleh Alexis dalam komentar, data kontrol kasus yang cocok juga dianalisis dengan uji McNemar. Misalnya, 1.425 pasien kanker direkrut untuk studi dan untuk setiap pasien kontrol yang cocok juga direkrut. Semua ini (1425 * 2) diperiksa untuk infeksi. Hasil dari setiap pasangan dapat ditunjukkan oleh tabel yang serupa:

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

Lebih jelas:

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

Ini menunjukkan bahwa jauh lebih sering bahwa pasien kanker memiliki infeksi dan kontrol tidak, bukan sebaliknya. Signifikansi dapat diuji dengan uji McNemar.

Jika pasien dan kontrol ini tidak cocok dan independen, orang hanya dapat membuat tabel berikut dan melakukan tes chisquare:

            Infection
            No    Yes
Cancer  No  1377   48
        Yes 1192  233

Lebih jelas:

                No infection        Infection
No cancer       1377                48
Cancer          1192                233

Perhatikan bahwa angka-angka ini sama dengan margin dari tabel pertama:

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

Itu harus menjadi alasan untuk penggunaan istilah seperti 'frekuensi marginal' dan 'homogenitas marginal' dalam tes McNemar.

Menariknya, fungsi addmargins juga dapat membantu memutuskan tes mana yang akan digunakan. Jika grand-total adalah setengah dari jumlah subyek yang diamati (menunjukkan pasangan telah dilakukan), maka uji McNemar berlaku, jika tidak uji chisquare sesuai:

> 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

Kode R untuk tabel di atas adalah dari jawaban di atas:

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

Pseudocode berikut juga dapat membantu mengetahui perbedaannya:

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

Edit:

mid-pvariasi tes McNemar peforming ( https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3716987/ ) menarik. Ini membandingkan bdan ctabel kontingensi, yaitu jumlah yang berubah dari ya menjadi tidak versus jumlah yang berubah dari tidak ke ya (mengabaikan jumlah mereka yang tetap ya atau tidak melalui penelitian). Itu dapat dilakukan dengan menggunakan uji binomial dalam python, seperti yang ditunjukkan di https://gist.github.com/kylebgorman/c8b3fb31c1552ecbaafb

Itu bisa sama dengan binom.test(b, b+c, 0.5)karena dalam perubahan acak, orang akan berharap bsama dengan c.

juga
sumber
3
Tidak hanya untuk analisis intervensi: ini digunakan untuk menganalisis data kontrol kasus yang cocok dalam arti pengamatan juga.
Alexis
Diberikan deskripsi / pengaturan sebelum tabel untuk Q3, saya curiga "X" adalah kesalahan ketik, tapi itu tangkapan yang bagus & ini adalah kontribusi yang berguna untuk utas +1.
gung - Reinstate Monica
@ juga Diedit Q3. itu X pada t1! jika tidak, seperti yang Anda katakan tidak berbeda dari Q1. Q ini sudah lebih dari setahun dan terkejut melihat seseorang kembali ke sana dengan pikiran yang sama yang membingungkan saya. Mengikuti dengan banyak minat!
Anto
Permintaan maaf saya, OP telah mengklarifikasi Q3, ternyata itu adalah 2 penyakit yang berbeda pada 2 waktu yang berbeda. Sekali lagi, tangkapan yang bagus.
gung - Reinstate Monica