急求高手解决sas宏程序优化和在给定条件下通过模拟搜索控制限。十分感谢。
下面代码的目的是想得到在给定参数h的情况下,通过模拟结果得到10000次的arl平均值。对于这个代码,请问有没有简单的代码实现?或者提高下面代码的运算速度?
其次,我还想实现通过二分法的方法搜索h,使得搜索到的最终h满足模拟10000次的arl平均值与300的误差在正负1之间。我该怎么实现那?是宏里面嵌套宏还是先创建函数,对其调用那?能不能用代码做一下实例,谢谢。
求解决,万分感谢。
%macro arl0(h);
%do i=1 %to 10000;
data a&i;
retain z 0;
do until((z>&h);
k=0.5;
x=rannor(0);
if (z+x-k) gt 0 then z=z+x-k;
else z=0;
output;
end;
run;
proc sql noprint;select count(*) into :n from a&i;quit;
data arl&i;arl=&n;run;
%end;
%mend arl0;
%arl0(10000);
data arl;set arl1-arl10000;run;
proc means data=arl;var arl;run;