我最近发现了处理稀疏和/或分离数据的惩罚似然比方法。
我在理解结果时遇到了一些问题,使用 Firth 方法(R 中的 logistf 包)回馈的逻辑回归。
我有一个带有结果和预测变量的数据集,两者都是二分法:
Y.yes Y.no
X.yes 0 22
X.no 7 356
我使用 logistf() 切换 pl 和 firth 参数执行回归。
- pl 指定置信区间和测试是否应基于轮廓惩罚对数似然 (pl=TRUE) 或 Wald 方法 (pl=FALSE)。
- 第一次使用 Firth 的惩罚最大似然法 (firth=TRUE) 或标准最大似然法 (firth=FALSE) 进行逻辑回归。
显示了 xYes 情况与 xNo 的系数、CI 和 p 值。
1. pl=T;firth=T coef:-3.5 ci.low:-11.6 ci.high:4.85 p.val:1
2. pl=F;firth=T coef:-3.5 ci.low:-7.89 ci.high:0.88 p.val:0.117
3. pl=T;firth=F coef:-2.96 ci.low:-11.1 ci.high:1.08 p.val:1
4. pl=F;firth=F coef:-2.96 ci.low:-8.17 ci.high:2.24 p.val:0.264
我还通过 glm() 展示了经典 ML 逻辑的结果:
5. glm coef:-14.6 ci.low:NA ci.high:118 p.val:0.992
正如我们所见,logistf 中的 CI 得到了改进,因为我们不再发现更多的极值或 NA 或无穷大。我仍然不确定选择哪个选项。第四个模型,两个选项都设置为 false,在我的理解中应该与普通 glm() 相同,但显然不是。另外,我不明白为什么选择 Wald CI 方法(模型 2 和 4)与轮廓惩罚似然(模型 1 和 3)相比,p 值提高了这么多。此外,选择 Wald CI 还可以提供更短的 CI 范围。
如果我有另一个二项式协变量 X2,事情就会变得奇怪:
Y.yes Y.no
X1.yes X2.yes 0 12
X2.no 0 10
X1.no X2.yes 6 191
X2.no 1 165
以下是回归:
1. pl=T;firth=T
X1 coef:-1.63 ci.low:-2.79 ci.high:-0.38 p.val:1
X2 coef:3.15 ci.low:-0.72 ci.high:11.2 p.val:1
2. pl=F;firth=T
X1 coef:-1.63 ci.low:-4.24 ci.high:0.97 p.val:0.220
X2 coef:3.15 ci.low:-2.11 ci.high:8.42 p.val:0.240
3. pl=T;firth=F
X1 coef:-1.08 ci.low:-5.17 ci.high:2.86 p.val:0.006
X2 coef:3.35 ci.low:1.48 ci.high:11.5 p.val:1
4. pl=F;firth=F
X1 coef:-1.08 ci.low:-4.27 ci.high:2.10 p.val:0.504
X2 coef:3.35 ci.low:-2.71 ci.high:9.42 p.val:0.279
5. glm()
X1 coef:-15.6 ci.low:NA ci.high:196.4 p.val:0.994
X2 coef:1.645 ci.low:-0.13 ci.high:4.58 p.val:0.130
在结果中,我们看到了一些奇怪之处:在模型 1 中,CI 均低于零,但回归具有最大 p 值;而在模型 3 中,我们有相反的情况,即显着的 p 值但不显着的 CI。同样在 glm 中,我们有完全不同的值。此外,不同模型中的 p 值发生显着变化,这意味着选择错误的模型将完全改变对研究的解释!
所以我的问题是,我该如何解释我上面报告的结果?然后,我应该遵循哪些标准来为logistf选择正确的选项?
谢谢!