全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
22888 8
2016-01-27
偶然间发现R在计算患病风险比值比(OR, odds ratio)的结果输出中存在一个难以理解的“错误”:OR值检验的P值<0.05 (说明暴露与不暴露发生疾病的风险存在显著差异),但是置信区间却跨1(说明暴露与不暴露发生疾病的风险不存在显著差异

具体程序如下:
复制代码
输出的普通卡方及精确卡方检验的P值分别为0.039及0.046,OR值及置信区间为:1.65(95%CI:0.96-2.68),采用glm的logisitc回归得到的结果与上述一样(具体输出省略):
复制代码
简单的思考之后怀疑可能是R程序包有问题,因为R程序包的bug问题不是少见,于是采用SAS程序进行验证:
复制代码
结论不论是列联表,还是logisitic回归,输出的普通卡方及Fisher精确卡方检验的P值均与R的输出一致,但是OR及95%CI均为:1.6512(95%CI: 1.0197 - 2.6739)(其他详细输出省略),这个置信区间与P值=0.039是对应的。所以一时间还是觉得SAS靠谱,R有时候真的需要谨慎。

但是后来重新思考,觉得应该不至于R连这种简单的统计都会出问题,难道是SAS和R在计算OR值的置信区间上采用了不同的方法。于是翻阅现今流行病学最权威的书籍Modern Epidemiology (3rd edition)希望找到OR值的置信区间的计算上是否存在校正的置信区间的算法。但是似乎并没有找到。

然后想想R中经常存在不同程序包计算同一指标的方法,于是查阅可计算OR置信区间的不同程序包的输出,是否均是相同的问题。结果发现fmsb程序包输出的OR置信区间与SAS的输出结果一致。具体如下:
复制代码
于是进一步明确不是R的程序包存在bug,而是方法的不同导致了SAS与R的输出结果存在差异。进一步回过头查看cci 函数的输出结果,结果发现OR的置信区间输出的说明为Exact 95% CI,于是查看cci 函数的选项中默认:exact.ci.or = TRUE,于是果断将该选项修改为:exact.ci.or = FALSE,结果与SAS输出结果一致。

于是最终想明白三件事:
(1)R的简单程序包(如fmsb,功能仅类似与计算器)通常计算的都是OR值普通的置信区间,R的高级程序包(如epicalc,stat等)通常默认输出的是OR精确的置信区间,但epicalc也可以提供OR值普通的置信区间,而stat只能提供OR精确的置信区间。
(2)只知道P值有精确检验的方法,原来OR值也有精确置信区间一说
(3)SAS的proc logisitic过程只能提供OR值普通的置信区间,不能提供OR值精确的置信区间,因此,从某种角度上来说,SAS其实并没有R精细



同时在二楼跟帖中补充了STATA中关于OR值的相关问题讨论,欢迎大家讨论,^_^
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-1-27 15:12:50
moonstone 发表于 2016-1-27 13:29
偶然间发现R在计算患病风险比值比(OR, odds ratio)的结果输出中存在一个难以理解的“错误”:OR值检验的P值
谢谢分享,之前也遇到类似问题,没细究~但对于这样敏感的p值,建议下结论的时候也要甚慎重,结合专业多角度分析吧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-1-27 16:18:39
补充一下,STATA的关于OR计算的常规方法cci 默认输出的也是精确置信区间,但是P值为普通卡方检验的P值
复制代码
加上exact选项之后可输出精确检验的P值
复制代码
加载exactcci函数后可以同时输出普通的及精确调整的置信区间,但采用的调整方法为Yates
复制代码
加上exact选项后可输出Fisher精确调整的置信区间
复制代码


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-5-1 17:24:51
还真没注意到这个事,SAS的OR置信区间应该是用的woof法,还有一个常用方法是Miettinen法,这个精确置信区间的算法,可能只有问包的作者了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-15 23:08:14
我也在困惑R和SAS结果的不一致,看完很受启发!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-12-18 16:25:27
请问Odds Ratio是P/1-P吗?我想要求的各自变量的发生比率,怎么计算?软件可以操作码?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群