⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kss.m

📁 Rice University的Robin C. Sickles professor开发的专门用于paneldata model test and estimation 的program
💻 M
字号:
% Kneip, Sickles, and Song Estimator% Written by Wonho Song, March 2003% E-mail: whsong@kiep.go.kr, whsong73@hotmail.comfunction [beta1p,se_b1p,KSS1P,L1p,pp,R2k]=kss(y,x,n,LS,gr_kss)[nt,p] = size(x); t=nt/n;[L1p,pp]=dim1p(y,x,n,LS,gr_kss); [beta1p,se_b1p,KSS1P,wt1p]=method1p(y,x,n,L1p,pp);ek=y-x*beta1p; ek=ek-mean(ek);% Calculation of R2 ey=y-mean(y);R2k=1-(ek'*ek)/(ey'*ey);R2k=[R2k;1-(1-R2k)*(nt-1)/(nt-p-n)];%save wt wt1p;%**********************************************************************%                   Selection of Dimension for KSS1P%**********************************************************************function [L1p,pp]=dim1p(y,x,n,LS,gr_kss);[nt,p] = size(x); t=nt/n; t1 = (1:t)';gr_st=gr_kss(1); gr_in=gr_kss(2); gr_en=gr_kss(3);%*************************** %          Step1 %***************************ytbar=mean(reshape(y,t,n)')';y_w=y-kron(ones(n,1),ytbar);xtbar=[]; for i=1:pxtbar=[xtbar mean(reshape(x(:,i),t,n)')']; end;x_w=x-kron(ones(n,1),xtbar);kk=gr_st:gr_in:gr_en; ccc=[];for pp=kk    [Zh,Wh,beta,vi,viz]=vfun(y_w,x_w,n,pp);    bb=sum((vi-viz).^2)/(n*t)/(1-trace(Zh)/t)^2;     ccc=[ccc;bb];end;[cc2,I]=sort(ccc);pp=kk(I(1));%*************************** %         Step2 %***************************[Zh,Wh,beta,vi,viz]=vfun(y_w,x_w,n,pp);temp2=vi-viz;sig2=sum(temp2.^2)/((n-1)*trace(Wh^2));%*************************** %          Step3 %***************************temp=reshape(viz,t,n);SIGMA=temp*temp'/n;[vve,vva] = eig(SIGMA);       va = flipud(diag(vva));   % eigenvalues       ve = fliplr(vve);         % eigenvectorsCl=[];for L=1:LS       ff = sum(va(L+1:t));       gg = ve(:,1:L);   % number of principals       Pl = eye(t)-gg*gg';%*************************** %         Step4 %***************************up=n*ff-(n-1)*sig2*trace(Zh*Pl*Zh);dw=sqrt(2*n*sig2^2*trace((Zh*Pl*Zh)^2));cc=up/dw;%disp([up dw cc sig2])Cl=[Cl;cc];end;   %*** end of LS loop ***Cl2=(Cl<2.33);for i=1:LSif Cl2(i)==1; L1p=i; break; end;end;if sum(Cl2)==0; L1p=LS; end;%************************************************************************* %                           METHOD 1P %*************************************************************************function [beta,se_b,KSS1P,wt]=method1p(y,x,n,L,pp);[nt,p] = size(x); t=nt/n; t1 = (1:t)';%*************************** %         Step1 %***************************ytbar=mean(reshape(y,t,n)')';y_w=y-kron(ones(n,1),ytbar);xtbar=[]; for i=1:pxtbar=[xtbar mean(reshape(x(:,i),t,n)')']; end;x_w=x-kron(ones(n,1),xtbar);[Zh,Wh,beta,vi,viz]=vfun(y_w,x_w,n,pp);%*************************** %         Step2%***************************temp=reshape(viz,t,n);SIGMA=temp*temp'/n;[vve,vva] = eig(SIGMA);       va = flipud(diag(vva));   % eigenvalues       ve = fliplr(vve);         % eigenvectors       gt = sqrt(t)*ve(:,1:L);   % number of principals%*************************** %         Step3 %***************************Zh2=gt*inv(gt'*gt)*gt';Wh2=eye(t)-Zh2;y_til=[]; x_til=[];for i=1:ny_til=[y_til;Wh2*y_w(t*(i-1)+1:t*i)];x_til=[x_til;Wh2*x_w(t*(i-1)+1:t*i,:)];end;beta=inv(x_til'*x_til)*x_til'*y_til;vi=y_w-x_w*beta;wt=Zh2*(ytbar-xtbar*beta);%save wt;%*************************** %         Step4 %***************************theta=[]; for i=1:ntheta=[theta inv(gt'*gt)*gt'*vi(t*(i-1)+1:t*i)];end;%*************************** %         Step5 %***************************err=y_til-x_til*beta;bsig2=err'*err/(nt-n-p);bcov=bsig2*inv(x_til'*x_til);se_b=sqrt(diag(bcov));KSS1P=[];for i=1:nKSS1P=[KSS1P gt*theta(:,i)+wt];    end;KSS1P=KSS1P-mean(mean(KSS1P));tv=[];for i=1:nv_tmp=vi(t*(i-1)+1:t*i);tht=theta(:,i);ee=v_tmp-gt*tht;s2=ee'*ee/(t-L);thcov=s2*inv(gt'*gt);se_th=sqrt(diag(thcov));tv=[tv tht./se_th];end;%*************************************%    Procedure to calculate viz%*************************************function [Zh,Wh,beta,vi,viz]=vfun(y_w,x_w,n,pp);[nt,p] = size(x_w); t=nt/n; t1 = (1:t)';Zh=reshape(csaps(t1,eye(t),pp,t1),t,t);Wh=eye(t)-Zh;y_til=[]; x_til=[];for i=1:ny_til=[y_til;Wh*y_w(t*(i-1)+1:t*i)];x_til=[x_til;Wh*x_w(t*(i-1)+1:t*i,:)];end;beta=inv(x_til'*x_til)*x_til'*y_til;vi=y_w-x_w*beta;viz=[];for i=1:nviz=[viz;Zh*vi(t*(i-1)+1:t*i)];end;%********** End of Program **************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -