全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2902 5
2011-08-12
我的编程分为两部分,第一部分是回归:
proc reg data=BA;
model lnwage=exp exp2 exp3 exp4 schooling;
run;

然后我想把回归出来的结果转成矩阵,于是第二部分编程为:
data BA;
set BA;
keep exp exp2 exp3 exp4 schooling;
run;

proc iml;
use BA; read all into bu;

do j=1 to 42;
bi=bu[1,1]+bu[1,2]*j+bu[1,3]*j*j*0.01+bu[1,4]*j*j*j*0.001+bu[1,5]*j*j*j*j*0.0001+16*bu[1,6];

bu[1,2]对应exp,bu[1,3]对应exp2,bu[1,4]对应exp3,bu[1,5]对应exp4,bu[1,6]对应schooling,
但是keep命令部分出现了问题,我始终不能保留从回归得到的intercept部分,也就是bu[1,1]。
想请高人解答如何可以使用Keep命令保留Intercept部分,或者Drop命令也可以,谢谢。
二维码

扫码加我 拉你入群

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

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

全部回复
2011-8-12 23:34:29
大家帮忙啊,小弟急用阿
二维码

扫码加我 拉你入群

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

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

2011-8-13 08:59:51
首先需要你了解proc reg得到的结果数据的变量,看看intercept对应的变量名,试试ods trace 吧
二维码

扫码加我 拉你入群

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

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

2011-8-13 09:56:36
you can output estimates with option outest. See example below.

data t1;
   do i = 1 to 100;
      x=rannor(1230);
      y=2+1*x+ rannor(1230);
          output;
        end;
run;

proc reg data=t1 outest=params;
model y=x;
run;
quit;

proc print data=params;
run;
二维码

扫码加我 拉你入群

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

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

2011-8-13 12:17:48
  在reg 第一行加上 PROC REG data=BA outest=b;
REG 运行之后,
data _null_;
set b;
call symput('intercept',intercept);
run;
然后你引用&intercept,就是你intercept 的值
二维码

扫码加我 拉你入群

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

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

2011-8-16 22:55:25
感谢楼上两位提供解决方法,已经按照提供的方法成功解决问题。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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