use gpe2;
output file = gpe\jieguo.txt reset;
load data[22,2] = gpe\5zhangshuju.txt;
z = data[2:22,.];
proc dierliepaixu(x);
local c,t,s;
c=rows(x);
for u(1,c-1,1);
for i(1,c-1,1);
if x[i,2]>x[i+1,2];
t=x[i,2];
s=x[i,1];
x[i,1]=x[i+1,1];
x[i,2]=x[i+1,2];
x[i+1,1]=s;
x[i+1,2]=t;
endif;
endfor;
endfor;
retp(x);
endp;
w=dierliepaixu(z);
w1=w[1:8,.];
w2=w[14:21,.];
proc yiyuanhuigui(x);
local c,sumxfy,avrxfy,sumsrx,avrsrx,b2fenzi,b2fenmu,b2,b1,sumei2,tss,r,q,sumsrx2,seb2fenmu,seb2,seb1,t1,t2,f;
c=rows(x);
sumxfy = 0;
for i(1,c,1);
sumxfy = sumxfy+x[i,1];
endfor;
avrxfy = sumxfy/c; /*计算消费y的和和均值*/
sumsrx = 0;
for i(1,c,1);
sumsrx = sumsrx+x[i,2];
endfor;
avrsrx = sumsrx/c; /*计算收入x的和和均值*/
b2fenzi=0;
b2fenmu=0;
for i(1,c,1);
b2fenzi=b2fenzi+(x[i,2]-avrsrx)*(x[i,1]-avrxfy);
b2fenmu=b2fenmu+(x[i,2]-avrsrx)*(x[i,2]-avrsrx);
endfor; /*计算b1估计值的分子和分母*/
b2=b2fenzi/b2fenmu;
b1=avrxfy-b2*avrsrx; /*计算出估计值b1,b2*/
sumei2=0;
for i(1,c,1);
sumei2=sumei2+((x[i,1]-(b1+b2*x[i,2]))*(x[i,1]-(b1+b2*x[i,2])));
endfor; /*计算残差的平方和*/
tss=0;
for i(1,c,1);
tss=tss+(x[i,1]-avrxfy)*(x[i,1]-avrxfy);
endfor; /*计算TSS*/
r=1-sumei2/tss; /*计算可决系数*/
q=sqrt(sumei2/(c-2)); /*计算标准差的无偏估计*/
sumsrx2=0;
for i(1,c,1);
sumsrx2=sumsrx2+x[i,2]*x[i,2];
endfor; /*计算srx的平方和*/
seb2fenmu=0;
for i(1,c,1);
seb2fenmu=seb2fenmu+(x[i,2]-avrsrx)*(x[i,2]-avrsrx);
endfor;
seb2=q/sqrt(seb2fenmu); /*计算b2的标准差*/
seb1=q*sqrt(sumsrx2/(c*seb2fenmu)); /*计算b1的标准差*/
t1=b1/seb1; /*计算t1的统计量*/
t2=b2/seb2; /*计算t2的统计量*/
f=t2*t2;
print "b2的估计值" b2;
print "b1的估计值" b1;
print "可决系数r" r;
print "b2的标准差" seb2;
print "b1的标准差" seb1;
print "t1的统计量" t1;
print "t2的统计量" t2;
print "f的统计量" f; /*打印结果*/
endp;
yiyuanhuigui(w1);
yiyuanhuigui(w2);
end;
goldfeld-quanadt的检验程序
但是程序执行后yiyuanhuigui(w1);执行了 结果也打印出来了
而yiyuanhuigui(w2);却显示的出错error G0168 : Wrong number of returns
请问这是什么原因 谢谢了