我不确定您所说的“逻辑回归给我们关联的大小”是什么意思,因为正如您所说,费希尔的精确检验做了非常相似的事情。但是,我仍然可以想到一些差异。
1.优势比(OR)可能不同
报告的 OR 不必相同。至少对于 R 函数 fisher.test() 和 exact2x2() 与通过 glm() 函数的逻辑回归相比,这是正确的。这里有一个例子:
# generating data
set.seed(1)
n <- 200
x <- rbinom(n, 1, .5)
y <- rbinom(n, 1, .4)
df <- data.frame(x, y)
# OR from logistic regression
exp(coef(glm(y ~ x,family=binomial(link='logit'),data= df)))[2]
1.423077
# OR from fisher's exact test
tab <- table(x, y)
fisher.test(tab)$estimate
1.420543 # the methods "minlike", "central" and "blaker" in the exact2x2 function result in the same OR
# calculating OR by hand
(tab[1,1]/ tab[2,1])/ (tab[1,2]/ tab[2,2])
1.423077
Fisher 精确检验的 OR 与手动计算或逻辑回归中报告的 OR 不同,因为它们是通过条件最大似然估计而不是通过无条件 MLE(样本 OR)计算的。可能存在 OR 值比我的示例中的差异更大的情况。再一次,OR 对所提到的功能有所不同,但如果它们相同,则可能存在其他测试变体。
2. p 值不同
当然,p 值是不同的,因为在逻辑回归的情况下,它们是由Wald 统计量和 az 值确定的,而不同类型的精确 Fisher 检验甚至在它们之间的 p 值也不同(最后一个链接打开 pdf)。之前使用的数据见这里:
# p value from logistic regression
summary(glm(y ~ x,family=binomial(link='logit'),data= df))$coefficients["x", "Pr(>|z|)"]
0.2457947
# p value from fisher's exact test
library(exact2x2) # package covers different exact fisher's tests, see here https://cran.r-project.org/web/packages/exact2x2/index.html
exact2x2(tab,tsmethod="central")$p.value
0.3116818
exact2x2(tab,tsmethod="minlike")$p.value
0.290994 # which is same as fisher.test(tab)$p.value and exact2x2(tab,tsmethod="blaker")$p.value
在所有情况下,人们都会得出结论,没有显着影响。但是,正如您所看到的,差异并非微不足道(逻辑回归为 0.246,而精确费希尔检验为 0.291 甚至 0.312)。因此,取决于您使用的是逻辑回归还是费希尔精确检验,您可能会得出另一个结论,无论是否存在显着影响。
3. 做出预测
打个比方:Pearson 相关和线性回归在双变量情况下非常相似,标准化回归系数甚至与 Pearson 相关 r 相同。但是您无法通过相关性进行预测,因为它缺少截距。同样,即使逻辑回归和 Fisher 精确检验的优势比相同(第 1 点中讨论的情况并非如此),您也无法使用 Fisher 精确检验的结果进行预测。另一方面,逻辑回归为您提供了进行预测所需的截距和系数。
4. 性能
前面提到的差异可能导致假设两种测试的性能在功率和 I 类错误方面应该存在差异。有一些消息来源指出,费舍尔的精确检验过于保守。另一方面,应该记住标准逻辑回归分析是渐近的,因此在观察很少的情况下,您可能更喜欢 Fisher 精确检验。
综上所述,虽然这两种测试都可以用于相同的数据,但存在一些差异会导致不同的结果,从而得出不同的结论。因此,这取决于您要使用两种测试中的哪一种 - 在预测的情况下,它将是逻辑回归,在样本量较小的情况下,Fisher 的精确测试,等等。可能还有更多我遗漏的差异,但也许有人可以编辑和添加它们。