sir, Matrix dimension in line 54(I kept question mark for 54th line) does not match after reducing my matrx from p-components to m-components. (m<p) . if possible please give me the answer and my prgramme is

clear all; sum1=0; sum2=0; sum3=0; p=5; n=10; sum4=0; sig=1; MU2=0; SIGMA2=5; k=0.05; m=1000; ev=1; for j=1:m e=normrnd(0,ev,n,1); u=randn(n, p); r=0.99; X=zscore(sqrt(1-r*r)*u + r*u ); %X=[ones(n,1) x]; lamda=eig(X'*X) beta0=[1;3;4;1;3]; y=X*beta0 + e; bols=inv(X'*X)*X'*y; y=y-mean(y); W=pcacov(X'*X); Z=X*W; D=Z'*Z; gamaols=inv(D)*Z'*y; gama=W'*bols; estsigmasq= (y'*y - (gamaols)'*Z'*y)/(n-p-1); A=D+k*eye(p); gamariz=(eye(p)-inv(A)*k)*gamaols; biasgama =-inv(A)*k*gama; biasbeta=W*biasgama; gama1=transpose(W)*beta0; khkb=estsigmasq/((gamaols)'*gamaols); A=D+khkb*eye(p); gamahathk=(eye(p)-inv(A)*khkb)*gamaols; biasgamahathk=-inv(A)*khkb*gama1; vargamahk=var(gamahathk); E=sort(lamda, 'descend'); N=nnz(cumsum(E/sum(E))<=0.95) Xm=X(:,[1:N]); %m<p -components [P1,T1]=princomp(Xm); Tm=T1(:,[1:N]); Pm=P1(:,[1:N]) ; Dm=T'*T; f=normrnd(0,sig,n,1); F=normrnd(MU2, SIGMA2, n, N); Q1=princomp(X); q=Q1([1],[1:N]); f=F(:, [1]); y=T*q'+f; gama2=Tm'*f; blngamaols=inv(Dm)*Tm'*y blngama=P'*gama2 blnksv=estsigmasq/(transpose(blngamaols)*blngamaols) Am=Dm+blnksv*eye(N) gamahatksv=(eye(N)-pinv(Am)*blnksv)*blngamaols biasgamahatksv=-pinv(Am)*blnksv*blngama vargamaksv=var(gamahatksv) mserizehk=(gamahathk-beta0)'*(gamahathk-beta0) mseols=(bols-beta0)'*(bols-beta0) mserizeksv=(gamahatksv-beta0)'*(gamahatksv-beta0) ?? sum1=sum1+ mserizehk; sum2=sum2+ mserizeksv; sum3=sum3+ mseols; end meanMSEhk=sum1/m; meanMSEksv=sum2/m; meanMSEols=sum3/m; res1=[meanMSEols meanMSEhk meanMSEksv]

Answers (0)

Categories

Asked:

on 19 Jan 2016

Commented:

jgg
on 19 Jan 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!