McNemar'ın testi ile ki-kare testi arasındaki fark nedir ve bunların ne zaman kullanılacağını nasıl bildiniz?


30

Farklı kaynaklar üzerinde okumaya çalıştım, ancak benim durumumda hangi testin uygun olacağı konusunda hala net değilim. Veri setim hakkında sorduğum üç farklı soru var:

  1. Denekler, X'ten kaynaklanan enfeksiyonlar için farklı zamanlarda test edilir. X sonrası için pozitif oranlarının X öncesi için pozitif oranı ile ilişkili olup olmadığını bilmek istiyorum:

                 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

    Anladığım kadarıyla, veriler tekrarlanan ölçümler olduğu için, X için pozitif oranının değişip değişmediğini test eden McNemar testini kullanmalıyım.

    Ancak benim sorularım ki-kare testine ihtiyaç duyuyor gibi görünüyor - eğer X sonrası için pozitif olan oran önceki X için olan oran ile ilişkiliyse test etmek gerekiyor.

    McNemar'ın testi ile ki-kare arasındaki farkı doğru anladığımdan bile emin değilim. Sorum şu, “X'ten önce etkilenenlerin oranı öncekinden farklı mı?” Olsaydı doğru test ne olurdu?

  2. Benzer bir durum, ancak daha önce ve sonra yerine, aynı anda iki farklı enfeksiyonu ölçtüm:

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

    Eğer “Bir enfeksiyonun daha yüksek oranları, daha yüksek Y oranları ile ilgilidir” sorusu ise, hangi test tam burada olacaktır?

  3. Benim sorum, "t2 zamanında Y enfeksiyonu t1 zamanında X enfeksiyonu X ile ilişkili mi?" Olsaydı, hangi test uygun olurdu?

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

Tüm bu durumlarda McNemar'ın testini kullanıyordum, ancak sorularıma cevap vermek için doğru test olup olmadığına dair şüphelerim var. R kullanıyorum. glmBunun yerine binom kullanabilir miyim ? Ki-kare testine benzeyebilir mi?



Ne demek "iki olasılık arasındaki ilişki"?
Michael M

@ ttnphns Onlardan geçtim, ancak sorumu yeniden düzenleyemedi. Daha fazla düşündükten sonra, Q1'e dayanarak iki soruya cevap verebilirim: Chi-sq, daha sonra + ve X oranının, daha önce + ve X oranıyla ilişkili olup olmadığını, Mcnemar'ın olup olmadığını ... oranlarda değişiklik. Haklı mıyım
Anto

Bir standardı kullanamazsınız χ2 her kişinin tesadüfi olmayan örnekleri neden iki değer ile temsil edilir, çünkü burada bağımsızlık testinde gösterilebilir.
Michael M

@MichaelMayer teşekkürler. Ben görene kadar McNemar kullanıyordum bu . Mcnemar'ın açıklandığı yerde, aynı durumda Chi-sq yapmanın ne cevap vereceğini söylüyor. Ben çok şaşkınım. Her testin bize anlattığı şekilde bu sayfada çerçevelenmiş, Chi-sq için gitmeliyim, ancak aynı konuda ölçüm yaptıkları için McNemar'ı seçmeliyim!
Anto

Yanıtlar:


48

Maalesef McNemar'ın testinin insanlar tarafından anlaşılması çok zor. Wikipedia sayfasının en üstünde, sayfadaki açıklamanın insanların anlaması zor olduğunu belirtti. McNemar'ın testi için tipik kısa açıklama şudur: “denekler içinde ki-kare testi” veya “beklenmedik durum tablosunun marjinal homojenliği testi”. Bunların hiçbirini çok yararlı bulmuyorum. Birincisi, 'chi-kare' özneler içindeki nesnelerin ne anlama geldiği açık değildir, çünkü konunuzu daima iki kez (her değişkende bir kez) ölçüyorsunuz ve bu değişkenler arasındaki ilişkiyi belirlemeye çalışıyorsunuz. Ek olarak, 'marjinal homojenlik' (Trajik bir şekilde, bu cevap bile kafa karıştırıcı olabilir. Eğer öyleyse, aşağıdaki ikinci girişimi okumak için yardımcı olabilir .)

Bakalım, McNemar'ın testinin uygun olup olmadığını (ve eğer öyleyse) nedenini anlamak için en iyi örneğiniz hakkında bir akıl yürütme süreci boyunca çalışıp çalışamayacağımızı görelim. Sen koydun:

görüntü tanımını buraya girin

Bu bir beklenmedik durum tablosu, bu yüzden ki-kare analizini ifade eder. Üstelik arasındaki ilişkiyi anlamak istiyorum ve ABefore bu yüzden ilk bakışta o ki-kare testi olmalıdır gibi görünüyor, değişkenler arasında bir ilişki için, ve ki-kare testi kontrolleri sorunuzu cevaplayan analiz. After

Ancak, bu verileri şu şekilde de sunabileceğimizi belirtmekte fayda var:

görüntü tanımını buraya girin

Veri bu şekilde baktığınızda, normal bir eski yapabileceğini düşünebilir testinde gösterilebilir. Ama bir t -testi tam olarak doğru değil. İki sorunu vardır: Aynı konuya ölçülen her satır listeleri veri, bir arası konular yapmak istemem çünkü Birincisi, t -testi, biz içinde-konularda bir yapmak ister ki t testinde gösterilebilir. İkincisi, bu veriler binom olarak dağıtıldığından , varyans ortalamanın bir fonksiyonudur. Bu, örnek ortalamanın tahmin edilmesinden sonra endişelenecek başka bir belirsizlik olmadığı anlamına gelir (yani, daha sonra varyansı tahmin etmeniz gerekmez), bu nedenle başvurmanız gerekmeztttt dağılımını. ztzdağılımı. (Bu konuda daha fazla bilgi için, burada benim cevap okumak için yardımcı olabilir: testi .) Böylece, bir dahilinde-konularda gerekir z testinde gösterilebilir. Yani, oranların eşitliği konusunda bir denek içi testine ihtiyacımız var. -test vs. χ 2zχ2z

Bu verileri düşünmenin ve analiz etmenin iki farklı yolu olduğunu gördük (verilere iki farklı şekilde bakmanın yol açtığı). Bu yüzden hangi yolu kullanmamız gerektiğine karar vermeliyiz. Ki-kare testi değerlendirir olup ve A f t e r o r E ve A f t e rBeforeAfter bağımsızdır. Yani, daha önce hasta olan insanlar, daha sonra hiç hastalanmayan insanlardan daha sonra hasta olma olasılıkları daha yüksektir. Bu ölçümlerin aynı konularda değerlendirildiği düşünülürse, bunun nasıl olmayacağını görmek çok zor. Önemli bir sonuç alamadıysanız (neredeyse yaptığınız gibi) bu sadece tip II bir hata olur. B e f yerineBeforeAfter bağımsız, neredeyse kesinlikle tedavi çalışmaları (soru ki-kare cevabı yok) bilmek istiyorum. Bu, araçların eşit olup olmadığını görmek istediğiniz kontrol ve çalışma çalışmalarına çok benzer, ancak bu durumda ölçümleriniz evet / hayır ve denekler arasındadır. Daha tipik bir t düşününt-bir tedaviden önce ve sonra ölçülen kan basıncını test etme durumu. Bp önceden numune ortalamanızın üstünde olanlar neredeyse kesin olarak daha sonradan yüksek bps arasında olma eğilimindedir, ancak sıralamanın tutarlılığı hakkında bilmek istemezsiniz, tedavinin ortalama bp'de bir değişime yol açıp açmadığını bilmek istersiniz. . Buradaki durumun doğrudan benzer. Özellikle, oranlar eşitliği - testinde bir denek içinde çalıştırmak istersiniz . McNemar’ın test ettiği şey bu.z

Peki, McNemar'ın testini yapmak istediğimizi fark ettikten sonra nasıl çalışır? Denekler arasında - testi yapmak kolaydır, ancak denekler içinde bir versiyonunu nasıl çalıştırırız? Bir konu içi oran testinin nasıl yapıldığını anlamanın anahtarı , oranları parçalayan beklenmedik durum tablosunu incelemektir :z

AfterNoYestotalBeforeNo1157351192Yes22013233total1377481425
BeforeAfter
Before proportion yes=220+131425,After proportion yes=35+131425
1322035220/(220+35).5R

McNemar'ın testinde, 2x2'den büyük acil durum tablolarına uzatılan başka bir tartışma daha var .


İşte Rverilerinizle ilgili bir demo:

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 

Verilerinizin konu içi yapısını dikkate almasaydık, oranların eşitliği konusunda biraz daha az güçlü bir test yapardık:

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


Somut sorularınızın cevapları:

  1. Doğru analiz, McNemar'ın testidir (yukarıda yoğun şekilde tartışıldığı gibi).
  2. Bu versiyon daha zordur ve ifadesi "bir enfeksiyonun daha yüksek oranlarını yüksek Y oranlarıyla ilişkilendirir" ifadesi belirsizdir. İki olası soru var:

    • Enfeksiyonlardan birini alan hastaların diğerini alma eğiliminde olup olmadığını bilmek istemek oldukça mantıklıdır; bu durumda ki-kare bağımsızlık testini kullanırsınız. Bu soru, iki farklı enfeksiyona yatkınlığın bağımsız olup olmadığını (belki de farklı fizyolojik yollardan kasılmaları nedeniyle) bağımsız olup olmadığını (belki de genel olarak zayıf bir bağışıklık sistemi nedeniyle kasılmaları nedeniyle) soruyor.
    • Aynı zamanda, aynı orandaki hastaların her iki enfeksiyondan da etkilenip etkilenmediğini bilmek için mükemmel bir fikirdir, bu durumda McNemar'ın testini kullanırsınız. Buradaki soru, enfeksiyonların eşit derecede virülent olup olmadığı ile ilgilidir.
  3. Bu bir kez daha aynı enfeksiyon olduğu için, tabii ki bunlar bağlantılı olacaktır. Bu versiyonun bir tedaviden önce ve sonra olmadığını, ancak zamanın ilerleyen noktalarında olduğunu anlıyorum. Bu nedenle, geçmiş enfeksiyon oranlarının organik olarak değişip değişmediğini soruyorsunuz. Her halükarda, doğru analiz McNemar'ın testidir.
    Düzenleme: Belki de bir yazım hatası nedeniyle üçüncü sorunuzu yanlış yorumluyorum. Şimdi bunu iki ayrı zaman noktasında iki farklı enfeksiyon olarak yorumluyorum. Bu yorum altında ki-kare testi uygun olacaktır.

@Alexis Yapabildiğim kadarıyla, sen ve gung birbirinizle konuşuyor gibi görünüyorsunuz. "Eşlenmemiş" veya "bağımsız örnekler" t-testi veya "tek yönlü" veya "bağımsız örnekler ANOVA" olarak adlandırılanlar bile aslında eşcinsel anlamında eşleştirilmiş veriler gerektirir: her konu için her iki kategorik grubu da kaydetmelisiniz üyelik değişkeni ve sürekli bir sonuç değişkeni . (Grup üyeliği değişkeninin iki seviyesi varsa, genellikle eşleştirilmemiş t-testini kullanırız; 3+ düzey için tek yönlü ANOVA'ya ihtiyacınız vardır).
Silverfish

2
Hangi testin kullanılacağını açıklarken, her ikisine de bakmanın iki yolunu gösteririm - eğer sürekli bir değişkene ilişkin gözlemleriniz varsa, her konu için bir tane ve konular 2 (veya 3+) gruptan geliyorsa ve arasındaki farklarla ilgileniyorsanız gruplar sonra bağımsız-örneklem t-testini (veya tek yönlü ANOVA) kullanın. Ardından seçiminizi veri tablonuza bakarak onaylayın: her konu için iki bilgi parçanız var mı: grup üyeliği kategorisi ve sürekli değişken. Her şeyi tersine çevirebiliriz ve t-testinin ikili ve sürekli değişkenler arasında bir tür bir ilişki testi olduğunu söyleyebiliriz .
Silverfish

2
Her konu için, farklı koşullar altında alınmış iki (veya 3+) sürekli okumaya sahipseniz ve koşullar arasındaki farklılıkları test etmek istiyorsanız, eşleştirilmiş t testi (veya ilişkili örnekler ANOVA) kullanılır. Bu farklı bir anlamda "eşleştirilmiş" dir. Ancak bu soruda, her konu için kaydedilen iki kategorik değişkenimiz var . Veri tablosuna bakıldığında, bu kategorik değişkenlerin kayıtlı değerleri çiftler halinde gelmelidir. Ama bu değil çalışma tasarımı kendisi eşleştirilmiş olduğu anlamına gelir. Bu kafa karıştırıcıdır (notta belirtildiği gibi). Ancak, çalışma tasarımınızı biliyorsanız, bu sorunu çözebilirsiniz (alexis notunda olduğu gibi)
Silverfish

@Silverfish Her konuda iki gözleminiz varsa (aynı nominal değişkende), bu ne kadar eşleştirilmiş bir tasarım değildir?
Alexis

1
@Alexis Bu anahtar - ve potansiyel olarak kafa karıştırıcı olan "aynı değişkenden" dir. Farklı koşullar altında veya farklı zamanlarda bile aynı değişkeni temsil ettiğini biliyor olabilirsiniz, ancak veri tablosunu yerleştirme şeklimize bağlı olarak farklı değişkenler olarak kaydedilmiş gibi görünebilirler (örneğin ayrı bir "önce" ve "sonra" değişken).
Silverfish

22

Öyle görünüyor ki, bunun bir karmaşasını yaptım. Bunu farklı bir şekilde tekrar açıklamaya çalışmama izin verin, işlerin çözülmesine yardımcı olup olmayacağını göreceğiz.

McNemar'ın testine karşı ki-kare testini açıklamanın geleneksel yolu, verinin "eşleştirilip eşleştirilmediğini" ve "eşleştirilip eşleştirilmediğini" belirten McNemar testini ve ki-kare testini önermektir. Bunun çok fazla kafa karışıklığına yol açtığını buldum (bu konu bir örnek!). Bunun yerine, sormaya çalıştığınız soruya odaklanmanın ve sorunuza uyan testi kullanmanın en yararlı olduğunu buldum . Bunu daha somut hale getirmek için, tamamlanmış bir senaryoya bakalım:

Bir istatistik konferansında dolaşıyorsunuz ve tanıştığınız her istatistikçi için ABD'den mi yoksa Birleşik Krallık'tan mı olduklarını kaydediyorsunuz. Ayrıca tansiyonlarının yüksek veya normal tansiyonları olup olmadığını da kaydedersiniz.

İşte veriler:

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

Bu noktada verilerimizden hangi soruyu sormak istediğimizi bulmak önemlidir. Burada sorabileceğimiz üç farklı soru var:

  1. Kategorik değişkenlerin BPolup olmadığını bilmek isteyebiliriz veNationality ilişkili ya da bağımsız olan;
  2. Yüksek kan basıncının ABD istatistikçilerinde İngiltere istatistikçilerinden daha yaygın olup olmadığını merak edebiliriz;
  3. Son olarak, yüksek tansiyonlu istatistikçilerin oranının, konuştuğumuz ABD istatistikçilerinin oranına eşit olup olmadığını merak edebiliriz. Bu, tablonun marjinal oranlarını ifade eder. Bunlar varsayılan olarak R'de basılmaz, ancak onları bu şekilde alabiliriz (bu durumda, tamamen aynı olduklarına dikkat edin):

    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 

Dediğim gibi, birçok ders kitabında tartışılan geleneksel yaklaşım, verilerin "eşleştirilip eşleştirilmemesine" dayanarak hangi testin kullanılacağını belirlemektir. Ama bu çok kafa karıştırıcı, bu beklenmedik durum tablosu "eşleştirilmiş" mi? ABD ve İngiltere istatistikçileri arasındaki yüksek tansiyon oranını karşılaştırırsak, farklı insan gruplarında ölçülen iki oranı (aynı değişkenin de olsa) karşılaştırıyorsunuzdur. Öte yandan, yüksek tansiyon oranını ABD oranı ile karşılaştırmak istiyorsanız, aynı kişi grubunda ölçülen iki oranı (farklı değişkenler de olsa) karşılaştırıyorsunuz. Bu veriler hem“eşleştirilmiş” ve “eşleşmemiş” aynı anda (verinin farklı yönleriyle ilgili olsa da). Bu karışıklığa yol açar. Bu karmaşadan kaçınmaya çalışmak için, hangi soruyu sorduğunuzda düşünmeniz gerektiğini düşünüyorum. Özellikle bilmek istiyorsanız:

  1. Değişkenler bağımsızsa: Ki kare testi kullanın.
  2. Yüksek tansiyon oranı orantılı olarak farklılık gösteriyorsa: oranların farkı için z-testini kullanın.
  3. Marjinal oranlar aynı ise: McNemar's testini kullanın.

Acil durum tablosu “eşli” olmadığından, McNemar'ın testinin marjinal oranların eşitliğini test etmek için kullanılamayacağını ve bunun yerine ki-kare testinin kullanılması gerektiğini savunarak birileri benimle aynı fikirde olmayabilir. Bu bir çekişme noktası olduğundan, sonuçların anlamlı olup olmadığını görmek için her ikisini de deneyelim:

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% Ki-kare testinin sonuçları sadece veriler ışığında bir anlam ifade etmiyor. Öte yandan, McNemar'ın testi 1 değerinde p değeri verir. Yani, eğer gerçek marjinal oranlar eşitse, eşitliğe bu kadar yakın veya eşitlikten marjinal oranlar bulma şansınız% 100 olacaktır. Gözlenen marjinal oranlar, olduğundan daha yakın olamadığından, bu sonuç mantıklı geliyor.

Başka bir örnek deneyelim:

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

Bu kez ki-kare testi, 1'lik bir p değeri verir; yani, marjinal oranlar, olabildiğince eşitdir. Ancak, marjinal oranların çok açık bir şekilde eşit olmadığını gördük, bu nedenle verilerimiz ışığında bir anlam ifade etmiyor. Öte yandan, McNemar'ın testi yaklaşık 0 değerinde bir p değeri verir. Diğer bir deyişle, eğer nüfus içinde gerçekten eşitlerse, eşitlikten uzak, marjinal oranlarda veri elde etmek son derece düşük bir ihtimaldir. Bizim gözlemlediğimiz marjinal oranlar eşit olmaktan uzak olduğundan, bu sonuç mantıklı geliyor.

Ki-kare testinin verilere göre hiçbir anlam ifade etmeyen sonuçlar vermesi, ki-kare testinin burada kullanılmasında yanlış bir şey olduğunu göstermektedir. Tabii ki, McNemar'ın testinin mantıklı sonuçlar vermesi, bunun geçerli olduğunu kanıtlamaz, sadece bir tesadüf olabilir, ama ki-kare testi açıkça yanlıştır.

Bakalım McNemar'ın testinin neden doğru sınav olabileceğine dair bir tartışma yapabilir miyiz bakalım. Üçüncü bir veri setini kullanacağım:

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 

( prop.test()Marjinal oranları test etmek için, 'başarı' sayısını ve toplam 'deneme sayısını' manuel olarak girmek zorunda kaldım, ancak çıktının son satırından orantıların doğru olduğunu görebilirsiniz.) Elimizdeki veri miktarı göz önüne alındığında, eğer eşit olsalardı, eşit oranlardan bu kadar marjinal oranlar elde etmek pek mümkün değildir.

Bu test geçerli mi? Burada iki sorun var: Test, aslında sadece 400 olan 800 veriye sahip olduğumuza inanıyor. Bu test aynı zamanda bu iki oranın da aynı insanlar üzerinde ölçüldüğü anlamında bağımsız olmadığını göz önüne almıyor.


% high BP: 190+15400% US: 190+60400
1904001560π=.5boş altında. McNemar'ın içgörüsü buydu. Aslında, McNemar'ın testi aslında sadece gözlemlerin bu iki hücreye eşit düşme ihtimalinin olup olmadığına dair binom bir testtir:
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 

Bu versiyonda, sadece bilgilendirici gözlemler kullanılmıştır ve iki defa sayılmazlar. Buradaki p değeri daha küçüktür, 0.0000001588, bu genellikle verideki bağımlılık hesaba katıldığı zaman geçerlidir. Yani, bu test, oran farklılıklarının z testinden daha güçlüdür. Ayrıca yukarıdaki sürümün McNemar'ın testiyle aynı olduğunu görebiliyoruz:

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

Eğer özdeş olmayanlık kafa karıştırıcı ise, McNemar'ın testi tipik olarak ve R'de sonucu kareler ve yukarıdaki binom gibi tam bir test olmayan ki-kare dağılımıyla karşılaştırır:

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

Bu nedenle, beklenmedik durum tablosunun marjinal oranlarını kontrol etmek istediğinizde, McNemar'ın testi (veya manuel olarak hesaplanan tam binom testi) doğrudur. Herhangi bir veriyi iki kez yasadışı kullanmaksızın yalnızca ilgili bilgileri kullanır. Verileri mantıklı kılan sonuçlar üretmek sadece 'gerçekleşmez'.

Acil durum tablosunun "eşleştirilmiş" olup olmadığını anlamaya çalışmanın faydasız olduğuna inanmaya devam ediyorum. Verilerde sorduğunuz soruyla eşleşen testi kullanmanızı öneririm.


1
Oyumu aldın. :)
Alexis

11

χ2χ2


χ2

Örneğin, ABD’den 20 istatistikçiden bir örnek ve İngiltere’den bağımsız 37 istatistikçiden ayrı bir örnek alabilir ve bu istatistikçilerin hipertansif mi yoksa normotansif mi olduğunu ölçebilirsiniz. Boş hipoteziniz, hem İngiltere hem de ABD istatistikçilerinin hipertansif olma olasılığının altında olduğunu gösteriyor (yani, birinin ABD'den mi yoksa İngiltere'den mi olduğunu bilerek hipertansiyon olasılığı hakkında hiçbir şey söylemediği). Elbette, her grupta aynı örneklem büyüklüğüne sahip olabilirsiniz, ancak bu örneklerin bağımsız olma gerçeğini değiştirmez (yani eşleştirilmemiş ).


χ2

Örneğin, 30 istatistikçinin katıldığı uluslararası istatistikçi konferansından örneklenen bireysel olarak eşleştirilmiş vaka kontrol çalışması verilerini almış olabilirsiniz. ile ayrı ayrı yaş, cinsiyet, BMI ve sigara durumuna göre eşleştirilir; hipertansiyon (kontrolleri olmadan hipertansiyon (olgu) ve 30 istatistikçiler (özel durumlar için), Birleşik Krallık'taki başka yerlerde ikamet yerine mesleki ikamet için geriye dönük olarak değerlendirilir. Boş olan, Birleşik Krallık'ta davalar arasında kalma ihtimalinin, Birleşik Krallık'ta kontroller olarak kalma ihtimaliyle aynı olmasıdır (yani birinin hipertansiyon durumunu bilmek, birinin Birleşik Krallık'ta ikamet tarihi hakkında hiçbir şey söylemez).

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

Anto, örneğin, verileriniz eşleştirildi (aynı denekte iki kez ölçülen aynı değişken) ve bu nedenle McNemar'ın testi ilişkilendirme için uygun test seçimidir.

[gung ve ben daha erken bir cevap için bir süre boyunca aynı fikirde değiliz.]

Alıntılanan Referanslar
"Hala oranları karşılaştırmakla ilgilendiğimizi varsayarsak, verilerimiz bağımsız olmak yerine eşleştirilirse ne yapabiliriz? ... Bu durumda, McNemar testini kullanıyoruz." - Pagano ve Gauvreau, Biyoistatistik İlkeleri , 2. baskı, sayfa 349. [ Vurgu eklendi ]

"Bu ifade, McNemar eşleştirilmiş çift test istatistiği olarak bilinir (McNemar, 1949) ve eşleşmiş çift analizinin temelini oluşturur ." - Rothman, Greenland, & Lash. Modern Epidemiyoloji , sayfa 286. [ Vurgu eklendi ]

"Eşleştirilen t testi ve tekrarlanan varyans analizi ölçümleri, üzerinde çalışılan değişkenin aralık ölçeğinde ölçülebildiği (ve parametrik yöntemlerin gerektirdiği diğer varsayımları karşılayan) analizleri yapmak için kullanılabilir. sonucun nominal bir ölçekte ölçüldüğü Bölüm 5’te bu sorun genellikle bir bireyin tedaviye yanıt verip vermeyeceğini sorarken veya aynı kişilerde pozitif veya negatif olarak sınıflandırılan iki farklı teşhis testinin sonuçlarını karşılaştırırken ortaya çıkar Bu tür deneyleri analiz etmek için bir prosedür geliştireceğiz, Mcnemar'ın değişiklik testi , böyle bir çalışma bağlamında . "- Glanz, Biyoistatistik Astarı , 7. basım, sayfa 200. [Vurgu eklendi . Glanz, beklenmedik durum tablosunun yanlış uygulanmasına örnek olarak çalışmaktadır.χ2 201. sayfadaki eşleştirilmiş verilere test edin.]

Vaka başına bir kontrol ile eşleşen vaka kontrol verileri için , sonuç analizi basittir ve uygun istatistiksel test McNemar'ın ki-kare testidir ... hem oran oranının hem de istatistiğin hesaplanmasında sadece katkı yapanların olduğuna dikkat edin. pozlamada farklı olan , yani davanın maruz kaldığı, kontrolün olmadığı ve kontrolün maruz kaldığı çiftler olduğu ancak durumun olmadığı çiftlerdir . "- Elwood. Epidemiyolojik Çalışmaların ve Klinik Çalışmaların Eleştirel Değerlendirmesi , 1. baskı, sayfa 189-190. [ Vurgu eklendi ]


7

McNemar'ın testini anlamam şu şekilde: Bir müdahalenin ikili sonuç için önemli bir fark yaratıp yaratmadığını görmek için kullanılır. Örnekte, bir grup denek enfeksiyon için kontrol edildi ve cevap evet veya hayır olarak kaydedildi. Daha sonra tüm deneklere bir miktar müdahale yapılır, bir antibiyotik ilacı. Daha sonra enfeksiyon için tekrar kontrol edilir ve cevap evet / hayır olarak tekrar kaydedilir. (Çiftleri) yanıtları bitişiklik tablosuna yerleştirilebilir:

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

McNemar'ın testi buna uygun olurdu.

Tablodan, “evet” den “hayır” a (220 / (220 + 13) veya% 94,4) “hayır” dan “evet” e (35 / (1157 + 35) veya 2,9’dan daha fazla dönüştürme yaptığı açıktır. %). Bu oranlara bakıldığında, McNemar'ın P değeri (4.901e-31) ki-kare P değerinden (0.04082) daha doğru görünüyor.

Eğer bitişik tablo 2 farklı enfeksiyonu temsil ediyorsa (2. soru), Ki-kare daha uygun olur.

3. sorunuz belirsiz: İlk önce Y'yi t2'de Y ile t1'de Y ile ilişkilendiriyorsunuz ancak tabloda t1'de 'X'i t2'de Y'ye yazıyorsunuz. T2'de Y ve t1'de Y, ilk sorunuzla aynıdır ve bu nedenle McNemar'ın testine ihtiyaç duyulurken, t1'de Y ve t2'de Y farklı olayların karşılaştırıldığını gösterir ve dolayısıyla Ki-kare daha uygun olur.

Düzenleme: Yorumda Alexis tarafından belirtildiği gibi, eşleşen vaka kontrol verileri McNemar'ın testi ile de analiz edilir. Örneğin, 1425 kanser hastası bir çalışma için toplanmış ve her hasta için eşleştirilmiş bir kontrol de görevlendirilmiştir. Bütün bunlar (1425 * 2) enfeksiyon açısından kontrol edilir. Her çiftin sonuçları benzer bir tablo ile gösterilebilir:

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

Daha açık bir şekilde:

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

Kanser hastasının enfeksiyon ve kontrolünün tersine değil de enfeksiyon kaptığının çok daha sık olduğunu göstermektedir. Önemi, McNemar'ın testiyle test edilebilir.

Bu hastalar ve kontroller eşleşmediyse ve bağımsız değilse, sadece aşağıdaki tabloyu yapabilir ve bir kisare testi yapabilir:

            Infection
            No    Yes
Cancer  No  1377   48
        Yes 1192  233

Daha açık bir şekilde:

                No infection        Infection
No cancer       1377                48
Cancer          1192                233

Bu numaraların ilk tablonun kenar boşluklarıyla aynı olduğuna dikkat edin:

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

McNemar'ın testinde “marjinal frekanslar” ve “marjinal homojenlik” gibi terimlerin kullanılmasının nedeni bu olmalı.

İlginçtir ki, addmargins işlevi ayrıca hangi testin kullanılacağına karar vermede yardımcı olabilir. Genel toplam, gözlemlenen deneklerin sayısının yarısıysa (eşleştirmenin yapıldığını gösterir), o zaman McNemar'ın testi uygulanabilir, aksi takdirde chisquare testi uygundur:

> 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

Yukarıdaki tabloların R kodları yukarıdaki cevaplardan alınmıştır:

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

Sözde kodu takip etmek de farkı bilmenize yardımcı olabilir:

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

Düzenle:

mid-ppeform yapan McNemar testinin değişimi ( https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3716987/ ) ilginçtir. Bu karşılaştırır bve c(evet veya hayır çalışma ile kalanların sayısını sayarak) evet hayır değiştirildi sayısına karşı hayır evet değiştirildi ihtimal tablosundan, yani sayının. Https://gist.github.com/kylebgorman/c8b3fb31c1552ecbaafb adresinde gösterildiği gibi python'da binom testi kullanılarak yapılabilir.

binom.test(b, b+c, 0.5)Rastgele bir değişimde birinin beşit olmasını beklediğinden beri buna eşdeğer olabilir c.


3
Yalnızca müdahale analizi için değil: eşleşen vaka kontrol verilerini gözlemsel anlamda da analiz etmek için kullanılır.
Alexis

Tablo 3'ten önceki açıklama / kurulum yapıldığında, "X" in bir yazım hatası olduğundan şüpheleniyorum, ancak bu iyi bir avcaydı ve bu da +1 ipliğine faydalı bir katkı.
gung - Monica

@mso Düzenlendi Q3. t1'de X! aksi takdirde, söylediğiniz gibi Q1 den farklı değildir. Bu Q bir yaşın üzerinde ve beni şaşırtan aynı düşüncelerle geri dönecek birini görmek şaşırttı. Çok ilgi ile takip!
Anto

Özürlerim, OP Q3'ü netleştirmiştir, açıkça 2 farklı zamanda 2 farklı hastalık. Yine, iyi yakala.
dediklerinin - Eski Monica
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.