Recovering Structural Shocks in Long-run restricted SVARS

For technical questions regarding estimation of single equations, systems, VARs, Factor analysis and State Space Models in EViews. General econometric questions and advice should go in the Econometric Discussions forum.

Moderators: EViews Gareth, EViews Moderator

BrsG
Posts: 18
Joined: Thu Aug 29, 2013 3:20 am

Recovering Structural Shocks in Long-run restricted SVARS

Postby BrsG » Fri Jul 02, 2021 12:50 am

I have estimated a 3-variable SVAR (EViews 11, latest patch), with long-run restrictions on F in

Psi*e = Fu

Code: Select all

_y.append(svar) @VEC(F) = NA, NA, NA, 0, NA, NA, 0, 0, NA


For the following note that u and e are related by Su = e, where S = A^(-1)B. Moreover, the underlying VAR is stable. The notation in this post tries to approximate the one used in the EViews documentation.

When trying to recover the orthonormal structural shocks u I ran into trouble and have the following issues.

(1) the residuals S^(-1) e, which should give us the structural shocks, are far from orthonormal. In particular, they are highly cross-correlated.

(2) Psi S != F, although identity is clearly implied (I calculated Psi = (I_3- A1-A2)^(-1) )

(3) Although the general approach with restrictions on F should not allow to get estimates for A or B, both are in fact available when calling

Code: Select all

 matrix bmat = _y.@svarbmat
 matrix amat = _y.@svaramat

A turns out to be the identity matrix (and B=S). It seems the estimation procedure makes this assumption on A automatically whenever restrictions are placed on F. Even when trying prevent restrictions on A via

Code: Select all

_y.append(svar) @VEC(F) = NA, NA, NA, 0, NA, NA, 0, 0, NA
_y.append(svar) @VEC(A) =NA, NA, NA, NA, NA, NA, NA, NA, NA

A is still the identity matrix.

What am I missing here?

Any help would be much appreciated!

EViews Matt
EViews Developer
Posts: 560
Joined: Thu Apr 25, 2013 7:48 pm

Re: Recovering Structural Shocks in Long-run restricted SVARS

Postby EViews Matt » Fri Jul 02, 2021 12:34 pm

Hello,

Regarding (1) and (2), here's a quick program that verifies that the S and F matrices behave as expected for a trivial artificial SVAR. If you run the last four statements for your own SVAR, do the results not match the mentioned expectations?

Code: Select all

create u 100
series x = rnd
series y = 2 * x + nrnd
series z = nrnd
var v.ls 1 2 x y z
v.svar(preset=3)   ' F is lower triangular.


v.makeresids(struct, method=struct) x_r y_r z_r
cov x_r y_r z_r   ' Should be close to the identity matrix.
matrix psi_s_minus_f = @inverse(@identity(3) - v.@lagcoefsum) * v.@svarsmat - v.@svarfmat
show psi_s_minus_f   ' Should be close to all zeros.

Regarding (3), you're correct that restricting S and/or F doesn't permit estimating A or B. For historical reasons, @svaramat and @svarbmat need to be available and meaningful after an estimation, so A is simply set to I and B is set to S. These aren't independent estimations, they're just one possible choice for A and B this is consistent with the estimation results.

BrsG
Posts: 18
Joined: Thu Aug 29, 2013 3:20 am

Re: Recovering Structural Shocks in Long-run restricted SVARS

Postby BrsG » Mon Jul 05, 2021 6:17 am

Thanks, Matt, this was helpful, especially on 3), which in combination with the others created the confusion.

I should have clarified in my question 1) that I had checked

Code: Select all

v.makeresids(struct, method=struct) x_r y_r z_r
cov x_r y_r z_r   ' Should be close to the identity matrix.


and it worked. However I also checked S^(-1)e = u, whose covariance matrix was off. I now found that the reason behind this was that I had created the residual matrix e via a group command with a wildcard, which had changed the ordering of the series.

So all good now. Thanks again!


Return to “Estimation”

Who is online

Users browsing this forum: No registered users and 28 guests