|
楼主

楼主 |
发表于 2005-8-22 16:24:45
|
只看该作者
sas 编程的问题
options ps=50;
data ;
seed = 387199232;
delta = 0.25;
sigma0 = 1.0;
UCL = 3;
LCL = -3;
numrun = 1000;
maxsam = 10000; *This has to be large;
jjj = 0;
muhatT = 0;
array xxx xxx1-xxx5;
keep xbar muhatT rlen;
NEWRUN:
rlen = 1;
jjj = jjj + 1;
if jjj > numrun then stop;
temp=0;
do i = 1 to maxsam;
do over xxx;
xxx=rannor(seed);
end;
xbar = xxx1;
xbar = xxx1 + delta;
If (xbar > UCL)|(xbar < LCL) then do;
muhatT = temp;
output;
goto NEWRUN;
end;
temp=xbar;
rlen = rlen + 1;
*output;
end;
run;
proc print;
var xbar muhatT;
run;
proc means;
var muhatT rlen;
run;
========================================
如何再找xbar的下标t1, if rlen 使得(xbar[rlen] > UCL), max{t:xbar[t]<=0,0<=t<rlen} ; if rlen 使得(xbar[rlen] < LCL), max{t:xbar[t]>=0,0<=t<rlen}
再找x的下标t2,t2是使得{(xbar[1]^2+...+xbar[t]^2)+(xbar[t+1]^2+...+xbar[rlen]^2)}最大的下标t的值,其中0<=t<rlen |
|