全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
7053 18
2012-08-22
上传写的关于面板数据随机前沿非参局部线性估计的命令,但程序里无法运行,求高手指导哪里出了问题?感谢
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

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-8-22 18:55:23
好长啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-8-22 19:32:16
你这个是命令的结合;
所以不要用命令这个单词,比如求逆,你说用到命令 inv,也可以理解;
命令的群体可以保存为一个文件,这个叫 脚本文件;

第二点建议是:看到其中似乎有一些非matlab 自带的命令,如:NPFGLS等。
如果你不上传这类命令函数的文件,别人下载你的程序,首先就这里会有错误。

或者你告诉里面涉及的函数在什么工具箱里有,要么你上传,要么提示别人怎么下载。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-8-22 19:33:18
第三一点,在你的程序开头部分,有个 data.xls 文件;
没有数据,别人怎么运行?
如果可以,也请上传数据先。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-8-22 19:34:38
wk1read
这个命令读的数据,mathworks公司说,以后的高版本不在有这个命令,且没有替换这个功能的其他命令出现;
数据可以替换下,换为 excel 格式的文件,或者.txt 的也可以;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-8-22 20:16:54
tulipsliu 发表于 2012-8-22 19:34
wk1read
这个命令读的数据,mathworks公司说,以后的高版本不在有这个命令,且没有替换这个功能的其他命令 ...
谢谢指点, 意思是这个脚本是可以运行的,对么?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群