/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ OLS.PRC @ @ Purpose: Computes Basic OLS Estimates @ @ Written by Hyeongwoo Kim (Jan 31, 2003) @ @-------------------------------------------------------------------------@ @ @ @ Format: {b,rsd,vcb,se,tr,pv,rsq}=ols(y,x,c); @ @ @ @ Input : y (nX1) Vector of Dependent variables @ @ x (nXk) Matrix of Independent Variables (w/o constant) @ @ c=0 No Constant @ @ =1 Include Constant @ @ =2 Include Constant and Linear Time Trend @ @ @ @ Output: b (kx1) OLS Coefficient Estimates @ @ rsd (nx1) OLS Residuals @ @ vcb (kxk) Variance-Covariance Matrix of OLS Coefficients @ @ se (kx1) Standard Errors of OLS Coefficients @ @ tr (kx1) t-ratios @ @ pv (kx1) p-values @ @ rsq (1x1) R-square @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ proc(7) = ols(y,x,c); local df,b,rsd,ssq,vcb,se,tr,pv,rsq; if c eq 1; x=ones(rows(x),1)~x; endif; if c eq 2; x=ones(rows(x),1)~seqa(1,1,rows(x))~x; endif; df=rows(x)-cols(x); b=inv(x'x)*x'y; rsd=y-x*b; ssq=(rsd'rsd)/df; vcb=ssq*inv(x'x); se=sqrt(diag(vcb)); tr=b./se; pv=2*cdftc(abs(tr),df); rsq=1-((rsd'rsd)/(y'y)); retp(b,rsd,vcb,se,tr,pv,rsq); endp;