Local Projections

Flexible Impulse Response Estimation

The Local Projections Idea

Local Projections (LP), introduced by Jordà (2005), provide a flexible alternative to Vector Autoregressions for estimating impulse response functions. The key insight: instead of specifying and iterating a full dynamic system, directly regress the outcome \(h\) periods ahead on today’s shock.

From VAR to LP

The VAR Approach

A VAR(p) models the joint dynamics of a vector \(\mathbf{y}_t\):

\[ \mathbf{y}_t = \mathbf{c} + \mathbf{A}_1 \mathbf{y}_{t-1} + \cdots + \mathbf{A}_p \mathbf{y}_{t-p} + \mathbf{u}_t \]

To get impulse responses, we: 1. Identify structural shocks (Cholesky, sign restrictions, etc.) 2. Iterate the system forward to compute \(\frac{\partial \mathbf{y}_{t+h}}{\partial \varepsilon_t}\)

This requires correct specification of the entire system.

The LP Approach

LP estimates the response at each horizon \(h\) directly:

\[ y_{t+h} = \alpha^h + \beta^h \cdot \text{shock}_t + \mathbf{X}_t' \boldsymbol{\gamma}^h + \varepsilon_{t+h} \]

where: - \(\beta^h\) is the impulse response at horizon \(h\) - \(\mathbf{X}_t\) contains controls (lags of \(y\), other variables) - Each horizon is a separate regression

TipKey Insight

LP doesn’t require specifying the full dynamic system. We only need to identify the shock of interest—the rest of the economy can be a “black box.”

When LP and VAR Give the Same Answer

Theorem (Plagborg-Møller & Wolf, 2021): Under correct specification, LP and VAR estimate the same population impulse responses.

Both methods are consistent for: \[ \text{IRF}(h) = \frac{\partial \mathbb{E}[y_{t+h} | \mathcal{I}_t]}{\partial \text{shock}_t} \]

The difference is in finite samples and misspecification:

Aspect VAR LP
Specification Imposes structure Agnostic at each horizon
Efficiency More efficient if correct Less efficient (more parameters)
Misspecification Biased if wrong Robust
Confidence intervals Tighter Wider (but honest)

When They Diverge

LP and VAR can give different answers when:

  1. VAR is misspecified: Wrong lag length, omitted variables, nonlinearities
  2. Small samples: LP’s horizon-by-horizon estimation is noisier
  3. Long horizons: VAR extrapolates; LP estimates directly (sample shrinks)

LP vs VAR: Both recover true IRF from correctly specified DGP

Basic LP Estimation

The Specification

For a panel of countries observed over time:

\[ y_{i,t+h} - y_{i,t-1} = \alpha_i^h + \delta_t^h + \beta^h \cdot \text{shock}_{it} + \mathbf{X}_{it}'\boldsymbol{\gamma}^h + \varepsilon_{i,t+h} \]

Left-hand side: Cumulative change from \(t-1\) to \(t+h\). This gives the cumulative multiplier—how much \(y\) has changed in total by horizon \(h\).

Right-hand side: - \(\alpha_i^h\): Country fixed effects (absorb level differences) - \(\delta_t^h\): Time fixed effects (absorb common shocks) - \(\text{shock}_{it}\): The impulse of interest - \(\mathbf{X}_{it}\): Controls (lags of \(y\), other variables)

Implementation with fixest

Panel dimensions: 30 countries, 60 periods

Local Projection impulse responses with 95% confidence bands

Inference: Why HAC/Clustering Matters

At horizon \(h\), the LP residual \(\varepsilon_{i,t+h}\) is correlated with \(\varepsilon_{i,t+h-1}, \ldots, \varepsilon_{i,t+1}\) by construction (overlapping observations).

This induces MA(h-1) serial correlation in errors.

Standard OLS standard errors are invalid. Must use:

Method When Implementation
Newey-West HAC Time series sandwich::NeweyWest(lags = h)
Cluster by unit Panel, short T vcov = ~country
Driscoll-Kraay Panel, cross-sectional dependence vcov = "DK" in some packages

Standard errors grow with horizon due to overlapping residuals

State-Dependent Local Projections

A major advantage of LP over VAR: it’s easy to allow impulse responses to vary with the state of the economy.

Binary State Switching

The simplest approach: interact the shock with a state indicator.

\[ y_{i,t+h} - y_{i,t-1} = \alpha_i^h + \beta_0^h \cdot (1 - S_{it}) \cdot \text{shock}_{it} + \beta_1^h \cdot S_{it} \cdot \text{shock}_{it} + \cdots \]

where \(S_{it} = 1\) if country \(i\) is in “state 1” at time \(t\).

Examples of state variables: - Recession vs. expansion - High vs. low debt - Financial crisis vs. normal times - High vs. low bank holdings of sovereign debt

State-dependent LP: Responses differ by regime

Smooth Transition (Auerbach-Gorodnichenko)

Instead of hard switching, use a logistic function for smooth transition:

\[ F(z_t) = \frac{\exp(-\gamma z_t)}{1 + \exp(-\gamma z_t)} \]

where: - \(z_t\) is the (standardized) state variable - \(\gamma > 0\) controls transition speed - \(F(z_t) \to 1\) when \(z_t \to -\infty\) (e.g., deep recession) - \(F(z_t) \to 0\) when \(z_t \to +\infty\) (e.g., strong expansion)

The LP specification becomes:

\[ y_{t+h} = F(z_{t-1}) \cdot [\alpha_R^h + \beta_R^h \cdot \text{shock}_t] + (1 - F(z_{t-1})) \cdot [\alpha_E^h + \beta_E^h \cdot \text{shock}_t] + \cdots \]

Smooth transition function for state-dependent LP

Testing for State Dependence

To test whether responses genuinely differ across states:

\[ H_0: \beta_0^h = \beta_1^h \quad \forall h \]

Methods: 1. Joint F-test: Test equality of coefficients across horizons 2. Horizon-by-horizon t-tests: Test \(\beta_0^h - \beta_1^h = 0\) at each \(h\) 3. Cumulative difference: Test whether cumulative response differs

WarningCommon Mistake

Showing that \(\beta_0^h\) is significant and \(\beta_1^h\) is not significant does NOT prove they’re different. You must test the difference directly.

LP-DiD: Combining LP with Difference-in-Differences

LP-DiD (Jordà, Dube, Girardi & Taylor, 2024) extends local projections to treatment effect settings with staggered adoption.

The Setting

  • Some units receive treatment at different times
  • We want to trace out the dynamic treatment effect at each horizon
  • Standard DiD gives one number; LP-DiD gives a path

The Specification

\[ y_{i,t+h} - y_{i,t-1} = \alpha_i + \delta_t + \beta^h \cdot D_{it} + \mathbf{X}_{it}'\boldsymbol{\gamma}^h + \varepsilon_{i,t+h} \]

where: - \(D_{it} = 1\) if unit \(i\) is treated at time \(t\) - \(\alpha_i\) = unit fixed effects - \(\delta_t\) = time fixed effects - \(\beta^h\) = treatment effect at horizon \(h\)

Key features: - Estimates treatment effect at each horizon (not just one average) - Includes negative horizons to test pre-trends - Robust to heterogeneous treatment timing

LP-DiD: Dynamic treatment effects with pre-trend check

LP-DiD vs. Standard Event Study

Feature Standard Event Study LP-DiD
LHS \(y_{it}\) \(y_{i,t+h} - y_{i,t-1}\)
Interpretation Level relative to \(t=-1\) Cumulative change
Horizons Relative time dummies Direct projection
Handles dynamics Imposes structure Flexible

LP-DiD is particularly useful when: - Treatment effects build gradually - You want impulse response interpretation - Dynamics are complex or nonlinear

Diagnostics and Practical Issues

Sample Erosion at Long Horizons

At horizon \(h\), you lose \(h\) observations from the end of your sample: - \(h = 0\): Full sample - \(h = 12\): Lose 12 periods (3 years of quarterly data)

Implications: - Confidence intervals widen at longer horizons (less data + more uncertainty) - Truncate horizons when CIs become uninformative - Report effective sample size at each horizon

Lag Selection

Rule: Use the same lag structure across all horizons for comparability.

Methods: 1. Information criteria (AIC, BIC) on the \(h = 0\) regression 2. LM test for serial correlation in residuals 3. Rule of thumb: 2-4 lags for quarterly, 1-2 for annual

Cumulative vs. Non-Cumulative

Cumulative (recommended for levels): \[ \text{LHS} = y_{t+h} - y_{t-1} \] Interpretation: Total change from \(t-1\) to \(t+h\).

Non-cumulative: \[ \text{LHS} = y_{t+h} \] Interpretation: Level at \(t+h\) (includes pre-existing trend).

Use cumulative for: - GDP, debt/GDP, price level - Any variable where you care about the total change

Use non-cumulative for: - Growth rates, inflation (already differenced) - When you want the level effect

Comparing LP and VAR IRFs

Always compare LP and VAR when possible:

LP produces wider but more robust confidence intervals than VAR

When LP and VAR disagree: - Check VAR specification (lags, variables) - LP is likely more robust to misspecification - VAR may be picking up spurious dynamics

Frequently Asked Questions

When should I use LP vs. VAR?

Use LP when: - You only need to identify ONE shock - Misspecification is a concern - You want state-dependent or nonlinear responses - You’re working with panel data

Use VAR when: - You need the full system (FEVD, historical decomposition) - Efficiency matters and you trust the specification - Short horizons with well-identified structure

How do I choose the horizon H?

  • Plot IRFs and extend until they converge to zero (or steady state)
  • Stop when confidence intervals become uninformative
  • Rule of thumb: H = 4-5 years for quarterly macro data
  • Report effective sample sizes

What controls should I include?

  • Lagged dependent variable (always)
  • Variables that affect both shock and outcome (confounders)
  • Don’t include post-treatment controls (bad controls)
  • Keep controls consistent across horizons

How do I report results?

  1. Plot the IRF with confidence bands
  2. Report the peak response and time to peak
  3. Table with point estimates and SEs at key horizons
  4. Report sample size at each horizon
  5. Compare with VAR if possible

Summary

Key takeaways from this module:

  1. LP estimates IRFs directly at each horizon—no need to specify full system

  2. LP and VAR give same population IRFs but LP is more robust to misspecification

  3. Use HAC or clustered SEs—overlapping residuals create serial correlation

  4. State-dependent LP is easy: interact shock with state indicator

  5. LP-DiD extends to treatment effect settings with dynamic effects

  6. Sample erodes at longer horizons—report effective sample sizes

  7. Confidence intervals widen with horizon—this is a feature, not a bug


Next: Module 4: Vector Autoregressions