楼主: moonstone
3785 5

[原创博文] 采用GLM得到二分类结局变量相当于分组变量的调整概率 [推广有奖]

已卖:1873份资源

讲师

74%

还不是VIP/贵宾

-

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

楼主
moonstone 发表于 2014-12-15 15:44:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
之前研究过采用proc catmod计算过二分类或多分类结局变量调整控制变量后的个体的调整概率(http://user.qzone.qq.com/569473320/blog/1405164689),但是该过程不能获得结局变量相当于分组变量的总体调整概率。如下述事例:研究神经痛(Neuralgia)的发生情况(Pain)是否会因之前接受的治疗(Treatment,A/B/P三种治疗方式)、性别(sex)、年龄(age)及治疗前症状出现的时间长短(Duration)不同而不同,具体问题是:

没有调整其他因素前:A/B/P三种治疗方式出现神经痛的频率是15%,25%及75%,现在想了解调整其他因素之后三种方式神经痛的出现频率。

事例来源:SAS 帮助proc logistic回归 Example 54.2 Logistic Modeling with Categorical Predictors,为方便分析,稍加修改。

  1. Data Neuralgia;
  2. input Treatment [        DISCUZ_CODE_14        ]nbsp;   Sex Age Duration Pain @@;
  3. datalines;
  4. P 0 68 1 0 B 1 74 16 0 P 0 67 30 0
  5. P 1 66 13 1 B 0 67 28 0 B 0 77 32 0
  6. A 0 71 24 0 B 0 72 50 0 B 0 76 9 1
  7. A 1 71 34 0 A 0 63 27 0 A 0 69 36 0
  8. B 0 66 24 0 A 1 62 42 0 P 0 64 1 1
  9. A 0 64 34 0 P 1 74 4 0 A 0 72 25 0
  10. P 1 70 1 1 B 1 66 19 0 B 1 59 29 0
  11. A 0 64 30 0 A 1 70 28 0 A 1 69 10 0
  12. B 0 78 1 0 P 1 83 1 1 B 0 69 42 0
  13. B 1 75 30 0 P 1 77 11 1 P 0 79 10 1
  14. A 1 70 24 0 A 0 69 12 0 B 0 65 28 0
  15. B 1 70 10 0 B 1 67 23 0 A 1 76 12 1
  16. P 1 78 12 1 B 1 77 1 1 B 0 69 24 0
  17. P 1 66 4 1 P 0 65 29 0 P 1 60 13 1
  18. A 1 78 5 1 B 1 75 10 1 A 0 67 22 0
  19. P 0 72 27 0 P 0 70 13 1 A 1 75 6 1
  20. B 0 65 14 0 P 0 68 13 1 P 1 68 1 1
  21. P 1 67 17 1 B 1 70 22 0 A 1 65 30 0
  22. P 0 67 1 1 A 1 67 10 0 P 0 72 1 1
  23. A 0 74 10 0 B 1 80 11 1 A 0 69 9 0
  24. ;

  25. proc freq data= Neuralgia;
  26. table Pain*Treatment/nopercent norow;
  27. run;

  28. /*检验Logistic回归能否得到与freq过程一样的频数*/
  29. PROC LOGISTIC DATA= Neuralgia Descend ;
  30. class Treatment ;
  31. MODEL Pain = Treatment ;
  32. OUTPUT OUT= logi_out1 prob=prob ;
  33. RUN;

  34. proc sort data= logi_out1;
  35. by Treatment;
  36. run;

  37. proc univariate data=logi_out1 noprint;
  38. var prob;
  39. by Treatment;
  40. output out=sum1 mean=mean_prob;
  41. run;

  42. proc print data=sum1;
  43. var _all_;
  44. run;

  45. /*检验GLM模型能否得到与freq过程一样的频数*/
  46. PROC  GLM data= Neuralgia;
  47. class Treatment ;
  48. MODEL Pain = Treatment /solution;
  49. lsmeans  Treatment /stderr;
  50. RUN;
复制代码


从结果可以看到:
1、Logistic回归可以得到与freq过程一样的频数,从相应过程来看,实际Logistic回归得到的频数是结局事件按照分组变量所得到的的平均预测概率
2、GLM模型同样可以得到与freq过程一样的频数,但从GLM过程可以知道,所得的频率是将两种结局的取值0和1当成简单的数值0和1,然后采用协方差思想得到的最小二乘估计的均数(lsmeans)

基于如此的思路,理论上可以采用Logistic回归以及GLM模型得到调整其他变量之后的结局变量相对于分组变量的调整概率。
同时从上述程序可以看到,GLM模型相对更加容易得到结局变量相当于分组变量的调整概率。具体程序如下:

  1. /*基于Logistic回归得到调整其他变量之后,Pain根据Treatment分组之后的调整概率*/
  2. PROC LOGISTIC DATA= Neuralgia Descend ;
  3. class Treatment  Sex;
  4. MODEL Pain = Treatment Sex Age Duration;
  5. OUTPUT OUT= logi_out2 prob=prob ;
  6. RUN;

  7. proc sort data= logi_out2;
  8. by Treatment;
  9. run;

  10. proc univariate data=logi_out2 noprint;
  11. var prob;
  12. by Treatment;
  13. output out=sum2 mean=mean_prob;
  14. run;

  15. proc print data=sum2;
  16. var _all_;
  17. run;

  18. /*基于GLM模型得到调整其他变量之后,Pain根据Treatment分组之后的调整概率*/
  19. PROC  GLM data= Neuralgia;
  20. class Treatment Sex;
  21. MODEL Pain = Treatment Sex Age Duration/solution;
  22. lsmeans  Treatment /stderr;
  23. RUN;
复制代码
从结果可以看到:
Logistic回归可以得到的“调整概率”与未调整前是一样的,但是GLM模型得到的调整概率却发生了变化,简单的理解:Logistic回归构建的调整概率是结局事件按照分组变量所得到的的平均预测概率。这种平均预测概率未发生改变的原因是:在调整其他因素之后,虽然个体预测概率确实发生改变了,但实际是将人群按照分层变量分组后,重新将处于同一组的人群进行了一个更加细致的分层,而实际同一组人群的平均概率并未发生改变。
至于为什么GLM模型得到的调整概率发生了变化,而且很有可能更加接近真实想要的结果,需要进一步的研究。


二维码

扫码加我 拉你入群

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

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

关键词:二分类 Categorical logistic回归 Univariate Predictors 神经痛

沙发
jingju11 发表于 2014-12-16 03:31:18
Hoestly, I don't completely understand what you are talking about....JingJu

藤椅
moonstone 发表于 2014-12-16 08:28:17
jingju11 发表于 2014-12-16 03:31
Hoestly, I don't completely understand what you are talking about....JingJu
jingju老师,谢谢你的关注,不知道你说的不明白指的是哪方面:
是对我提的问题不明白,还是我的分析方法说得不清楚,还是结论不知道怎么的出来的?
欢迎老师继续交流

板凳
jingju11 发表于 2014-12-16 12:00:17
The one you mentioned (assuming you are talking about expected prob. of pain for each level of treatment):
(1) in freq = column percent for each level of trt
(2) in logistic = binomial(p), p =(#of 1's)/(#of both 0 and 1's) for each treatment
(3) in glm =cell means = (sum of all 1 or 0's)/# of obs for each treatment

For binary 0/1 variable, all the three cases are the same for sure.

I don't see any reason to use general linear regression to model 0/1 data. Over dispersed and non-normal errors, etc.  makes GLM not realistic at all.
至于为什么GLM模型得到的调整概率发生了变化,而且很有可能更加接近真实想要的结果,需要进一步的研究。
你不是说三个结果都相同吗?
JingJu

报纸
moonstone 发表于 2014-12-16 17:39:23
jingju11 发表于 2014-12-16 12:00
The one you mentioned (assuming you are talking about expected prob. of pain for each level of trea ...
首先要再次感谢老师对此问题的关注。对于你的疑问回复如下:
三者在没有调整前确实是一样的
但是调整其他因素后,logisitic回归结果与没有调整前没有改变,这似乎不合理。
GLM调整之后发生了改变。通过你的提示,我可能想得更明白一些了。就像你说的,如果因变量取值只有0和1,实际构建的GLM模型就是因变量取1的个体在所有观察中所占的比例。在不考虑其他因素影响的时候,这个频率就是根据分组变量得到的实际观察的频率。但是如果存在其他因素的影响后,实际观察到的频率并不是理论的频数。所以GLM多因素得到的频率其实就是期望想要的调整其他因素之后的理论频数,也即调整其他因素之后得到的理论出现1的个体占整个观察个体的频率。

地板
007kimmy 发表于 2017-3-28 08:04:49
学习了~~

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-6 08:41