DATA MY;
array x(1000) x1-x1000;
array y(1000) y1-y1000;
do i=1 to 1000;
do j=1 to 1000;
x(i)=rannor(0); /*生成1000个正态分布的随机数x*/
y(j)=rannor(0); /*生成1000个正态分布的随机数y*/
end;
end;
a=mean(of x1-x1000);/*计算1000个数x的均数*/
b=std(of x1- x1000);/*计算1000个数x的标准差*/
c=mean(of y1-y1000);/*计算1000个数y的均数*/
d=std(of y1-y1000);/*计算1000个数y的标准差*/
output;
run;
data MY1;
set MY;
%let m1= a;%let s1= b;%let m2=c;%let s2=d;%let l=-c/5;%let u=c/5;%let α=0.05;/*定义宏变量l是区间检验下限,u是检验上限*α是检验水准*/
array nt(2)nt1-nt2;
array nr(2)nr1-nr2;
do i=1to 2;
do j=1to 2;
nt(i)=&m1+&s1*rannor(0);/*生成2个正态分布的随机数,其均数是a,标准差是b*/
nr(j)=&m2+&s2*rannor(0);/*生成2个正态分布的随机数,其均数是c,标准差是d*/
end;
end;
Mt=mean(of nt1-nt2);/*计算前2个数的均数*/
St=std(of nt1-nt2);/*计算前2个数的标准差*/
Mr=mean(of nr1-nr2);/*计算后2个数的均数*/
Sr=std(of nr1-nr2);/*计算后2个数的标准差*/
SSt=St**2*(2-1);/*计算前一组的离均差平方和*/
SSr=Sr**2*(2-1);/*计算后一组的离均差平方和*/
Sc=(SST+SSr)/(4-2);/*计算2组的合并方差*/
Se=sqrt(Sc*(1/2+1/2));/*计算2组的标准误*/
T1=((Mt-Mr)-&l)/Se;/*对下限l进行假设检验,计算T1*/
T2=(&u-(Mt-Mr))/Se;/*对上线u进行假设检验,计算T2*/
P1=probt(-T1,4-2);/*计算-T1对应的T分布左侧累计概率*/
P2=probt(-T2,4-2);/*计算-T2对应的T分布右侧的累计概率*/
output;
%macro MY11;
%do i=1 %to 1000;
PROC PRINT;
VAR P1 T1 P2 T2;
run;
%end;
%mend MY11;
%MY11;
为什么输出的1000个P1T1P2T2都一样啊 请教高手指导一下 ,谢谢大家了