# Local projections vs. VARs

I’ve read quite a bit on the relative advantages of local projections and VARs. I thought I’d summarize how to select between the two methods based on their respective strengths and weaknesses.

Run local projections when:

- You care a lot about bias
- You have lots of data (at this helps mitigate its variance weakness)
- You have many different series (since a VAR would have too many parameters)
- You want to control for many lags (same rationale as above)
- For whatever reason a you don’t have access to a good VAR package

It should be noted upfront that Local Projections and VARs Estimate the Same Impulse Responses in population. So the object being estimated is exactly the same in either case, at least in theory. What differs is the characteristics of the estimator itself. Practically, the two can differ after the horizon length exceeds the lag length. The two can also differ in sample.

In either case it’s much better to run penalized or Bayesian versions of these estimation methods, as per Local Projections vs. VARs: Lessons From Thousands of DGPs. Bayesian VARs can be estimated with a few different publicly available packages. Bayesian Local Projections are trickier, as there doesn’t seem to be any widely available packages for running them. As an alternative, use Impulse Response Estimation by Smooth Local Projections, for which there is code available. Worst case scenario – run vanilla local projections, then smooth the impulse response with a simple smoother like the one the ships with ggplot or the Hodrick-Prescott Filter (rather, its boosted alternative: Boosting: Why You Can Use the Hp Filter).