各位前辈好:
初学sas,遇到一个棘手问题:如何对以下程序重复模拟1000次。以下是回归分析求参数,为计算参数的准确率,老师要求重复模拟1000次,急,万分感谢。
data X1;/*生成6个独立的服从标准正态分布的随机数*/
do i=1 to 200;
X1=0+1*rannor(0);
output;
end;
run;
data X2;
do i=1 to 200;
X2=0+1*rannor(0);
output;
end;
run;
data X3;
do i=1 to 200;
X3=0+1*rannor(0);
output;
end;
run;
data X4;
do i=1 to 200;
X4=0+1*rannor(0);
output;
end;
run;
data X5;
do i=1 to 200;
X5=0+1*rannor(0);
output;
end;
run;
data X6;
do i=1 to 200;
X6=0+1*rannor(0);
output;
end;
run;
data X; /*将六个变量生成的随机数合并在一起*/
merge X1 X2 X3 X4 X5 X6;
by i;
run;
data yifu;
do i=1 to 200;
yifu=0+4*rannor(0);
output;
end;
run;
data X0;/*将X中的X1-X6选出来*/
set X;
keep X1 X2 X3 X4 X5 X6;
run;
data yifu0;/*将yifu选出来,以便后面生成矩阵*/
set yifu;
keep yifu;
run;
proc iml;/*将X0数据集变成矩阵x */
use X0;
read all var _num_ into XX;
print XX;
use yifu0;/*将yifu数据集变成矩阵yifusilo */
read all var _num_ into yifusilo;
print yifusilo;
reset print;/*矩阵的生成和运算命令*/
beta={1, 0.8, 0.6, 0, 0, 0};
Y=XX*beta+yifusilo;/*生成Y*/
print Y;
create YY from Y;/*将矩阵Y转换成数据集YY*/
append from Y;
quit;
data bijiao;
merge X0 YY;
run;
/*
data bijiao;
(rename=(COL1=Y0));
set bijiao;
run;
proc print data=bijiao;
run;
*/
proc reg data=bijiao;
model COL1=X1-X6/selection=stepwise sle=0.10 sls=0.10;
run;
quit;
proc reg data=bijiao;
model COL1=X1-X6/selection=rsquare
best=2 cp aic bic ;
run;