You are on page 1of 7

The vector autoregressive model (VAR) is actually simpler to estimate than the VEC model.

It is used when there is no cointegration among the variables and it is estimated using time series that have been transformed to their stationary values. In the example from your book, we have macroeconomic data log of real personal disposable income (denoted as Y) and log of real personal consumption expenditure (denoted as C) for the U.S. economy over the period 1960:1 to 2009:4 that are found in the fred.dta dataset. As in the previous example, the first step is to determine whether the variables are stationary. If they are not, then difference them, checking to make sure that the differences are stationary (i.e., the levels are integrated). Next, test for cointegration. If they are cointegrated, estimate the VEC model. If not, use the differences and lagged differences to estimate a VAR. model. Load the data. In this exercise we’ll be using the fred.dta data.
use fred, clear

Estimating a VAR

The data are quarterly and begin in 1960q1 and extend to 2009q4. Just as we did in the example above, sequences of quarterly dates:
gen date = q(1960q1) + _n - 1 format %tq date tsset date

The first step is to plot the series in order to identify whether constants or trends should be included in the tests of nonstationarity. Both the levels and differences are plotted.
tsline lc ly, legend(lab (1 "ln(RPCE)") lab(2 "ln(RPDI)")) /// name(l1, replace) tsline D.lc D.ly, legend(lab (1 "ln(RPCE)") lab(2 "ln(RPDI)")) /// name(d1, replace)
9.5 7.5
1960q1

8

8.5

9

1970q1

1980q1 date ln(RPCE)

1990q1

2000q1 ln(RPDI)

2010q1

02 . lags(1 2 3) The test results for the last two regressions appear below. lags(1 2 3) qui reg D. estimate the DF regression.lc L(1/1).D. Add enough lags to eliminate the autocorrelation among residuals. the estat bgodfrey command will not be based on the proper regression if issued after dfuller.lc L(1/3).The levels series appear to be trending together.D.lc L.lc L(1/2). then use the LM test discussed earlier to determine whether the residuals are autocorrelated. So.lc estat bgodfrey. then the ADF regressions will have to be explicitly estimated.lc L.04 1960q1 1970q1 1980q1 date ln(RPCE) 1990q1 2000q1 ln(RPDI) 2010q1 The other decision that needs to be made is the number of lagged differences to include in the augmented Dickey-Fuller regressions. start out with a basic regression that contains no lags.02 0 . . .lc L. The differences show no obvious trend.06 -. If this strategy is pursued in Stata.D. The principle to follow is to include just enough so that the residuals of the ADF regression are not autocorrelated. but the mean of the series appears to be greater than zero.lc estat bgodfrey. lags(1 2 3) qui reg D. The regressions for the ADF tests are qui reg D. suggesting that a constant be included in the ADF regressions.lc estat bgodfrey.

311 3. In the body of the loop are the regression.3148 0. a display statement to indicate the lag length.884 -2. . lags(1 2 3) Breusch-Godfrey LM test for autocorrelation lags(p) 1 2 3 chi2 5. loops are used to reduce the amount of coding.478 -2. dfuller lc. here is the example for income: forvalues p = 1/3 { qui reg L(0/`p').D.499 df 1 2 3 Prob > chi2 0.0634 0. the loop structure is fairly easy to use.8122 0. if what’s put in the body of the loop is coded with an error.lc L.ly di "Lags =" `p' estat bgodfrey.2886 Note also that this regression contains a constant and that the test statistic is −1. The first line must end with a left brace {. and a call to the post- . Of course.lc . estat bgodfrey.518 7. It starts with forvalues p.056 2. where p is the counter. lags(3) Augmented Dickey-Fuller test for unit root Test Statistic Z(t) -1. and p is instructed to increment beginning at 1 and ending at 3. lags(3) where the indicated number of lags is used.574 MacKinnon approximate p-value for Z(t) = 0.451 5. Thus p will be set at 1. di "Lags = 3" Lags = 3 . then all of your results will be wrong! At any rate.3209 H0: no serial correlation It is clear that the residuals of the ADF(2) are autocorrelated and those of the ADF(3) are not.995 Number of obs = 196 Interpolated Dickey-Fuller 1% Critical 5% Critical 10% Critical Value Value Value -3.. lags(1 2 3) Breusch-Godfrey LM test for autocorrelation lags(p) 1 2 3 chi2 0. The resulting ADF statistic is obtained using: dfuller lc. lags(1 2 3) } As seen earlier in the course. Two side benefits are 1) less output and 2) smaller probability of a coding error. The unit root hypothesis is not rejected at the 5% level. qui reg L(0/3).ly L.795 df 1 2 3 Prob > chi2 0. estat bgodfrey. 2 and 3 as the loop runs.0504 H0: no serial correlation . The default increment size is one.D.995. For the income series.0196 0.

dfuller ly. no lagged differences of ly are included as regressors (i.1495 0.077 2.271 2. Recall that the cointegrating relationship can be estimated using least squares.. The Dickey-Fuller test yields: . This is as it appears in the first two lines of the loop’s body.0673 The p-value is less than 10% but larger than 5%. The output is: Lags =1 Breusch-Godfrey LM test for autocorrelation lags(p) 1 2 3 Lags =2 Breusch-Godfrey LM test for autocorrelation lags(p) 1 2 3 Lags =3 Breusch-Godfrey LM test for autocorrelation lags(p) 1 2 3 chi2 0.208 2.741 Number of obs = 199 Interpolated Dickey-Fuller 1% Critical 5% Critical 10% Critical Value Value Value -3.e.883 -2.098 df 1 2 3 Prob > chi2 0.4105 H0: no serial correlation H0: no serial correlation H0: no serial correlation If nothing else.542 df 1 2 3 Prob > chi2 0. p.573 MacKinnon approximate p-value for Z(t) = 0.2810 0.880 df 1 2 3 Prob > chi2 0. For this series. the regular Dickey-Fuller regression). The loop has to be closed on a separate line using a right brace }.5523 chi2 2.157 1.853 2. the output is a lot neater looking since none of the commands are echoed to the screen.4677 chi2 0.6487 0.6916 0.5297 0.2401 0. Ct = β1 + β2Yt + vt The residuals from this regression are obtained and their changes are regressed on the lagged value ˆt = γe ˆt −1 + δ∆e ˆt −1 + vt ∆e . It’s your call as to whether you are convinced that the unit root is rejected.477 -2. it must be referred to in single quotes (left ` and right ‘—which as you may recall are different characters on the keyboard). lags(0) Dickey-Fuller test for unit root Test Statistic Z(t) -2.estimation command bgodfrey. After initializing the counter.539 2.

In this case.ehat] . The easiest route is to use the varbasic command. a topic covered next.873 is greater than −3.lc D. noconst di _b[L.37. varbasic fits a basic vector autoregressive (VAR) model and graphs the impulse-response functions (IRFs) or the forecast-error variance decompositions (FEVDs).L. The 5% critical value of the test for stationarity in the cointegrating residuals is −3.8728997 Note that an intercept term has been included here to capture the component of (log) consumption that is independent of disposable income. ln(RPDI)) is spurious—that is. The equations are linear and least squares can be used to estimate the parameters. it indicates that the errors are not stationary. Each difference is a linear function of it own lagged differences and of lagged differences of each of the other variables in the system. lags(1/1) step(12) nograph The syntax lags(1/1) tells Stata to include lags from the first number to the last. di _b[L..37. You need to specify the variables in the system (∆yt and ∆xt) and the number of lags to include on the right-hand-side of the model. only 1 lag is included and the syntax to estimate the VAR is: varbasic D. This option is useful in generating forecasts.ehat D.ehat]/_se[L. but the differences are stationary. If your VAR is longer than 1 lag then you’ll change that here. which in this case is lag 1 to lag 1.ly. The basic structure of the VAR is found in the equations below: ∆yt = β11∆yt −1 + β12 ∆xt −1 + vt∆y ∆xt = β21∆yt −1 + β22 ∆xt −1 + vt∆x The variables xt and yt are nonstationary. The output from this is: . and hence that the relationship between C (i. ln(RPCE)) and Y (i.ehat L.. res reg D. The VAR is simple to estimate in Stata. Also added is the step(12) option.ehat]/_se[L. estimate the coefficients of the model using a VAR in differences.e. In our example.The Stata code for this procedure is: reg lc ly predict ehat.ehat] -2. The varbasic command simplifies this.e.ehat. Since the unit root t-value of −2. we have no cointegration.

92 -2. _cons D_ly lc LD.61 7. lags(1/1) step(12) nograph Vector autoregression Sample: 1960q3 Log likelihood = FPE = Det(Sigma_ml) = Equation D_lc D_ly 2009q4 1400.6784 df 4 4 Prob > chi2 0.006575 .0052776 Std.0572953 .3633839 .46e-09 Parms 3 3 RMSE . z P>|z| [95% Conf. This can be used to find lag lengths for VAR or VEC models of unknown order.0000 = 198 = -14. Stata includes another procedure that makes selecting lag lengths in VAR models very easy.91 2.0009786 4.02 0. it would probably be a good idea to test the residuals of the VAR for autocorrelation.444 2. Interval] .000 .1205 0. ly LD.000 .12459 24. ly LD. varbasic D.62e-09 2.0370832 .4754276 -.98565 Coef.5086 5.2171679 .1118 No.2616765 . In practice.0741801 .0038046 .3609972 .0746013 .04496 = -13. Err. of obs AIC HQIC SBIC chi2 27.91 6.1493798 .286122 -.0702164 .2156068 .0067507 .17 0.000 0.0853 = -14.0007516 2. Schwarz's Bayesian information criterion (SC).0079547 In light of the fact that longer lags were used in the Dickey-Fuller regressions it is likely that the VAR should also have longer lags.004 0. Akaike's information criterion (AIC).004 0.0041187 .0000 0. _cons .070952 .22449 H0: no autocorrelation at lag order There is evidence of autocorrelation in the residuals since the p-value at lag 1 is less than 5%.04957 0. .0060367 .. varlmar Lagrange-multiplier test lag 1 2 chi2 9. The varsoc command reports the final prediction error (FPE).009 0.lc D.0965863 . and the Hannan and Quinn information criterion (HQIC) lag-order selection statistics for a series of vector autoregressions. The Stata command varlmar issued after varbasic will perform a LM test of the residuals similar to the ones we performed for autocorrelation. For the example above Stata yields: .92656 P>chi2 0. D_lc lc LD.6647332 -.008562 R-sq 0.ly.

6655* 8.02 1379.2e-09 2.046 0. .ly _cons The AIC selects a lag order of 3 while the SC (labeled by Stata.0235 -13.0422* -14.9237 -13.071 0.9996 -13.6e-09* 2.09 1383.0948* -14.92 1388.8598 -13. SBIC) chooses 1.000 0.9823* -13.7149 df 4 4 4 4 p 0.2009q4 lag 0 1 2 3 4 LL 1355.6e-09 2.083 -14.8636 -14. varsoc D.6e-09 Number of obs AIC -13.152 FPE 3.6379 6.129 9. maxlag(4) Selection-order criteria Sample: 1961q2 .lc D.lc D.9659 = SBIC -13.ly.8436 -13.6 LR 48.6e-09 2.24 1391.0915 -14.0882 HQIC -13.7861 195 Endogenous: Exogenous: D..8772 -14.