Which software can be used to estimate a non-recursive SVAR? Not sure though if this question belongs here but I found nothing so far on google. Or researchers using them do it manually?

  • $\begingroup$ If by nom recursive you mean identification comes from a strategy other than Cholesky (for example zero restrictions or long run restrictions) then you can use Stata or Eviews. $\endgroup$ Jun 24, 2021 at 15:52
  • $\begingroup$ @Pedro Ignacio Martinez Bruera. Thanks for the reply. It seems STATA only allows for matrix A to be lower triangular, thus, using the svar command. For the last two variables in my model (..., X, Y), I want them to contemporaneously affect each other...so I have something like this for the two rows of matrix A: (...\., ., ., ., 1, .\., ., ., ., ., 1). But I get an error. What works is (...\., ., ., ., 1, 0\., ., ., ., ., 1), i.e., Y does not contemporaneously affect X. But I want X to contemporaneously affect Y and vice versa. Any resources on how to do that? Thanks!! $\endgroup$ Jun 25, 2021 at 2:42
  • $\begingroup$ Hi! I haven't used stata for SVARs in a while. It's strange because I basically could do anything with matrices A and B. anyway, EViews is another software that does it for you. $\endgroup$ Jun 25, 2021 at 14:00
  • $\begingroup$ @Pedro Ignacio Martinez Bruera I have found an example in Eviews but I don't understand why given the model Ae = Bu, matrix A is an identity matrix in a non-recursive SVAR in Eviews, and matrix A is not an identity matrix in a recursive SVAR in Eviews. I have also asked the question here: economics.stackexchange.com/questions/45625/… $\endgroup$ Jun 26, 2021 at 12:44

2 Answers 2


Aside the solutions mentioned in the other answer you can also estimate it in:

  • Julia

  • Matlab

  • Octave (this is just free version of matlab with some small changes)

  • EViews can do SVARs with custom restrictions, including some presets. You may check out their online documentation. Btw, this one is the only one to my knowledge that also does long-term restrictions on the residuals.

  • Pretty sure that JMulti can also do the kind of restrictions you are after. You can get it here for free. It's quite old so I am not sure about system requirements.

  • Statsmodels (via python) might be able to do it too, but only with presets.

  • R has it as well.

  • Stata, but unsure about custom restrictions.

Note that there are number conditions for implementing restrictions on contemporaneous relationships between variables. The EViews documentation explains that. From your comment it looks like you may have under-identified the A matrix (i.e. asking for too many coefficients to be estimated). That might be the reason why you get an error.

  • $\begingroup$ Anything more concrete about R? The universe of packages is so large there that practical relevance of the answer requires some further guidance than just listing R as such. $\endgroup$ Jul 10, 2021 at 12:26
  • $\begingroup$ Indeed. The package I have looked at is 'vars' (in conjunction with 'tseries'). For more sophisticated identification, for example via heteroskedasticity, you can use the 'svars' package on top. $\endgroup$
    – BrsG
    Jul 10, 2021 at 15:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.