Eşleştirilmiş verilerde Fisher kesin testi


9

verilmiş 40 akciğer kanseri olan ve 40eşleştirilmiş kontroller (akciğer kanseri olmadan) (yaş, cinsiyet vb. Sigaranın akciğer kanseri üzerindeki etkisi arasında kanıt bulmaya çalışmak için Fisher'in kesin testini beklenmedik durum tablosunda kullandım. Ancak bu, kontrollerin ve vakaların eşleştiğini dikkate almadı.

Bu yüzden iki grup arasındaki eşleşmeyi dikkate alan Fisher'ın kesin testini kullanmanın bir yolu olup olmadığını merak ettim.

Yanıtlar:


8

McNemar'ın testine ihtiyacınız var ( http://en.wikipedia.org/wiki/McNemar%27s_test , http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3346204/ ). Aşağıda bir örnek verilmiştir:

1300 puan ve 1300 eşleştirilmiş kontrol incelenmiştir. Sigara içme durumu aşağıdaki gibi sıralanmıştır:

             Normal   
           |no  |yes|
Cancer|No  |1000|40 |
      |Yes |200 |60 |

Tablonun her girişi bir CASE-CONTROL ÇİFTİ hakkında bilgi gösterir: 1000 vaka kontrol çiftinde 1000 anlamına gelir, ikisi de sigara içen biri değildir. 40, kontrolün sigara içtiği ve kanser hastasının olmadığı vaka-kontrol çiftlerinin sayısıdır. Bu tabloyu oluşturmak ve McNemar'ın Testini yapmak için aşağıdaki R kodu kullanılabilir.

mat = as.table(rbind(c(1000, 40), c( 200, 60) ))
colnames(mat) <- rownames(mat) <- c("Nonsmoker", "Smoker")
names(dimnames(mat)) = c("Cancer", "Normal")
mat
#                  Normal
#              Nonsmoker Smoker
# Cancer
#  Nonsmoker      1000     40
#  Smoker          200     60


mcnemar.test(mat)

#        McNemar's Chi-squared test with continuity correction
#
#data:  mat
#McNemar's chi-squared = 105.34, df = 1, p-value < 2.2e-16

McNemar'ın testi, bir müdahalenin ikili sonuç değişkeni üzerindeki etkisini değerlendirmek için de kullanılır. Önce-sonra sonuç çifti yukarıdaki gibi tablolanır ve test edilir.

Düzenleme: Veri çerçevesi mydf'nizde sigara içme durumu aşağıdaki gibi listeleniyorsa @gung tarafından verilen genişletme örneği:

pairID  cancer  control
1       1       1
2       1       1
3       1       0
...

McNemars testi aşağıdaki R komutlarıyla yapılabilir:

> tt = with(mydf, table(cancer, control))
> tt
      control
cancer 0 1
     0 5 1
     1 3 2

> mcnemar.test(tt)

        McNemar`s Chi-squared test with continuity correction

data:  tt
McNemar`s chi-squared = 0.25, df = 1, p-value = 0.6171

Vaka başına birden fazla kontrol için, örneğin vaka başına 10 kontrol için hangi testi kullanıyorsunuz?
eXpander

Bu ayrı bir soru ve tartışmayı hak eder. Bence her vakayı kontrolleri ile eşleştirebilir ve McNemar'ın testi kullanılabilir.
rnso

5

Fisher'ın kesin testinin verileriniz için uygun olmadığı konusunda haklısınız. Acil durum tablonuzu yeniden biçimlendirmeniz gerekecek. Yeni tablo çiftler için olacaktır, bu nedenle temsil edilen verilerin yarısının yarısı gibi görünecektir (sizin durumunuzda 80 yerine 40). Örneğin, verilerinizin şöyle göründüğünü düşünün (her eşleştirilmiş konu kümesi kendi satırındadır ve 1sigara içen bir kişiyi gösterir):

cancer  control
1       1
1       1
1       0
1       0
1       0
0       1
0       0
0       0
0       0
0       0
0       0

O zaman eski beklenmedik durum tablonuz şunlar olabilirdi:

       cancer  control
smoker 5       3
non    6       8

Yeni beklenmedik durum tablonuz şöyle görünecektir:

            control
cancer    smoker  non           
  smoker  2       3
  non     1       5

İlk beklenmedik durum tablosu 22'dir (çalışmanızdaki toplam denek sayısı), ancak ikinci beklenmedik durum tablosu 11'dir (eşleşen çift sayısı).

Verileriniz bu şekilde temsil edildiğinde, ilgilendiğiniz şey marjinal oranların aynı olup olmadığıdır. Bunun için test McNemar'ın testidir . McNemar'ın testini burada ve burada açıkladım .


1
İkili veri için McNemar testinin işaret testine eşdeğer olduğunu unutmayın. Bu nedenle OP işaret testini kullanabilir (gerekirse permütasyon veya Monte Carlo önem testi ile).
ttnphns

1
@ttnphns, McNemar'ın testini ayrıntılı olarak açıkladığım bağlantılı konu başlıklarında tartışıyorum.
gung - Monica'yı eski

1

eşleştirilmiş bir test kullanmak gerekli olmamalıdır. popülasyonların eşleşmesi, kovaraitlerin dağılımının (yaş, ...) iki popülasyonda aynı olduğunu ve dolayısıyla resmi "bozmadığını" tespit eder.

test, popülasyonların araçlarını karşılaştırır, böylece bireylerin eşleştirilmesi gerekmez. bu sadece "tekrarlanan" ölçümler için gereklidir, örneğin, aynı popülasyonun tedavisinden önce ve sonra menüleri karşılaştırmak.


0

Evet ve hayır:

muhtemelen sizin durumunuz Pearce (2015) vakasının altına düşmektedir : makaledeki nokta, kontrolü seçmek için kullandığınız değişkenlerin testte değil, çalışmada kontrol edilmesi gerektiğidir. N = 80 nedeniyle bu zor olabilir.

Umarım bu yardım :)

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.