# 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.json` and `out/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.