上传写的关于面板数据随机前沿非参局部线性估计的命令,但程序里无法运行,求高手指导哪里出了问题?感谢
format long g
DAT1=wk1read(‘data.wk1’);
Y1=log(DAT1(:,1));
X1=log(DAT1(:,2));
q=1;n=5;t=19;
hl=1.059*std(X1)*(n*t)^(-l/5);
h=[h1];
X=[X1];
[m1]=mllls(X,h,Y1,n);eit1=Y1-m1;
it=ones(t,1);
zm=kron(eye(n),it);
pee=zm*inv(zm`*zm)*zm`;
que=eye(n*t)-pee;
sig1hat=inv(sum(diag(pee),1))*(eit1`*pee*eit1);
sigvhat=inv(sum(diag(que),1))*(eit1`*que*eit1);
omeganp=(inv(sig1hat))*pee+(inv(sigvhat))*que;
[dd1,dd2]=NPFGLS(X,h,Y1,omeganp,n);
omega=inv(omeganp);
su=omega(1,2);sv=omega(1,1)-su;
theta=su/(sv^2+t*su);
vv=Y1-dd1;
v=reshape(vv,t,n);
sumvit=sum(v);
ustar=theta*sumvit;
u=max(ustar)-ustar;
tel=exp(-u);tel`
B1=reshape(dd2(:,1),t,n);
Function[mllls]=mllls(x,h,y,n)
xrow=size(x,1);xcol=size(x,2);
t=xrow/n;
delta=zeros(xcol+1,xrow);
z=[ones(xrow,1)x];
dx=zeros(xcol,1);
k=1;
constant=inv((sqrt(2*pi))^xcol);
while k<=xrow
i=1;
klx=zeros(xrow,xrow);
halfklx=zeros(xrow,xrow);
while i<=xrow
j=l;
kelx=constant;
while j<=xcol
dx(j)=(x(i,j)-x(k,j))*(1/h(j));
kelx=kelx*(exp(-0.5*(dx(j)^2)));
j=j+l;
end;
klx(i,i)=kelx;
i=i+1;
end;
delta(:,k)=inv(z`*klx*z)*z`*klx*y;
k=k+1;
end;
delta=delta`;
m=1;
while m<=xcol
delta(:,1)=delta(:,1)+x(:,m).*delta(:,m+1);
m=m+1;
end
mills=delta(:,1);
return
function[dd1,dd2]=NPFGLS(x,h,y,omeganp,n)
xrow=size(x,1);xcol=size(x,2);
t=xrow/n;
d1=zeros(xcol+1,xrow);
z=[ones(xrow,1)x];
dx=zeros(xcol,1);
k=l;
constant=inv((sqrt(2*pi))^xcol);
z=[ones(xrow,1)x];
while k<=xrow
i=1;
klx=zeros(xrow,xrow);
halfklx=zeros(xrow,xrow);
while i<=xrow
j=l;
kelx=constant;
while j<=xcol
dx(j)=(x(i,j)-x(k,j))*(1/h(j));
kelx=kelx*(exp(-0.5*(dx(j)^2)));
j=j+1;
end;
klx(i,i)=kelx;
i=i+1;
end;
halfklx=sqrt(klx);
d1(:,k)=inv(z`*halfklx*omeganp*halfklx*z)*z`*halfklx*omeganp*halfklx*y;
k=k+1;
end;
d1=d1`;
m=1;
while m<=xcol
d1(:,1)=d1(:,1)+x(:,m).*d1(:,m+1);
m=m+1;
end;
dd1=d1(:,1);dd2=d1(:,2:xcol+1);
return