全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2030 4
2013-11-26
程序如下:

data _null_;
   attrib PREDNAME length=$32
          TARGNAME length=$32
          LastParm length=$32
          ;
   file scorecd;
   set betas2 end=last;
   retain TARGNAME PREDNAME LastParm ' ';
   if (Variable="Intercept") then do;
      TARGNAME=compress("&target");
      PREDNAME="P_"||compress(TARGNAME);
      put "**********************************************;";
      put "*** begin scoring code for Logistic Regression;";
      put "**********************************************;";

      put "length " PREDNAME "8;";
      put "label " PREDNAME "= 'Predicted: " TARGNAME +(-1) "';";

      put "*** accumulate XBETA;";
      put "XBETA = " Estimate best20. ";";
   end;
   else if (ClassVal0=' ') then do;
      put "XBETA = XBETA + (" Estimate best20. ") * " Variable ";";
   end;
   else if (compress(Variable)=compress(LastParm)) then do;
      put "else if (" Variable "='" ClassVal0 +(-1) "') then do;";
      put "   XBETA = XBETA + (" Estimate best20. ");";
      put "end;";
   end;
   else do;
      put "if (" Variable "='" ClassVal0 +(-1) "') then do;";
      put "   XBETA = XBETA + (" Estimate best20. ");";
      put "end;";
   end;
   LastParm=Variable;
   if last then do;
      put PREDNAME "= 1/(1+exp(-XBETA));";
   end;
run;

二维码

扫码加我 拉你入群

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

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

全部回复
2013-11-27 04:36:00
ClassVal0是生成的回归参数里面的变量名称。比如logistic回归出来的结果会有obs variable calssval0 df estimate stderr waldchisq probchisq。classval0对应的是分类变量里对应的参数。比如吸烟情况有3类,吸烟=1,戒烟=2,从不吸烟=3,如果3是参考组的话,结果就会出来如下情况
obs variable calssval0 df estimate ...
1 smoke current 1 0.xxx ...
2 smoke past 1 0.xxx ...

所以说calssval0指的是模型里的参数对应的是吸烟里的那个level。
二维码

扫码加我 拉你入群

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

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

2013-11-27 09:48:54
lchw001 发表于 2013-11-27 04:36
ClassVal0是生成的回归参数里面的变量名称。比如logistic回归出来的结果会有obs variable calssval0 df est ...
多谢大师指导,还有个问题,就是那个classval0+(-1)是什么意思啊?lastparm指的是什么?
二维码

扫码加我 拉你入群

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

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

2013-11-27 11:19:08
zljwanzi25 发表于 2013-11-27 09:48
多谢大师指导,还有个问题,就是那个classval0+(-1)是什么意思啊?lastparm指的是什么?
客气。我不是大师。classval0+(-1)是作者指定要输出的内容。lastparm是一个变量名称。在程序的前面几行提到了。
二维码

扫码加我 拉你入群

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

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

2013-11-27 16:17:08
lchw001 发表于 2013-11-27 11:19
客气。我不是大师。classval0+(-1)是作者指定要输出的内容。lastparm是一个变量名称。在程序的前面几行提 ...
谢谢!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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