INFERENCE, PREDICTION, AND SOME MODEL SPECIFICATION TESTS

The purpose of this lesson is to introduce some of LIMDEP's procedures for testing hypotheses in a regression framework. We also look at restricted estimation, several model specification tests (Chow, Hansen, CUSUM, CUSUMSQ, J test, and Cox test). Finally, we look at computing a forecast for an individual prediction and its expected forecasting standard error.

RESET $

READ ; NVAR=6 ; NOBS=15 ; NAMES=1 $
INVEST,CONSTANT,TREND,GNP,INTEREST,INFLATE
0.161 1 1 1.058 5.16 4.4
0.172 1 2 1.088 5.87 5.15
0.158 1 3 1.086 5.95 5.37
0.173 1 4 1.122 4.88 4.99
0.195 1 5 1.186 4.5 4.16
0.217 1 6 1.254 6.44 5.75
0.199 1 7 1.246 7.83 8.82
0.163 1 8 1.232 6.25 9.31
0.195 1 9 1.298 5.5 5.21
0.231 1 10 1.37 5.46 5.83
0.257 1 11 1.439 7.46 7.4
0.259 1 12 1.479 10.28 8.64
0.225 1 13 1.474 11.77 9.31
0.241 1 14 1.503 13.42 9.44
0.204 1 15 1.475 11.02 5.99

/* NOW LET'S RUN A REGRESSION ON THESE DATA AS A STARTING POINT. */

REGRESS ; LHS=INVEST ; RHS=CONSTANT,TREND,GNP,INTEREST,INFLATE ; LIST $

/* NOW TEST THE NULL HYPOTHESIS THAT B4+B5=0 USING THE T TEST */

Calc ; List ;se = sqr(Varb(4,4)+Varb(5,5)+2*Varb(4,5))
;tstat = (b(4)+b(5))/sqr(Varb(4,4)+Varb(5,5)+2*Varb(4,5)) $
Calc ; DF=N-KREG $
Calc ; LIST ; TPROB=TDS(TSTAT,DF) $

/* NOW TEST THE SAME NULL USING AN F STATISTIC. NOTE THAT THIS IS THE SQUARE OF THE T STATISTIC ABOVE AND USES RESTRICTED LEAST SQUARES */

REGRESS ;LHS=INVEST ;RHS=CONSTANT,TREND,GNP,INTEREST,INFLATE ; RLS:B(4)+B(5)=0 $

/* WITH ONLY ONE RESTRICTION, AN F STATISTIC AND A WALD STATISTIC ARE IDENTICAL. THUS, YOU CAN ALSO COMPUTE A WALD AND TEST AGAINST THE CHI SQUARE DISTRIBUTION. */

REGRESS ;LHS=INVEST ;RHS=CONSTANT,TREND,GNP,INTEREST,INFLATE ; WALD:B(4)+B(5)=0 $

/* NOW LET'S DO THE TEST USING A MATRIX APPROACH */

NAMELIST ; X=CONSTANT,TREND,GNP,INTEREST,INFLATE ; Y=INVEST $
MATRIX ; LIST ; R=[0,0,0,1,1] ; B ; Q=[0] $
MATRIX ; LIST ; RB_Q=R*B-Q ; V={S^2}*R*<X'X>*R' $
MATRIX ; LIST ; W=RB_Q'*<V>*RB_Q $
CALC ; LIST ; WALDPROB=1-CHI(W,1) $

/* NOW LET'S MAKE THE PROBLEM MORE COMPLEX BY TESTING MULTIPLE RESTRICTIONS. THE HYPOTHESES ARE B2=0 (NO TIME TREND), B3=1 (CONSTANT GNP ELASTICITY), AND B4+B5=0 (INVESTORS CONSIDER REAL INTEREST RATES). FIRST WITH THE REGRESSION PROCEDURE. */

REGRESS ;LHS=INVEST ;RHS=CONSTANT,TREND,GNP,INTEREST,INFLATE ; CLS:B(2)=0,B(3)=1,B(4)+B(5)=0 $

/* NOW THE SAME F TEST WITH MATRICES */

REGRESS ;LHS=INVEST ;RHS=CONSTANT,TREND,GNP,INTEREST,INFLATE $
MATRIX ; LIST ; R=[0,1,0,0,0/0,0,1,0,0/0,0,0,1,1] ; B ; Q=[0/1/0] $
MATRIX ; LIST ; RB_Q=R*B-Q ; V={S^2}*R*<X'X>*R' $
MATRIX ; LIST ; FSTAT={1/ROW(R)}*RB_Q'*<V>*RB_Q $
CALC ; LIST ; FPROB=1-FDS(FSTAT,3,10) $

/*NOTE THAT WE COULD ALSO USE A WALD STATISTIC WITH A CHI SQUARE DISTRIBUTION. THIS IS JUST J TIMES THE F STATISTIC ABOVE. THE F STATISTIC IS MORE CONSERVATIVE, WHEN USED WITH THE CRITICAL VALUES FROM THE F TABLE. */

MATRIX ; LIST ; W=RB_Q'*<V>*RB_Q $
CALC ; LIST ; WALDPROB=1-CHI(W,3) $

/* IT IS IMPORTANT TO RECOGNIZE THAT THERE IS A DIFFERENCE BETWEEN "TESTING" A RESTRICTION AND "RESTRICTED ESTIMATION". RESTRICTED ESTIMATION MEANS TO USE A DIFFERENT ESTIMATOR CALLED RESTRICTED LEAST SQUARES IN THIS CASE. THE F TESTS ABOVE COMPARED AN UNRESTRICTED AND RESTRICTED REGRESSION. LET'S DO RESTRICTED LEAST SQUARES REGRESSION, FIRST WITH THE CANNED PROCEDURE. */

REGRESS ;LHS=INVEST ;RHS=CONSTANT,TREND,GNP,INTEREST,INFLATE ; RLS:B(2)=0,B(3)=1,B(4)+B(5)=0 $

/*NOW LET'S DO THE SAME THING WITH MATRICES. */

REGRESS ;LHS=INVEST ;RHS=CONSTANT,TREND,GNP,INTEREST,INFLATE $

/* CREATE MATRIX OF RESTRICTIONS AND RESTRICTION VARIANCE. */

NAMELIST ; X=CONSTANT,TREND,GNP,INTEREST,INFLATE $
MATRIX ; LIST ; R=[0,1,0,0,0/0,0,1,0,0/0,0,0,1,1] ; B ; Q=[0/1/0] $
MATRIX ; LIST ; RB_Q=R*B-Q $
MATRIX ; LIST; Vr=R*<X'X>*R' $

/* NOW CALCULATE THE RESTRICTED LEAST SQUARES COEFFICIENTS */

MATRIX ; LIST ; Br=B-<X'X>*R'*<Vr>*RB_Q $

/* NOW CALCULATE THE RESTRICTED LEAST SQUARES COEFFICIENT VARIANCE MATRIX. */

MATRIX ; LIST ; Er=Y-X*Br ; SIG2={1/(N-KREG+ROW(R))}*Er'*Er $
MATRIX ; LIST ; VARRLS=SIG2*<X'X>-SIG2*<X'X>*R'*<Vr>*R*<X'X> $

/* TO SHOW YOU A NEW FUNCTION, NOW EVALUATE THE EQUIVALENCE OF THE RESULTS USING THE MATRIX STATS COMMAND. */

MATRIX ; STAT(Br,VARRLS) $

/* HYPOTHESIS TESTING IS ONE USEFUL APPLICATION OF THESE TECHNIQUES. HOWEVER, WE MAY ALSO USE THEM IN SPECIFICATION TESTING. IN PARTICULAR, THE CHOW TEST FOR STRUCTURAL STABILITY USES A VARIANT OF THESE PROCEDURES. LET'S IMPLEMENT THE CHOW TEST. */

/* DELETE ALL VARIABLES FROM THE PRECEDING */

DELETE ; * $
RESET $
Read ; Nobs = 36 ; Nvar = 11 ; Names = Year, G, Pg, Y, Pnc, Puc, Ppt, Pd, Pn, Ps, Pop $
1960 129.7 .925 6036 1.045 .836 .810 .444 .331 .302 180.7
1961 131.3 .914 6113 1.045 .869 .846 .448 .335 .307 183.7
1962 137.1 .919 6271 1.041 .948 .874 .457 .338 .314 186.5
1963 141.6 .918 6378 1.035 .960 .885 .463 .343 .320 189.2
1964 148.8 .914 6727 1.032 1.001 .901 .470 .347 .325 191.9
1965 155.9 .949 7027 1.009 .994 .919 .471 .353 .332 194.3
1966 164.9 .970 7280 .991 .970 .952 .475 .366 .342 196.6
1967 171.0 1.000 7513 1.000 1.000 1.000 .483 .375 .353 198.7
1968 183.4 1.014 7728 1.028 1.028 1.046 .501 .390 .368 200.7
1969 195.8 1.047 7891 1.044 1.031 1.127 .514 .409 .386 202.7
1970 207.4 1.056 8134 1.076 1.043 1.285 .527 .427 .407 205.1
1971 218.3 1.063 8322 1.120 1.102 1.377 .547 .442 .431 207.7
1972 226.8 1.076 8562 1.110 1.105 1.434 .555 .458 .451 209.9
1973 237.9 1.181 9042 1.111 1.176 1.448 .566 .497 .474 211.9
1974 225.8 1.599 8867 1.175 1.226 1.480 .604 .572 .513 213.9
1975 232.4 1.708 8944 1.276 1.464 1.586 .659 .615 .556 216.0
1976 241.7 1.779 9175 1.357 1.679 1.742 .695 .638 .598 218.0
1977 249.2 1.882 9381 1.429 1.828 1.824 .727 .671 .648 220.2
1978 261.3 1.963 9735 1.538 1.865 1.878 .769 .719 .698 222.6
1979 248.9 2.656 9829 1.660 2.010 2.003 .821 .800 .756 225.1
1980 226.8 3.691 9722 1.793 2.081 2.516 .892 .894 .839 227.7
1981 225.6 4.109 9769 1.902 2.569 3.120 .957 .969 .926 230.0
1982 228.8 3.894 9725 1.976 2.964 3.460 1.000 1.000 1.000 232.2
1983 239.6 3.764 9930 2.026 3.297 3.626 1.041 1.021 1.062 234.3
1984 244.7 3.707 10421 2.085 3.757 3.852 1.038 1.050 1.117 236.3
1985 245.8 3.738 10563 2.152 3.797 4.028 1.045 1.075 1.173 238.5
1986 269.4 2.921 10780 2.240 3.632 4.264 1.053 1.069 1.224 240.7
1987 276.8 3.038 10859 2.321 3.776 4.413 1.085 1.111 1.271 242.8
1988 279.9 3.065 11186 2.368 3.939 4.494 1.105 1.152 1.336 245.0
1989 284.1 3.353 11300 2.414 4.019 4.719 1.129 1.213 1.408 247.3
1990 282.0 3.834 11389 2.451 3.926 5.197 1.144 1.285 1.482 249.9
1991 271.8 3.766 11272 2.538 3.942 5.427 1.167 1.332 1.557 252.6
1992 280.2 3.751 11466 2.528 4.113 5.518 1.184 1.358 1.625 255.4
1993 286.7 3.713 11476 2.663 4.470 6.086 1.200 1.379 1.684 258.1
1994 290.2 3.732 11636 2.754 4.730 6.268 1.225 1.396 1.734 260.7
1995 297.8 3.789 11934 2.815 5.224 6.410 1.239 1.419 1.786 263.2

Create ; lg = Log(100*G/Pop); li = Log(Y); lpg= Log(Pg); lpnc = Log(Pnc); lpuc = log(Puc) $
?
? Example 7.6 in Greene. Separate Regressions
?
Namelist ; X = One,li,lpg,lpnc,lpuc,year $
Sample ; 1 - 36 $
Regress; Lhs = lg ; Rhs = X $
Calc ; ee = sumsqdev $
Sample ; 1 - 14 $
Regress; Lhs = lg ; Rhs = X $
Calc ; ee0 = sumsqdev $
Sample ; 15 - 36 $
Regress; Lhs = lg ; Rhs = X $
Calc ; ee1 = sumsqdev $
Calc ; List ; F = ((ee - ee0 - ee1)/6) / ((ee0+ee1)/24) $
?
? Change Only in the Constant Term
?
Sample ; 1 - 36 $
Create ; Pre = Year <= 1973 ; Post = 1 - Pre $
Regress; Lhs = lg ; Rhs = Pre,Post,li,lpg,lpnc,lpuc,Year $
Calc ; List ; F = ((Sumsqdev - ee0 - ee1)/5) / ((ee0+ee1)/24) $
?
? Separate Subset of Coefficients
?
Create ; Prei = Pre*li ; Prep = Pre*lpg ; Posti= Post*li; Postp= Post*lpg $
Regress; Lhs = lg ; Rhs = Pre,Prei,Prep,Post,Posti,Postp,lpnc,lpuc,Year $
Calc ; List ; F = ((Sumsqdev - ee0 - ee1)/3) / ((ee0+ee1)/24) $
?
? Inadaquate Degrees of Freedom
?

Sample ; 1-14,17-20,23-36$
Regress; Lhs = lg ; Rhs = X $
Calc ; List ; F = ((ee-sumsqdev)/4) / (sumsqdev/26) $
?
? Wald Test for Structural Change
?

Sample ; 1 - 14 $
Regress ; Lhs = lg ; Rhs = X $
Matrix ; b1 = b ; V1 = Varb $
Sample ; 15-36 $
Regress ; Lhs = lg ; Rhs = X $
Matrix ; b2 = b ; V2 = Varb $
Matrix ; d = b1 - b2 ; V = V1 + V2 ; List ; WaldTest = d'*<V>*d $

/* ANOTHER TEST FOR MODEL STABILITY THAT LACKS THE STRINGENT ASSUMPTION OF THE CHOW TEST IS THE CUSUM/CUSUMSQ TEST. THIS TEST IS MORE APPROPRIATE IF YOU DO NOT KNOW THE PRECISE
BREAK POINT FOR THE COEFFICIENTS. ALSO, WE COMPUTE HANSON'S TEST. NOTE THAT WE ALSO ILLUSTRATE HERE LIMDEP'S PROGRAMMING CAPABILITIES BY DEVELOPING A PROCEDURE THAT CAN BE CALLED FROM WITHIN A SESSION.*/
?
? Tests of Model Stability
?

Sample ; 1 - 36 $
Regress ; Lhs = lg ; Rhs = X ; Res = et ; Cusum $
Create ; vt=et*et-sumsqdev/n$
Calc ; K = Col(X) + 1 ; Nobs = n $
Matrix ; ff=init(k,k,0)
; st=[k|0]
; ss=ff$
Procedure
Sample ; Obs $
Calc ; ut = vt(obs)
; rt = et(obs) $
Matrix ; ft = rt*x'
; ft = [ut/ft]
; ff = ff+ft*ft'
; st = st+ft
; ss=ss+st*st' $
Endproc
Execute ; obs=1,nobs$
Matrix ; H=<ff>*ss ; list ; trce(H)$

/* A WALD TEST CAN BE USED TO TEST NON-LINEAR RESTRICTIONS, WHILE THE OTHERS CANNOT. THE REASON IS THAT THE WALD TEST, RELATIVE TO A LIKELIHOOD RATIO, LAGRANGE MULTIPLIER, F TEST, OR T TEST, DOES NOT RELY ON STRONG ASSUMPTIONS OF NORMALITY THAT BREAK DOWN UNDER NON-LINEARITY. HOWEVER, A LIMITATION OF THE WALD TEST IS THAT IT IS NOT INVARIANT TO HOW THE TEST IS PARAMETERIZED. */

DELETE ; * $
RESET $
Read ; Nobs=36 ; Nvar=3 ; Names=1$
Year Y C
1950 791.8 733.2
1951 819.0 748.7
1952 844.3 771.4
1953 880.0 802.5
1954 894.0 822.7
1955 944.5 873.8
1956 989.4 899.8
1957 1012.1 919.7
1958 1028.8 932.9
1959 1067.2 979.4
1960 1091.1 1005.1
1961 1123.2 1025.2
1962 1170.2 1069.0
1963 1207.3 1108.4
1964 1291.0 1170.6
1965 1365.7 1236.4
1966 1431.3 1298.9
1967 1493.2 1337.7
1968 1551.3 1405.9
1969 1599.8 1456.7
1970 1688.1 1492.0
1971 1728.4 1538.8
1972 1797.4 1621.9
1973 1916.3 1689.6
1974 1896.6 1674.0
1975 1931.7 1711.9
1976 2001.0 1803.9
1977 2066.6 1883.8
1978 2167.4 1961.0
1979 2216.2 2004.4
1980 2214.3 2000.4
1981 2248.6 2024.2
1982 2261.5 2050.7
1983 2334.6 2145.9
1984 2468.4 2239.9
1985 2509.0 2312.6
Create ; If(_obsno>1) | y1=y[-1] ; c1=c[-1]$
Sample ; 2-36$
?
? Long Run Marginal Propensity to Consume
?

Regress ; Lhs = C ; Rhs = One,Y,C1 $
Calc ; List ; beta = b(2) ; gamma = b(3)
; lrmpc = beta/(1 - gamma)
; db = 1/(1-gamma)
; dc = beta / (1 - gamma)^2
; vmpc = db^2*Varb(2,2) + dc^2*Varb(3,3)+2*db*dc*Varb(2,3)
; zstat = (lrmpc - 1)/sqr(vmpc)$
Calc ; List
; q = beta+gamma-1
; vq = Varb(2,2)+Varb(3,3)+2*Varb(2,3)
; tstat = q / sqr(vq) $

/* A LIMITATION OF THE PRECEDING TESTS IS THAT THEY ASSUME A NESTED MODEL STRUCTURE. THAT IS, THE HYPOTHESIS BEING TESTED IS NESTED IN A LARGER MODEL. IF THE MODEL STRUCTURE IS NON-NESTED, HOWEVER, THEN THESE TESTS ARE USELESS. YOU MAY USE THE J TEST, COX'S TEST, OR VARIOUS INFORMATION CRITERIA (AKAIKE'S INFORMATION CRITERION, CALLED AIC, OR SCHWARZ'S BAYESIAN CRITERION, CALLED SBC OR BIC) FOR EVALUATING THE EFFICACY OF NON-NESTED MODELS. NOTE THAT WE DEFINE A PROCEDURE AGAIN FOR THE COX TEST. */
?
? J Test for a Consumption Function
?

Regress ; Lhs = C ; Rhs = One,Y,C1 ; Keep = H1F $
Regress ; Lhs = C ; Rhs = One,Y,Y1,H1F $
?
? Cox Test for a Consumption Function
?

Namelist ; X=one,y,y1; Z=one,y,c1 $
?
? This is a general procedure for the Cox Test. Just define the
? variables to be X and Z in two namelists.
?
Proc=CoxTest(Xvars,Zvars,yvar) $
Regress ; Lhs=yvar ; Rhs = Xvars ; Keep = Xb$
Calc ; List ; s2x=sumsqdev/n$
Regress ; Lhs=yvar ; Rhs = Zvars ; Keep = Zd$
Calc ; List ; s2z=sumsqdev/n$
Regress ; Lhs=xb ; Rhs = Zvars ; res=mzxb$
Calc ; List ; bxmzxb=sumsqdev$
Regress ; Lhs=mzxb ; Rhs = Xvars$
Calc ; List ; bxmmmxb=sumsqdev$
Calc ; List ; s2zx=s2x+bxmzxb/n$
Calc ; List ; c01=(n/2)*log(s2z/s2zx)$
Calc ; List ; v01=s2x*bxmmmxb/s2zx^2$
Calc ; List ; q=c01/Sqr(v01)$
EndProc
?
? First test. Then just reverse roles of X and Z.
?
Exec;Proc=CoxTest(X,Z,c) $
Exec;Proc=CoxTest(Z,X,c) $

/* ONCE YOU HAVE A WELL SPECIFIED MODEL, YOU MAY WANT TO USE IT FOR FORECASTS. THE FOLLOWING SHOWS HOW TO COMPUTE FORECASTS FOR THE INVESTMENT EQUATION THAT WE BEGAN WITH. */

DELETE ; * $
RESET $
READ ; NVAR=6 ; NOBS=15 ; NAMES=1 $
INVEST,CONSTANT,TREND,GNP,INTEREST,INFLATE
0.161 1 1 1.058 5.16 4.4
0.172 1 2 1.088 5.87 5.15
0.158 1 3 1.086 5.95 5.37
0.173 1 4 1.122 4.88 4.99
0.195 1 5 1.186 4.5 4.16
0.217 1 6 1.254 6.44 5.75
0.199 1 7 1.246 7.83 8.82
0.163 1 8 1.232 6.25 9.31
0.195 1 9 1.298 5.5 5.21
0.231 1 10 1.37 5.46 5.83
0.257 1 11 1.439 7.46 7.4
0.259 1 12 1.479 10.28 8.64
0.225 1 13 1.474 11.77 9.31
0.241 1 14 1.503 13.42 9.44
0.204 1 15 1.475 11.02 5.99
NAMELIST ; X=CONSTANT,TREND,GNP,INTEREST,INFLATE ; Y=INVEST $
Matrix ; XX = X'X
; Xy = X'y
; bb = <X'X>* X'y $
Calc ; ss = (y'y - bb'Xy)/(n-Col(X)) $
Matrix ; Vb = ss * <X'X> $
?
? Forecast for Investment
?

Matrix ; x0 = [1/16/1.5/10/4] $
Calc ;List ; y0 = x0 ' bb ; s0 = sqr(ss + qfr(x0,Vb))
; upper = y0 + 2.228 * s0 ; lower = y0 - 2.228 * s0 $

DELETE ; * $


/* THAT'S ALL. HOPE YOU ENJOYED THIS WEEK'S COMPUTER EXERCISES. */