楼主: moonstone
18704 10

[原创博文] logistic回归所得分类变量回归的P值与相应OR的P值不一致的原因探讨 [推广有奖]

讲师

74%

还不是VIP/贵宾

-

威望
0
论坛币
10442 个
通用积分
336.6055
学术水平
160 点
热心指数
169 点
信用等级
124 点
经验
263126 点
帖子
237
精华
1
在线时间
520 小时
注册时间
2007-4-27
最后登录
2024-4-11

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
今天从logistic回归发现一个奇怪的现象,logistic回归得到的分类变量的回归的P值与相应OR的P值并不一致,不明确原因何在。简单举例如下:
  1. data a;
  2. input group case freq;
  3. cards;
  4. 1 1 26
  5. 2 1 27
  6. 3 1 24
  7. 4 1 21
  8. 5 1 4
  9. 1 0 12952
  10. 2 0 10082
  11. 3 0 6557
  12. 4 0 3140
  13. 5 0 401
  14. ;
  15. run;

  16. proc logistic data=a ;
  17. weight freq;
  18. class group (ref='1') ;
  19. model Case(event='1') = group / risklimits;
  20. run;
复制代码

从logistic回归过程来看,没有出现异常(没有不收敛,没有线性可分),主要输出结果如下:
logistic回归的矛盾性1.png
从最大似然估计的参数表来看,group2相对于group1的P值=0.0224<0.05,所以可以认为得到的响应的OR置信区间应该不跨1。但是从OR值的表来看, group2相对于group1发生事件的风险OR置信区间跨1啦,所以从置信区间表得出来的P值应该>0.05,所以也就存在矛盾。不一致的地方也同样出现在group3相对于group1。

初步以为这种矛盾是由于似然估计的时候有截距照成的,所以构建没有截距的logistic模型,发现结果很异常,就不在此显示。为了探讨可能的原因,选用group1和group2的数据,采用最简单的频数表的方法计算OR及P值。程序及 结果如下:
  1. data b;
  2. set a;
  3. where group<=2;
  4. run;

  5. proc freq data=b;
  6. weight freq;
  7. table group*case/nopercent norow nocol chisq relrisk;
  8. run;
复制代码

logistic回归的矛盾性.png
可以看到OR值及置信区间是和logistic回归一致的,但是P值是0.2931,这两者方向上是一致的。所以logistic回归最大似然估计表中得到的P值并不是真正OR对应的P值,对此不明白原因何在。如何才能让logistic回归输出与OR对应的P值,需要进一步的探讨。

二维码

扫码加我 拉你入群

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

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

关键词:logistic回归 logistic logisti ogistic logist 参数表

沙发
liudeng2005 发表于 2014-12-21 15:57:47 |只看作者 |坛友微信交流群
十分的欣赏兄台钻研,发现和分析问题的热情。

因为比较感兴趣,我对这个问题研究了约3个小时。我现在的想法是模型中的参数系数是针对所有的数据采用最大似然法获得的。

但计算oddsratio的时候针对每对两两比较,采取的仅仅是这2组的数据,如果没有记错的话,如果是连续型变量会自动取所有数据的均值,而分类变量的话就只会取比较的层。

所以应该是没有办法让P和oddsratio对应上的,oddsration有oddsratio的P值。

如果您在这个问题上有新的发现,请也告诉我,十分感谢。

使用道具

藤椅
moonstone 发表于 2014-12-21 21:11:36 |只看作者 |坛友微信交流群
liudeng2005 发表于 2014-12-21 15:57
十分的欣赏兄台钻研,发现和分析问题的热情。

因为比较感兴趣,我对这个问题研究了约3个小时。我现在的想 ...
已经找到答案,在class语句的选项中加上param=ref后就一致了。具体程序如下:
  1. data a;
  2. input group case freq;
  3. cards;
  4. 1 1 26
  5. 2 1 27
  6. 3 1 24
  7. 4 1 21
  8. 5 1 4
  9. 1 0 12952
  10. 2 0 10082
  11. 3 0 6557
  12. 4 0 3140
  13. 5 0 401
  14. ;
  15. run;

  16. proc logistic data=a ;
  17. weight freq;
  18. class group (ref='1')/param=ref ;
  19. model Case(event='1') = group / risklimits;
  20. run;
复制代码

使用道具

板凳
moonstone 发表于 2014-12-21 21:43:24 |只看作者 |坛友微信交流群
logistic回归class语句的param选项的说明如下:
PARAM=keyword specifies the parameterization method for the classification variable or variables. You can specify any of the keywords shown in the following table; the default is PARAM=EFFECT. Design matrix columns are created from CLASS variables according to the corresponding coding schemes:

Value of PARAM=
Coding
EFFECT
Effect coding
GLM
Less-than-full-rank reference cell coding (this keyword can be used only in a global option)
ORDINAL
THERMOMETER
Cumulative parameterization for an ordinal CLASS variable
POLYNOMIAL
POLY
Polynomial coding

REFERENCE
REF
Reference cell coding

ORTHEFFECT
Orthogonalizes PARAM=EFFECT coding
ORTHORDINAL
ORTHOTHERM
Orthogonalizes PARAM=ORDINAL coding

ORTHPOLY
Orthogonalizes PARAM=POLYNOMIAL coding
ORTHREF
Orthogonalizes PARAM=REFERENCE coding

All parameterizations are full rank, except for the GLM parameterization. The REF= option in the CLASS statement determines the reference level for EFFECT and REFERENCE coding and for their orthogonal parameterizations. It also indirectly determines the reference level for a singular GLM parameterization through the order of levels.
If PARAM=ORTHPOLY or PARAM=POLY and the classification variable is numeric, then the ORDER= option in the CLASS statement is ignored, and the internal unformatted values are used. See the section Other Parameterizations of Chapter 19: Shared Concepts and Topics, for further details.

使用道具

报纸
liudeng2005 发表于 2014-12-21 21:50:00 |只看作者 |坛友微信交流群
moonstone 发表于 2014-12-21 21:43
logistic回归class语句的param选项的说明如下:
PARAM=keyword specifies the parameterization method fo ...
十分感谢你的新信息!!!

使用道具

地板
caibloodhoof 发表于 2014-12-23 12:32:18 |只看作者 |坛友微信交流群
虽然问题已经解决了,还是附上比较直观的理解方式如下。希望对朋友们有所帮助。
http://www.ats.ucla.edu/stat/sas/faq/proc_logistic_coding.htm

使用道具

7
hwb5258289 发表于 2014-12-24 14:57:34 |只看作者 |坛友微信交流群
很实在的探讨,之前也遇见过

使用道具

8
moonstone 发表于 2014-12-25 10:57:46 |只看作者 |坛友微信交流群
caibloodhoof 发表于 2014-12-23 12:32
虽然问题已经解决了,还是附上比较直观的理解方式如下。希望对朋友们有所帮助。
http://www.ats.ucla.edu/ ...
非常谢谢,也算清楚了分类变量编码方式的不同对结果照成的影响。^_^

使用道具

9
fzcrazy 发表于 2016-12-5 16:33:40 |只看作者 |坛友微信交流群
moonstone 发表于 2014-12-21 21:11
已经找到答案,在class语句的选项中加上param=ref后就一致了。具体程序如下:
遇到了完全一样的问题,非常感谢您的钻研。

使用道具

10
fzcrazy 发表于 2016-12-5 16:41:16 |只看作者 |坛友微信交流群
caibloodhoof 发表于 2014-12-23 12:32
虽然问题已经解决了,还是附上比较直观的理解方式如下。希望对朋友们有所帮助。
http://www.ats.ucla.edu/ ...
感谢您提供这么清楚的学习资源。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 15:09