options crt; ? 6e4 in kopcke; freq q; dot e s; smpl 52:1,86:4; fj. = f/j.; smpl 56:1,79:4; olsq i. c fj.(4,6,none); rename @ssr ssrpdl; ar1 i. c fj.(4,6,none); ? (a) rename @logl loglp3; ? olsq i. c fj.-fj.(-5); set df1 = 2; ?? set df2 = @nob-7; set fstat = (ssrpdl-@ssr)/df1/@s2; ? @s2 = @ssr/df2 cdf(F,df1=df1,df2=df2) fstat; ? (b.1) ar1 i. c fj.-fj.(-5); rename @logl loglu; set lrpu = 2*(loglu-loglp3); cdf(chisq,df=df1) lrpu; ? (b.2) ? ar1 i. c fj.(5,6,none); set df1 = 1; set lrp34 = 2*(@logl-loglp3); cdf(chisq,df=df1) lrp34; ? (c) ? ? these do loops estimate all PDLs up to 5th degree for up to 12 lags ? (2*57 equations for each type of investment) ? smpl 56:1,86:4; const minsbic 999999 nl 0 nd 0 ifk 0; supres @coef; ? turn off all output do nlags=1,12; set maxd = nlags - pos(nlags-6); ? maxd = min(nlags,6) do ndeg=1,maxd; ar1(silent) i. c fj.(ndeg,nlags,none); sbmin 0; ar1(silent) i. c fj.(ndeg,nlags,none) k.lag; sbmin 1; enddo; enddo; supres; print minsbic nl nd ifk; ? (d) -- min of @SBIC ? print selected model if ifk; then; ar1 i. c fj.(nd,nl,none) k.lag; else; ar1 i. c fj.(nd,nl,none); enddot; ? proc sbmin ifklag; ? SBIC includes C, RHO, K.LAG, free params of PDL set @sbic = -@logl + (1+ndeg+ifklag+1)*log(@nob)/2; if (@sbic < minsbic); then; do; set minsbic = @sbic; set nl = nlags; set nd = ndeg; set ifk = ifklag; enddo; endproc;