Piger and Stockwell (2025): monetary policy shocks, US monthly data, 1990–2019
Piger and Stockwell (2025, Journal of Applied Econometrics) ask whether a local projection with an observed shock should be estimated with the response in levels, \(y_{t+h}\), or in long differences, \(y_{t+h} - y_{t-1}\). This page reruns the application of their paper (Figure 20): the responses of US industrial production and consumer prices to the Jarocinski–Karadi (2020) monetary-policy and central-bank-information shocks, estimated both ways. In their MATLAB code each specification is a hand-built loop over horizons. Here each is one lp call.
Data and specification
The monthly dataset from their replication package ships with the package as docs/src/data/piger_stockwell.csv: the two shocks (mp, cbi) and five series, 100·log industrial production (lip), CPI (lcpi) and S&P 500 (lsp500), the excess bond premium (ebp) and the one-year Treasury yield (gs1). As in their code, the sample ends in 2019:12 and each shock is divided by its standard deviation.
The shocks begin in 1990:2. Before that they are NaN, not missing: those months are not estimation rows, but the lagged controls of the first estimation rows reach back into them, and lp drops rows with missing values before it builds lags.
For a response \(y\) and shock \(s_t\), with \(x_t\) the five series, the two specifications are
Standard errors follow their code: Newey–West with 37 lags at every horizon and the \(n/(n-k)\) small-sample factor. Bartlett(38) is that estimator, since a Bartlett bandwidth of \(b\) weights lags \(1, \dots, b-1\).
Impulse responses
Responses to a one-standard-deviation shock. Solid navy: long differences; dashed brick: levels. 90% bands, Newey–West with 37 lags.
Three years after a monetary-policy shock, industrial production is -0.33 in long differences and 0.09 in levels.
The two specifications agree over the first months and then part. In levels the responses drift back toward zero at long horizons; in long differences they stay persistent. The price is precision: at 36 months the long-difference standard errors are 1.58 to 2.15 times the levels ones across the four panels. This is the trade-off the paper studies. In its simulations, levels projections on persistent data are biased toward zero at long horizons, and long differences remove much of that bias at the cost of a larger variance.
h
long diff.
s.e.
levels
s.e.
0
-0.024
0.033
-0.019
0.030
6
-0.102
0.154
-0.034
0.098
12
-0.255
0.225
-0.085
0.104
18
-0.353
0.270
-0.133
0.132
24
-0.272
0.242
-0.036
0.132
30
-0.235
0.265
0.054
0.164
36
-0.326
0.298
0.091
0.189
Checks
The long-difference response is an anchored response, \(y_{t+h}\) minus a baseline fixed at \(t\), with the baseline \(y_{t-1}\). Written with anchor, the same regression gives the same path:
Beyond this page, the paths were checked against Stata (newey, lag(37) on variables built with time-series operators) and against a line-by-line port of the authors’ MATLAB loop, including its Newey–West sum. The long-difference coefficients and standard errors agree with both to \(10^{-14}\) at every horizon, on identical samples; the levels ones to \(10^{-6}\), the precision allowed by 61 nearly collinear log-level regressors.
Other long-difference responses
ldiff has two relatives. cumul(ldiff(y)) sums the long differences over horizons \(0, \dots, h\), for cumulative responses. hbr(x, y) divides the change by a lagged scale variable, \((x_{t+h} - x_{t-1}) / y_{t-1}\): the Hall–Barro–Redlick transformation used for fiscal multipliers, where output and spending changes are both measured as shares of lagged GDP. All of them can also appear on the right-hand side, as the instrumented regressor of a cumulative multiplier: