Okun's law in the United States, 1960Q1–2019Q4 (task F6-conf-03)
Question
How much does the quarterly change in the US unemployment rate respond to quarterly real GDP growth, and is that response stable? The estimand is β in Δu_t = α + β·g_t + ε_t, where Δu_t is the change in the quarterly-average UNRATE (pp) and g_t = 100·Δln GDPC1_t (percent, not annualised). The sample is the 240 quarters 1960Q1–2019Q4. Stability is checked by splitting the sample at 1984Q1 and running a classical Chow test.
Data and exclusions
GDPC1.csv: 319 rows (1947Q1–2026Q3), no missing values, no duplicate dates.UNRATE.csv: 945 rows (1948-01 to 2026-09), no duplicate dates. One value is missing (2025-10-01), which is outside the window and has no effect on any estimate.- Quarterly u_t is the simple mean of the three monthly values. The code only builds a quarter when all three months are present. 1959Q4 levels are used only to form the 1960Q1 differences. The code checks that the 240 quarters are consecutive and complete.
- Everything after 2019Q4 is excluded, including the 2020 COVID outliers (g = −8.2 % and +7.5 %, u up to 14.8 %).
- The data are the current (2026) vintage of GDP, not real-time data. This is acceptable for a historical relationship but is listed below as a limitation.
- Subperiod counts: n₁ = 96 (1960Q1–1983Q4) and n₂ = 144 (1984Q1–2019Q4).
Method
- Baseline: the mean-only prediction of Δu. Its RMSE is 0.325 pp.
- Main model: OLS of Δu_t on a constant and g_t over the full sample.
- Standard errors: Newey–West HAC with a Bartlett kernel. The lag length is 4, from the rule floor(4·(T/100)^{2/9}) with T = 240. HAC is needed because the residuals are strongly autocorrelated (Ljung–Box p ≈ 6e−13 at lag 4) and heteroskedastic (Breusch–Pagan p ≈ 4e−4).
- Confidence interval: 95% normal interval, β̂ ± 1.96·SE.
- Subperiods: separate OLS fits. Their table SEs are HAC with the same 4 lags.
- Chow test: the classical SSR F-test of joint equality of (α, β), F = [(SSR_p − SSR₁ − SSR₂)/2] / [(SSR₁ + SSR₂)/(T − 4)], with (2, 236) df.
- Supplementary checks (in
out/diagnostics.jsonandout/hac_lag_sensitivity.csv): a HAC-robust Wald test of the break using an interaction model, and HAC SEs for lags 0–12.
Results
| sample | n | α | β | HAC SE(β) |
|---|---|---|---|---|
| Full 1960Q1–2019Q4 | 240 | 0.184 | −0.256 | 0.036 |
| 1960Q1–1983Q4 | 96 | 0.254 | −0.259 | 0.039 |
| 1984Q1–2019Q4 | 144 | 0.152 | −0.273 | 0.068 |
(The table is also saved as out/table1.csv. The figure is out/figure1.png.)
- Fit: the regression lowers RMSE from 0.325 pp (mean-only baseline) to 0.250 pp, with R² = 0.41.
- Effect size: one extra percentage point of quarterly real growth goes with about a 0.26 pp smaller rise in the unemployment rate in that quarter.
- Growth that keeps unemployment flat: about 0.72 % per quarter over the full sample.
- Stability: the Chow statistic is F = 6.09 (p = 0.0026), so equality of (α, β) is rejected at 5%. stability_conclusion = unstable.
- What drives the break: the intercept, not the slope. The two slopes are almost identical (−0.259 vs −0.273). A HAC Wald test on the slope difference alone gives p = 0.85, while the HAC joint test still rejects (p = 0.004). The growth rate that keeps unemployment flat falls from about 0.98 % to about 0.55 % per quarter, which fits slower trend growth after 1984. So the coefficient that responds to growth looks stable; the relationship as a whole does not.
Uncertainty
- HAC SE(β) = 0.0358 with 4 lags. The 95% CI is [−0.326, −0.186], entirely below zero, so conclusion = negative_effect.
- The SE is not sensitive to the lag choice: 0.029 at 0 lags (plain OLS SE, no HAC correction), then 0.034, 0.036, 0.037 and 0.036 at 2, 4, 8 and 12 lags. The sign conclusion holds for every lag length.
- The subperiod-2 slope is estimated less precisely (SE 0.068).
Limitations and open issues
- The classical Chow test assumes errors that are homoskedastic and serially uncorrelated. Both assumptions fail here (see the Ljung–Box and Breusch–Pagan results above), so its nominal p-value is not exact. The HAC Wald test reaches the same rejection, which is reassuring, but it is asymptotic.
- The break date is fixed in advance at 1984 (the Great Moderation). It is not estimated. A sup-F (Andrews/Quandt) test or a rolling estimate was not run and might show a different or a gradual break.
- β is not a causal parameter. Output and unemployment are determined jointly, and OLS of Δu on g is a reduced-form association. Reversing the regression (g on Δu) would not give 1/β. Measurement error in quarterly GDP growth biases |β| toward zero.
- Static specification. No lags of g are included. Lagged effects (labour hoarding) would show up in the serially correlated residuals and could make the contemporaneous β understate the total response. Dynamic and gap-form (output gap) versions were not checked.
- Data vintage. Later revisions to GDPC1 change g_t, so a real-time analysis could give a different β. The chained-dollar base year does not affect log growth, but benchmark revisions do.
- Things that would overturn the stability reading: evidence that the "intercept shift" is really a slowly drifting trend, or that the slope changed within subperiods, for example during the jobless recoveries after 1991, 2001 and 2009. Neither was tested.
- Unemployment is averaged within quarters. This smooths the series, and the timing of the averaging relative to GDP may produce some of the serial correlation.