lsnw.m (520B)
1 % LSnw.m Newey West robust estimation 2 % 3 4 function [beta,trob,told,sigma2,robvcv] = lsnw(y,x); 5 6 [N K] = size(x); 7 xxinv = inv(x'*x); 8 beta = xxinv*x'*y; 9 u = y-x*beta; 10 sigma2=u'*u/(N-K); 11 vcv=sigma2*xxinv; 12 told=beta./sqrt(diag(vcv)); 13 14 % Calculate NW vcv 15 G=2*floor(N^(1/4))+1; 16 B=0; 17 for j=0:G; 18 lam=0; 19 for t=j+1:N; 20 st= (x(t,:))'*u(t); 21 stj=(x(t-j,:))'*u(t-j); 22 lam = lam +st*stj'; 23 end % t 24 lam = lam/N; 25 B=B+(1-j/(G+1))*(lam+lam'); 26 end %j 27 B=(N/(N-K))*B; 28 robvcv =xxinv*(N*B)*xxinv; 29 trob = beta./sqrt(diag(robvcv));