我一直在尝试复制这篇研究论文的结果(科克伦规则的故事:我的列联表有很多小于 5 的期望值,我该怎么办? 作者:Kroonenberg 和 Verbeek) 但我的数字根本与他们的不匹配。在论文中,他们使用了以下列联表:
Type of Surgery
-----------------------------------------------------------------------
Patient's state None A B Total
-----------------------------------------------------------------------
Still alive 0 5 1 6
Passed away 3 1 2 6
-----------------------------------------------------------------------
Total 3 6 3 12
针对检查患者的状态和手术类型是否独立提出这一主张:
“在你不稳定的健康状况下,你发现精确的测试产生的 pX2 为 0.12,换句话说,独立性测试不能被拒绝。”
并提出关于检查手术的类型是否独立的主张
“关于两种手术类型之间选择的表格(假设我们可以独立于之前的测试进行测试)的 X2 为 2.25,其中 pX2 = 0.46 和 pχ2 = 0.13。”
如您所见,他们声称正在使用渔民精确测试来获取其 pX2 值(以及对其 pχ2 值进行常规卡方测试)但是,运行代码对于第一个声明,下面的 R 中的 p 值为 0.0801 而不是 0.12。事实上,如果我使用模拟 p 值运行卡方检验,我只能得到 0.12 左右的值:
disease <- matrix(c(0, 5, 1, 3, 1, 2), nrow = 2, byrow = TRUE)
colnames(disease) <- c("None", "A", "B")
rownames(disease) <- c("Still alive", "Passed Away")
fisher.test(disease, conf.int = FALSE)
chisq.test(disease, simulate.p.value = TRUE)
我是否错误地使用了fisher.test()函数?我在这里缺少什么吗?
这也许应该是一条评论,但我看不出你做错了什么,无论是在 R 中还是在快速浏览论文中。没有连续性校正选项(列联表分析中不匹配/混乱的常见原因),并且默认情况下不使用渐近近似。 (如果我们通过运行
fisher.test(disease, conf.int = FALSE, hybrid = TRUE, hybridPars = c(1, 1,1))
强制使用渐近近似,则 p 值为 0.062。)我会考虑联系相应的作者。
无论它的价值这个在线计算器给出的答案与您使用R得到的答案相同
fisher.test()
: