DATA ONE; * creates a data set called ONE ; INFILE 'c:\windows\desktop\document\ex6.22' firstobs=2; * reads data, skip line 1; input Year G Pg Y Pnc Puc Ppt Pd Pn Ps ; * INPUT variable names ; lg=log(g); * take the natural logs of variables ; lpg=log(Pg); ly=log(y); lPnc=log(pnc); lpuc=log(puc); lPpt=log(ppt); lpd=log(pd); lPn=log(pn); lps=log(ps); int=1; proc autoreg; model lg = lpg ly lpnc lpuc lppt lpd lpn lps; test lppt=0,ly=1; test lpnc-lpuc,ly=1; test lpnc-lpuc,ly=1,lpd-lpn;; model lg = lpg ly lpnc lpuc lppt lpd lpn lps; restrict lpnc=1,ly=1; restrict lpnc-lpuc,ly=1; restrict lpnc-lpuc,ly=1,lpd-lpn; ******************* Procedures ************************; Proc IML; /* R-square */ start rsquare(b,x,y); t=nrow(y); yhat=x*b; ybar=sum(y)/t; SSR=ssq(yhat-ybar); SST=ssq(y-ybar); SSE=ssq(y-x*b); r2=ssr/sst; print SSR SST SSE r2; finish; /* Wald Test */ start Wald(y,x,R,lr); T=nrow(X); K=ncol(X); J=nrow(R); t_k=t-k; b=inv(x`*x)*x`*y; sig2=(y-x*b)`*(y-x*b)/(T_K); W=(R*b-lr)`*inv(R*inv(x`*x)*R`)*(R*b-lr)/(J*sig2); pval=1-probf(w,j,t_k); print w J T_K pval; finish; /* Lambda 2 form of F-test */ start lambda(y,x,bigr,lr); T=nrow(X); K=ncol(X); J=nrow(bigr); b=inv(x`*x)*x`*y; sseu=(y-x*b)`*(y-x*b); sig2=(sseu)/(T-K); RLS=b+inv(x`*x)*BigR`*inv(BigR*inv(x`*x)*Bigr`)*(Lr-BigR*b); sser=(y-x*rls)`*(y-x*rls); lambda2=(sser-sseu)/(J*sig2); pval2=probf(lambda2,J,T-K); lambda3=(b-rls)`*x`*x*(b-rls)/(J*sig2); pval3=probf(lambda3,J,T-K); Print "Other forms of the test statistics"; print lambda2 pval2 lambda3 pval3; finish; /* Restricted Least Squares */ start RLS(y,x,BigR,Lr) global(vname); T=nrow(X); K=ncol(X); b=inv(x`*x)*x`*y; sig2=(y-x*b)`*(y-x*b)/(T-K); RLS=b+inv(x`*x)*BigR`*inv(BigR*inv(x`*x)*Bigr`)*(Lr-BigR*b); mstar=I(k)-inv(x`*x)*BigR`*inv(BigR*inv(x`*x)*BigR`)*BigR; cov_bstr=sig2*mstar*inv(x`*x)*mstar`; se=sqrt(vecdiag(cov_bstr)); tvals=rls/se; pvals=2*(1-probt(abs(tvals),t-k)); print "Restricted least squares" ; print vname RLS se tvals pvals; run rsquare(RLS,x,y); finish; vname= { int, GasPrice, inc, NewCar, UsedCar, Public, durables, non_dur, services}; use one; read all var{lg} into y; read all var{ int lpg ly lpnc lpuc lppt lpd lpn lps } into x; T=nrow(X); K=ncol(X); b=inv(x`*x)*x`*y; /* Sigma squared */ sig2=(y-x*b)`*(y-x*b)/(T-K); print sig2; /* Estimated Covariance Matrix */ cov=sig2*inv(x`*x); print "The variance covariance matrix", cov; /* Standard Errors */ se=sqrt(vecdiag(cov)); /* Tvalues */ tvals=b/se; pvals=2*(1-probt(abs(tvals),t-k)); print "Ordinary Least Squares"; print vname b se tvals pvals; run rsquare(b,x,y); run reset(y,x); /* Create Restrictions */ BigR={ 0 0 0 0 0 1 0 0 0,0 0 1 0 0 0 0 0 0}; Lr={0,1}; run RLS(y,x,bigr,lr); run wald(y,x,bigr,lr); run lambda(y,x,bigr,lr); Bigr={0 0 0 1 -1 0 0 0 0, 0 0 1 0 0 0 0 0 0}; lr={0,1}; run RLS(y,x,bigr,lr); run wald(y,x,bigr,lr); run lambda(y,x,bigr,lr); Bigr={0 0 0 1 -1 0 0 0 0, 0 0 1 0 0 0 0 0 0, 0 0 0 0 0 0 1 -1 0}; lr={0,1,0}; run RLS(y,x,bigr,lr); run wald(y,x,bigr,lr); run lambda(y,x,bigr,lr); /* Overall F-test */ Big_R=j(k-1,1,0)||I(k-1); lr=j(k-1,1,0); print "Overall f-test"; run wald(y,x,big_r,lr); run; * RUN the program;