SPB Git

spb/wp29_uqo

Public

# Okun's law in the United States, 1960–2019 (F6-conf-03)

# Question

How strongly does the quarterly change in the US unemployment rate respond to quarterly real GDP growth, and has that response been stable? Estimand: β in Δu_t = α + β·g_t + ε_t, 1960Q1–2019Q4, with u_t the quarterly mean of monthly UNRATE (percent) and g_t = 100·Δln GDPC1 (percent, not annualised). Stability: separate OLS on 1960Q1–1983Q4 and 1984Q1–2019Q4 plus a classical Chow F-test of joint equality of (α, β).

# Data and exclusions

Inputs: data/GDPC1.csv (319 quarterly rows, 1947Q1–2026Q3) and data/UNRATE.csv (945 monthly rows, 1948-01–2026-09) (n_input_rows). SHA-256 hashes match data/README.md (see out/state/data_audit.md). Data issues (data_issues): one blank UNRATE value (2025-10), outside the window; both series extend past 2019Q4 and are the 2026 revised vintage. Exclusions (out/exclusions.csv): 319 GDPC1 quarters → 241 in 1959Q4–2019Q4 (78 removed, incl. everything after 2019Q4) → 240 after losing 1959Q4 to differencing. All three months were present in every quarter of the window. Regression sample: sample_start = 1960-01-01 to sample_end = 2019-10-01, n_analysed = 240; n_sub1 = 96, n_sub2 = 144.

# Method

  • Baseline: mean-only prediction of Δu; RMSE baseline_metric.
  • Main: full-sample OLS of Δu on a constant and g; point estimates effect_estimate, intercept; in-sample residual RMSE model_metric.
  • Uncertainty: Newey–West HAC standard error (Bartlett kernel, small-sample correction) with hac_lags = 4 quarters, chosen by the Newey–West (1994) rule floor(4(T/100)^{2/9}) with T = 240; 95% CI = β ± 1.96·SE (effect_ci_low, effect_ci_high). conclusion is set from whether this interval excludes zero.
  • Stability: OLS by subperiod (beta_sub1, beta_sub2); classical Chow F = [(SSR_pooled − SSR_1 − SSR_2)/2] / [(SSR_1 + SSR_2)/(n − 4)], df (2, 236) (chow_f_stat, chow_p_value, stability_conclusion). Supplementary (not required): HAC Wald tests in an interaction model with a post-1984 dummy, and HAC SE sensitivity to the lag length.
  • No randomness used (random_seed = null). Everything is produced by out/analysis.py (also out/table1.csv, out/figure1.png).

# Results

  • Okun coefficient: effect_estimate = −0.256 pp of unemployment per 1% quarterly real GDP growth; intercept = 0.184 pp. So unemployment is flat when quarterly growth is about 0.72% (implied_zero_du_growth_full), roughly 2.9% annualised.
  • Fit: model_metric = 0.250 pp, compared with baseline_metric = 0.325 pp for the mean-only baseline (r_squared_full = 0.408).
  • Subperiods (Table 1, out/table1.csv): beta_sub1 = −0.259 (intercept_sub1 = 0.254) and beta_sub2 = −0.273 (intercept_sub2 = 0.152). The slopes are almost the same. What differs is the intercept: after 1984, unemployment stops rising at a lower growth rate, which fits slower trend growth.
  • Chow test: chow_f_stat = 6.09, chow_p_value = 0.0026 → stability_conclusion = unstable. The joint (α, β) relation is not stable. The difference appears to come from the intercept, not the slope. Testing the slope difference alone with HAC gives p = 0.85 (hac_slope_diff_p_value). The intercept difference alone gives p = 0.25 (hac_intercept_diff_p_value). The joint HAC Wald test still rejects (hac_joint_break_f_stat = 5.37, hac_joint_break_p_value = 0.0052), because the two estimates are strongly correlated.
  • Figure 1 (out/figure1.png): scatter of Δu against g with the two subperiod fitted lines.
  • Conclusion code: conclusion = negative_effect.

# Uncertainty

HAC SE effect_se = 0.036 (classical OLS SE ols_classical_se_full = 0.020). The HAC SE is about 1.8 times the classical one, so the residuals are serially correlated and/or heteroskedastic. 95% CI [effect_ci_low, effect_ci_high] = [−0.326, −0.185], well below zero. Changing the lag length (0, 2, 8, 12) gives SEs of 0.029–0.037 (hac_se_lag_sensitivity). Those choices do not change the conclusion. The subperiod HAC SEs are beta_sub1_hac_se = 0.040 and beta_sub2_hac_se = 0.069, so the two slopes cannot be told apart statistically.

# Limitations and open issues

  • The Chow test assumes things the data do not meet. The classical Chow F assumes homoskedastic, serially uncorrelated errors, and it was required in that form. Residual variance differs between the subperiods (resid_variance_sub1 = 0.079 vs resid_variance_sub2 = 0.048, i.e. the Great Moderation). The large HAC/OLS SE ratio shows the errors are not i.i.d. So the classical p-value is not exactly valid. The HAC joint Wald test (p = 0.0052) points the same way. Even so, a Wald test that allows different variances in each subperiod, or a sup-Wald test with an unknown break date, was not run. The 1984 break date is set by the task rather than estimated, which makes conventional inference a fair test of a pre-specified hypothesis. It does not show the break actually happened in 1984.
  • What "unstable" means here. The rejection applies to (α, β) jointly. The question asks whether the response (β) is stable, and our data give no evidence that the slope changed. Reading stability_conclusion = unstable as "Okun's coefficient changed" would overstate the result.
  • Specification threats. The static difference form leaves out lagged growth. Unemployment usually lags output, and this is part of why the residuals are autocorrelated. A dynamic model could give a different long-run coefficient. The relation is also treated as linear and symmetric; asymmetry between recessions and expansions was not checked. OLS treats g as exogenous. β is a reduced-form association, not a causal effect, and measurement error in GDP would bias |β| towards zero.
  • Data vintage. GDPC1 is the 2026 revised vintage. Results based on real-time data, or on a different benchmark revision, could differ somewhat. Not checked.
  • Outliers and influence. No influence diagnostics were run. Large recession quarters (e.g. 1980, 2008–09) visibly drive the fit in Figure 1.
  • Not checked: other kernels or bandwidth selectors (beyond the lag sensitivity reported), t versus normal critical values (with T = 240 the difference is negligible), and the robustness of the result to the break date.
Files · main
Menu

Theme