function [ywith,xwith,meanny,meannx,meanty,meantx]=demean(y,x,N,T,model) % demeaning of the y and x variables, depending on (info.)model [nobs nvar]=size(x); meanny=zeros(N,1); meannx=zeros(N,nvar); meanty=zeros(T,1); meantx=zeros(T,nvar); if (model==1 | model==3); for i=1:N ym=zeros(T,1); xm=zeros(T,nvar); for t=1:T ym(t)=y(i+(t-1)*N,1); xm(t,:)=x(i+(t-1)*N,:); end meanny(i)=mean(ym); meannx(i,:)=mean(xm); end clear ym wym xm; end % if statement if ( model==2 | model==3) for i=1:T t1=1+(i-1)*N;t2=i*N; ym=y([t1:t2],1); xm=x([t1:t2],:); meanty(i)=mean(ym); meantx(i,:)=mean(xm); end clear ym wym xm; end % if statement en=ones(T,1); et=ones(N,1); ent=ones(nobs,1); if model==1 ywith=y-kron(en,meanny); xwith=x-kron(en,meannx); elseif model==2 ywith=y-kron(meanty,et); xwith=x-kron(meantx,et); elseif model==3 ywith=y-kron(en,meanny)-kron(meanty,et)+kron(ent,mean(y)); xwith=x-kron(en,meannx)-kron(meantx,et)+kron(ent,mean(x)); else ywith=y; xwith=x; end % if statement