楼主: 思冬君
7313 6

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

  • 0关注
  • 2粉丝

本科生

43%

还不是VIP/贵宾

-

威望
0
论坛币
2598 个
通用积分
2.4000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
480 点
帖子
11
精华
0
在线时间
181 小时
注册时间
2017-12-16
最后登录
2024-4-20

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
由于经常需要做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;
复制代码


二维码

扫码加我 拉你入群

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

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

关键词:单因素分析 数据集记录 复制粘贴 进行分析 记录结果 logistic

沙发
思冬君 发表于 2018-6-12 20:59:24 |只看作者 |坛友微信交流群
微信图片_20180612210341.png
结果输出如上所示

使用道具

藤椅
ransuoqu 发表于 2018-6-20 11:00:22 |只看作者 |坛友微信交流群
楼主,你好,请问如何使用,代码中哪些是需要改变的,数据集名称和变量

使用道具

板凳
思冬君 发表于 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 ...
非常感谢,您的指导。

使用道具

地板
百日梦想家 发表于 2019-12-11 22:28:26 |只看作者 |坛友微信交流群
您好,第一段程序里生成blank空集的时候就报错了,显示varname=‘blank ’这句有问题,并且第一个宏结尾那里没有分号,改过来还是报错,请问是我哪里没有调试好吗?

使用道具

7
百日梦想家 发表于 2019-12-11 22:29:02 |只看作者 |坛友微信交流群
思冬君 发表于 2018-6-26 14:37
直接run了前三段宏程序,然后在调用宏的时候填写相关参数就可以了,
比如调用定量logistic时候,%logit ...
您好,第一段程序里生成blank空集的时候就报错了,显示varname=‘blank ’这句有问题,并且第一个宏结尾那里没有分号,改过来还是报错,请问是我哪里没有调试好吗?

使用道具

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

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

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

GMT+8, 2024-4-25 16:49