Contingency-Tables

Fisher精確檢驗配對數據

  • April 21, 2015

給定肺癌病例和匹配對照(無肺癌)(根據年齡、性別等進行匹配)。為了試圖找到吸煙對肺癌影響之間的證據,我在列聯表上使用了費舍爾精確檢驗。然而,這並沒有考慮到控制和案例是匹配的。

所以我想知道是否有一種方法可以使用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

引用自:https://stats.stackexchange.com/questions/147559

comments powered by Disqus