半参数线性回归模型的最小二乘核估计。b为参数的估计,gp是非参数函数的估计。
n=300;%the number of the observations
c=1/3;%bandwidth h=c*n^(-1/5)
%data
x=rand(n,1);
z=randn(n,1);
u=0.4*sqrt(x).*randn(n,1);
y=1+z+sin(8*x+5)+u;
%estimating E(y|x) and E(z|x)
h=c*n^(-1/5);
g1=zeros(n,1);
g2=zeros(n,1);
p=ones(n,1);
for i=1:n;
w=zeros(n);
for j=1:n;
e=((x(j)-x(i))/h)^2;
w(j,j)=0.75*(1-e)*(e<1);
end;
g1(i)=(p'*w*y)/(p'*w*p);
g2(i)=(p'*w*z)/(p'*w*p);
end;
200
%estimating b
yy=y-g1;
zz=z-g2;
b=(yy'*zz)/(zz'*zz)
%estimating g(x)
gp=zeros(n,1);
for i=1:n;
w=zeros(n);
for j=1:n;
e=((x(j)-x(i))/h)^2;
w(j,j)=0.75*(1-e)*(e<1);
end;
gp(i)=(p'*w*(y-b*z))/(p'*w*p);
end;
[x y-b*z gp]
plot(x,y-b*z,'.',x,gp,'.')
半参数线性回归模型的最小二乘局部线性估计。b为参数的估计,gp是非参数函数的估计。
n=300;%the number of the observations
c=0.4;%bandwidth h=c*n^(-1/5)
%data
x=rand(n,1);
z=randn(n,1);
u=0.4*sqrt(x).*randn(n,1);
y=1+z+cos(8*x+5)+u;
%estimating E(y|x) and E(z|x)
h=c*n^(-1/5);
g1=zeros(n,1);
g2=zeros(n,1);
p=ones(n,1);
for i=1:n;
x0=[p x-x(i)];
w=zeros(n);
for j=1:n;
e=((x(j)-x(i))/h)^2;
w(j,j)=0.75*(1-e)*(e<1);
end;
a1=inv(x0'*w*x0)*(x0'*w*y);
201
a2=inv(x0'*w*x0)*(x0'*w*z);
g1(i)=a1(1);
g2(i)=a2(1);
end;
%estimating b
yy=y-g1;
zz=z-g2;
b=(yy'*zz)/(zz'*zz)
%estimating g(x)
gp=zeros(n,1);
for i=1:n;
x0=[p x-x(i)];
w=zeros(n);
for j=1:n;
e=((x(j)-x(i))/h)^2;
w(j,j)=0.75*(1-e)*(e<1);
end;
a=inv(x0'*w*x0)*(x0'*w*(y-b*z));
gp(i)=a(1);
end;
[x y-b*z gp]
plot(x,y-b*z,'.',x,gp,'.')
半参数线性回归模型的最小二乘近邻估计。b为参数的估计,gp是非参数函数的估计。
n=300;%the number of the observations
c=0.4;%bandwidth h=c*n^(-1/5)
%data
x=rand(n,1);
z=randn(n,1);
u=0.4*randn(n,1);
y=1+z+sin(8*x+5)+u;
%estimating E(y|x) and E(z|x)
k=35;
g1=zeros(n,1);
g2=zeros(n,1);
for i=1:n;
q=abs(x-x(i));
202
d0=[q x y z];
d=sortrows(d0);
h=d(k,1);
a1=0;b1=0;b2=0;
for j=1:k;
e=(d(j,1)/h)^2;
a1=a1+0.75*(1-e);
b1=b1+0.75*(1-e)*d(j,3);
b2=b2+0.75*(1-e)*d(j,4);
end;
g1(i)=b1/a1;
g2(i)=b2/a1;
end;
%estimating b
yy=y-g1;
zz=z-g2;
b=(yy'*zz)/(zz'*zz)
%estimating g(x)
gp=zeros(n,1);
for i=1:n;
q=abs(x-x(i));
d0=[q x y z];
d=sortrows(d0);
h=d(k,1);
a1=0;b1=0;b2=0;
for j=1:k;
e=(d(j,1)/h)^2;
a1=a1+0.75*(1-e);
b1=b1+0.75*(1-e)*d(j,3);
b2=b2+0.75*(1-e)*d(j,4);
end;
gp(i)=(b1-b*b2)/a1;
end;
[x y-b*z gp]
plot(x,y-b*z,'.',x,gp,'.')
半参数线性回归模型的最小二乘正交序列估计。b为参数的估计,gp是非参数函数的估计。
n=300;%the number of the observations
%data
203
x=rand(n,1);
z=randn(n,1);
u=0.4*sqrt(x).*randn(n,1);
y=1+z+cos(8*x+5)+u;
%estimating E(y|x) and E(z|x)
a=0;
b=1;
xx=(2/(b-a))*x-(a+b)/(b-a);
m=5;
p=zeros(n,m);
p(:,1)=(1/sqrt(2))*ones(n,1);
p(:,2)=(1/sqrt(2/3))*xx;
for i=3:m;
p(:,i)=(1/i)*(2*i-1)*xx.*p(:,i-1)-(1/i)*(i-1)*p(:,i-2);
end;
b1=inv(p'*p)*p'*y;
b2=inv(p'*p)*p'*z;
g1=p*b1;
g2=p*b2;
%estimating b
yy=y-g1;
zz=z-g2;
b=(yy'*zz)/(zz'*zz)
%estimating g(x)
gp=g1-b*g2;
[x y-b*z gp]
plot(x,y-b*z,'.',x,gp,'.')
半参数非线性回归模型的最小二乘核估计。b为参数的估计,mu是非参数函数的估计。
n=300;
x=rndu(n,1);
z=rndn(n,1);
u=rndn(n,1);
/*u=sqrt(x).*rndn(n,1);*/
/*v=rndn(n,1);
u=zeros(n,1);
u[1]=v[1];
i=2;
204
do until i>n;
u[i]=0.8*u[i-1]+v[i];
i=i+1;
endo;*/
y=sin(z)+sin(8*x+5)+u;
d=x~z~y;
/* Objective Function */
proc fm(b);
local h,x,z,y,m,i,xx,k,a1,a2;
h=0.1*n^(-1/5);
x=d[.,1];
z=d[.,2];
y=d[.,3];
m=0;
i=1;
do until i>n;
xx=x-x[i];
k=exp(-0.5*h^(-2)*xx.^2);
a1=ones(n,1)'*k;
a2=k'*(y-sin(b[1]*z));
/*a3=k'*xx.^2;
a4=k'*xx;
a5=k'*(y.*xx);
m=m+(y[i]-(a5*a4-a2*a3)/(a4^2-a1*a3))^2;*/
m=m+(y[i]-sin(b[1]*z[i])-a2/a1)^2;
i=i+1;
endo;
retp(m);
endp;
call qnewtonset;
/* QNEWTON Options */
_qn_MaxIters=1000; @ no more than 100 iterations @
_qn_PrintIters=0; @ print each iteration @
b0=0; @ starting value @
{b,f,g,code}=qnewton(&fm,b0);
x=d[.,1];
z=d[.,2];
y=d[.,3];
205
h=0.1*n^(-1/5);
um=zeros(120,1);
mu=zeros(120,1);
i=1;
do until i>120;
o=i/120;
um[i]=o;
xx=x-o;
k=exp(-0.5*h^(-2)*xx.^2);
a1=ones(n,1)'*k;
a2=k'*(y-sin(b[1]*z));
/*a3=k'*xx.^2;
a4=k'*xx;
a5=k'*(y.*xx);
m=m+(y[i]-(a5*a4-a2*a3)/(a4^2-a1*a3))^2;*/
mu[i]=a2/a1;
i=i+1;
endo;
print um~mu;
end;
评论6