## Rolling Regression with a VAR

For questions regarding programming in the EViews programming language.

Moderators: EViews Gareth, EViews Jason, EViews Moderator, EViews Matt

awaidy
Posts: 4
Joined: Thu Jun 27, 2019 11:48 pm

### Rolling Regression with a VAR

Hello all,

I am working with a workfile (attached) and I want to do a 4-period ahead forecast with a VAR. The data is quarterly from 1960q1 through 2017q4.

So, this is what I want it to do:
1. Estimate a VAR over 40 observations ((40/4) = 10 years) and then forecast 4 periods ahead.
2. The forecasted 4th-period-ahead value should be stored in a new series e_cpi against the last date of the estimation sample. So, for example, if a VAR was estimated till 1970q4, then the forecasted value should be stored against 1970q4 in e_cpi. That is basically finding the inflationary expectations.

I have written the following code:

Code: Select all

`smpl @all !window_length = 40!no_rolls = 192 'The times it need to roll. Total observations to be rolled on =232-40=192!steps_ahead = 4 '4 period year ahead forecastseries e_cpi 'This will store our forecasted valuesfor !i=0 to (!no_rolls)'Specifying the VAR on 40 observations   smpl @first+!i @first+!window_length+!i-1 'You need -1 to push back the last quarter. 'So for first VAR, it will go from 1960q1 to 1970q4.   var var_!i.ls(noconst) 1 5 d(log_gdp_i1) d(d(cpi_log_i2)) d(reverse_rate_i1) 'I have differenced for stationarity. 'Forecasting over the next four periods   smpl @first+!window_length+!i @first+!window_length+!i+!steps_ahead-1 'Remember @first+windowlength lands you on 1971q1 for the first iteration.    var_!i.forecast(e) _!i  'Storing the value into a separate series   %date1 = @otod(!window_length+!steps_ahead-1+!i)   scalar x = @elem(CPI_LOG_I2_!i, %date1)    'This takes the forecasted value from the forecasted series   e_cpi(39+!i) = x 'Because the forecasted value should be stored against 1965q4nextshow e_cpi`

1. But with quarterly data, I am getting this error:
Log of non positive number in "VAR VAR_!I.LS(NOCONST) 1
5 D(LOG_GDP_I1) D(D(CPI_LOG_I2)) D(REVERSE_RATE_I1)".
Even though I have already taken the log of the required variables and there is no negative value in any of the series. I am using EViews 10.

2. Is there an easier way to do this? I know this code generates series and clogs the workfile, but I am just interested in e_cpi (inflationary expectations.

Any help would be appreciated. Thank you. I am stuck over this and have no clue.

Best Regards,
Awaid Yasin.
Attachments
wrkf_Eviews.WF1

awaidy
Posts: 4
Joined: Thu Jun 27, 2019 11:48 pm

### Re: Rolling Regression with a VAR

Also, I found basic programs that forecast with an equation. But I was having difficulties adapting them to a VAR. Probably because the coefficient matrix of a VAR would be different?

EViews Gareth
Fe ddaethom, fe welon, fe amcangyfrifon
Posts: 12540
Joined: Tue Sep 16, 2008 5:38 pm

### Re: Rolling Regression with a VAR

Try taking out the (e) option on your forecast command.

EViews Gareth
Fe ddaethom, fe welon, fe amcangyfrifon
Posts: 12540
Joined: Tue Sep 16, 2008 5:38 pm

### Re: Rolling Regression with a VAR

Ah, you just posted the data. From the data - d(reverse_rate_i1) is constant under the sample 1978q2-1988q1, so including 5 lags of a constant will yield singularities.