期望频数列联表生成语法:chisq.test(列联表)$expected,用于评价使用何种检验方法 (见下)。各检验方法具体使用场合总结如下:
名称场合语法Pearson χ 2 \chi^2 χ2检验二维列联表,每个单元格期望频数≥5chisq.test(列联表,correct=FALSE)Pearson χ 2 \chi^2 χ2检验带连续性校正二维列联表,存在单元格期望频数≥1且≤5chisq.test(列联表) # correct参数默认为TRUE,故无需声明Fisher精确概率检验二维列联表,总记录数n<40 或 存在单元格期望频数<1fisher.test(列联表) > chisq.test(table(birthwt$low,birthwt$smoke))$expected no yes no 79.10053 50.89947 yes 35.89947 23.10053 # 期望频数均>5,无需进行连续性校正 > chisq.test(table(birthwt$low,birthwt$smoke),correct=FALSE) Pearson's Chi-squared test data: table(birthwt$low, birthwt$smoke) X-squared = 4.9237, df = 1, p-value = 0.02649RR与OR的定义不再复习,请参考统计学书籍。epiDisplay包中的cs()和cc()函数可用于计算RR、OR,具体语法如下:
函数语法1语法2cs():用于计算RRcs(数据框名$结局变量,数据框名$因素变量)cs(cctable=列联表)cc():用于计算ORcc(数据框名$结局变量,数据框名$因素变量)cc(cctable=列联表)需要注意的是:
若将列联表作为输入,需要将其作为参数cctable声明若将列联表作为输入,列联表必须为结局变量在前、因素变量在后的形式 > cc(birthwt$low,birthwt$smoke) # 语法1 birthwt$smoke birthwt$low no yes Total no 86 44 130 yes 29 30 59 Total 115 74 189 OR = 2.02 95% CI = 1.08, 3.78 Chi-squared = 4.92, 1 d.f., P value = 0.026 Fisher's exact test (2-sided) P value = 0.036 > mytable<-table(birthwt$low,birthwt$smoke) # 注意该列联表生成时将关心的结局变量放在前面 > cc(cctable=mytable) # 语法2 no yes Total no 86 44 130 yes 29 30 59 Total 115 74 189 OR = 2.02 95% CI = 1.08, 3.78 Chi-squared = 4.92, 1 d.f., P value = 0.026 Fisher's exact test (2-sided) P value = 0.036cc()除了给出检验结果外,还能生成一个不同组比值 (Odds)的变化图:
M-H检验:检验两分类变量在第三个变量 (分层变量)的调整下是否仍然独立。 列联表写法:table(数据框名$待检验变量1,数据框名$待检验变量2,数据框名$用于分层的变量3)
函数语法M-H检验,不进行连续性校正mantelhaen.test(列联表,correct=FALSE)M-H检验,进行连续性校正mantelhaen.test(列联表) # 默认校正,无需声明M-H检验,连续性校正,并生成OR图 (需要epiDisplay包)mhor(mhtable=列联表) > mytable<-table(birthwt$low,birthwt$smoke,birthwt$race) > mantelhaen.test(mytable,correct=FALSE) # 声明不进行连续性校正 Mantel-Haenszel chi-squared test without continuity correction data: mytable Mantel-Haenszel X-squared = 9.4134, df = 1, p-value = 0.002154 alternative hypothesis: true common odds ratio is not equal to 1 95 percent confidence interval: 1.490740 6.389949 sample estimates: common odds ratio 3.086381 > mhor(mhtable=mytable) Stratified analysis by Var3 OR lower lim. upper lim. P value Var3 white 5.66 1.657 25.14 0.00179 # 可见,白人亚组中吸烟对低体重的OR最大 Var3 black 3.14 0.487 23.45 0.22797 Var3 other 1.25 0.273 5.28 0.75103 M-H combined 3.09 1.491 6.39 0.00215 M-H Chi2(1) = 9.41 , P value = 0.002 Homogeneity test, chi-squared 2 d.f. = 2.98 , P value = 0.225mhor()函数还额外生成了一个不同层中OR差异的图:
对同一对象进行两种处理,然后观察这两种处理的分类变量结果之间的一致性。最典型的例子是比较两种诊断方法的一致性。
检验适用场合语法McNemar检验,无连续性校正-mcnemar.test(列联表,correct=FALSE)McNemar检验,有连续性校正不一致结果的个案总数<40mcnemar.test(列联表)以下面的诊断一致性检验作为示例:
诊断试验A(+)诊断试验A(-)诊断试验B(+)112诊断试验B(-)1233 > my.matrix<-matrix(c(11,2,12,33),nrow=2) > mcnemar.test(my.matrix) McNemar's Chi-squared test with continuity correction data: my.matrix McNemar's chi-squared = 5.7857, df = 1, p-value = 0.01616