楼主: 思冬君
1371 4

[程序分享] logistic单因素分析结果输出整理 [推广有奖]

  • 0关注
  • 1粉丝

大专生

20%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
364 点
帖子
9
精华
0
在线时间
88 小时
注册时间
2017-12-16
最后登录
2018-12-10

思冬君 发表于 2018-6-12 20:55:40 |显示全部楼层
本帖最后由 思冬君 于 2018-6-12 21:02 编辑


由于经常需要做logistic回归需要先进行单因素分析,输出的结果粘贴太麻烦,所以写了段程序可以稍微整理下快速复制粘贴。

刚刚入门sas,可能写的稍微有些麻烦,大家有意见也可以提出来帮忙指正哈~

  1. /*生成空的数据集记录结果*/
  2. %macro blank(observe);
  3. %data blankseed;
  4.   varname='blank       ';
  5. data blank;
  6.   set blankseed;
  7. run;
  8. %do b=1 %to %eval(&observe-1);
  9. data blank;
  10.   set blank blankseed;
  11. run;
  12. %end;
  13. run;
  14. %mend;
  15. %blank(1)
  16. data logit_univariate_pe; set blank; run;
  17. data logit_univariate_or; set blank; run;

  18. /*1定量 2定性*/
  19. %macro logit1(dataset= ,var= ,y= );
  20. ods html close;
  21.         ods output   ParameterEstimates=pe  OddsRatios=or;
  22.         proc logistic data=&dataset desc;
  23.                 model &y=&var;
  24.         run;
  25. ods html;
  26. data logit_univariate_pe; set logit_univariate_pe pe; if Variable='Intercept' then delete; run;
  27. data logit_univariate_or; set logit_univariate_or or; run;
  28. %mend;

  29. %macro logit2(dataset= ,var= ,y=  ,ref= );
  30. ods html close;
  31.         ods output parameterestimates=pe OddsRatios=or;
  32.         proc logistic data=&dataset desc;
  33.                 class &var(param=ref ref="&ref");
  34.                 model &y=&var;
  35.         run;
  36. ods html;
  37. data logit_univariate_pe; set logit_univariate_pe pe; if Variable='Intercept' then delete;  run;
  38. data logit_univariate_or; set logit_univariate_or or;  run;
  39. %mend;

  40. /*调用宏进行分析*/
  41. /*%logit1(dataset=test,var=x, y=y)*/

  42. /*对最终输出结果进行整理*/
  43. data logit_univariate;
  44. merge logit_univariate_pe logit_univariate_or;
  45. if probchisq=. then delete;
  46. keep variable classval0 estimate waldchisq probchisq oddsratioest lowercl uppercl;
  47. run;
复制代码



stata SPSS
思冬君 发表于 2018-6-12 20:59:24 |显示全部楼层
本帖最后由 思冬君 于 2018-6-12 21:05 编辑

微信图片_20180612210341.png

结果输出如上所示
回复

使用道具 举报

ransuoqu 发表于 2018-6-20 11:00:22 |显示全部楼层
本帖最后由 ransuoqu 于 2018-6-25 15:30 编辑

楼主,你好,请问如何使用,代码中哪些是需要改变的,数据集名称和变量
回复

使用道具 举报

思冬君 发表于 2018-6-26 14:37:47 |显示全部楼层
ransuoqu 发表于 2018-6-20 11:00
楼主,你好,请问如何使用,代码中哪些是需要改变的,数据集名称和变量
直接run了前三段宏程序,然后在调用宏的时候填写相关参数就可以了,
比如调用定量logistic时候,%logit1(dataset=test,var=x, y=y)里的tets改成你的数据集,X和Y分别改成因变量和自变量即可
定性同样是%logit2(dataset=test,var=x, y=y, ref=0)ref后面是根据你的变量选择refrence就可以了。
最后那段代码是用于整理输出结果的,之后直接print那个logit_univariate的数据集就是你需要输出的结果了~
回复

使用道具 举报

ransuoqu 发表于 2018-6-26 16:14:10 |显示全部楼层
思冬君 发表于 2018-6-26 14:37
直接run了前三段宏程序,然后在调用宏的时候填写相关参数就可以了,
比如调用定量logistic时候,%logit ...
非常感谢,您的指导。
回复

使用道具 举报

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

GMT+8, 2018-12-10 22:07