Contingency-Tables
Fisher精確檢驗配對數據
給定肺癌病例和匹配對照(無肺癌)(根據年齡、性別等進行匹配)。為了試圖找到吸煙對肺癌影響之間的證據,我在列聯表上使用了費舍爾精確檢驗。然而,這並沒有考慮到控制和案例是匹配的。
所以我想知道是否有一種方法可以使用Fisher精確檢驗來考慮兩組之間的匹配?
您需要 McNemar 的測試(http://en.wikipedia.org/wiki/McNemar%27s_test,http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3346204/)。下面是一個例子:
研究了 1300 個點和 1300 個匹配的對照。吸煙狀況如下表:
Normal |no |yes| Cancer|No |1000|40 | |Yes |200 |60 |
表中的每個條目都顯示了有關病例-對照對的信息:1000 表示在 1000 個病例-對照對中,既不是吸煙者。40 是病例對照對的數量,其中對照組是吸煙者,而癌症患者不是,依此類推。以下 R 代碼可用於生成此表並進行 McNemar 測試。
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 檢驗也用於評估干預對二元結果變量的影響。如上列出並測試這對前後結果。
編輯:擴展@gung 給出的示例,如果吸煙狀態列在您的數據框 mydf 中,如下所示:
pairID cancer control 1 1 1 2 1 1 3 1 0 ...
McNemars 測試可以使用以下 R 命令完成:
> 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