SPB Git

spb/wp29_uqo

Public

# Okun's law in U.S. quarterly data, 1960Q1–2019Q4 (F2-conf-04)

# Question

How does the quarterly change in the U.S. unemployment rate relate to real GDP growth in the same quarter? The estimand is the slope β in the linear projection Δu_t = α + β g_t + e_t. Here u_t is the quarterly average of monthly UNRATE (pp), and g_t = 100·ln(GDPC1_t/GDPC1_{t−1}) is growth in % per quarter (not annualised). The standard error must remain valid when the errors are serially correlated. Is β negative and significantly different from zero at the 5% level?

# Data and exclusions

  • data/UNRATE.csv: 945 monthly rows, 1948-01 to 2026-09. data/GDPC1.csv: 319 quarterly rows, 1947Q1 to 2026Q3 (n_input_rows). The SHA-256 checksums match data/README.md (see out/state/data_audit.md).
  • Data issue (data_issues): UNRATE has one empty value, at 2025-10-01. It falls outside the window and does not affect any estimate. Neither file has gaps or duplicate dates. Every quarter from 1959Q4 to 2019Q4 has all three monthly unemployment values.
  • Exclusions (out/exclusions.csv): the files together span 319 calendar quarters. Restricting to the levels window 1959Q4–2019Q4 removes 78 quarters, leaving 241. Dropping 1959Q4, which only supplies lagged levels, removes 1 more. Result: 240 quarters, first_quarter = 1960Q1, last_quarter = 2019Q4, n_analysed = 240.

# Method

  • I estimated β and α by OLS of Δu_t on a constant and g_t.
  • Baseline: the conventional OLS standard error (se_iid), which assumes errors that are independent and homoskedastic.
  • Main inference: a Newey–West HAC standard error with the Bartlett kernel (se_hac) and no small-sample degrees-of-freedom correction, computed with statsmodels.
  • Bandwidth (hac_lags = 4): set by the Newey–West (1994) rule of thumb, floor(4·(T/100)^{2/9}) with T = 240, which gives 4 quarters (one year). The rule is standard and was fixed before looking at the results. The OLS residuals have lag-1 autocorrelation of 0.39 (resid_lag1_autocorr), so a HAC correction is warranted.
  • 95% CI: β̂ ± 1.96·se_hac, using the normal approximation.
  • Decision rule: okun_negative_5pct is true if and only if β̂ < 0 and |β̂/se_hac| > 1.96.
  • No randomness is involved (random_seed = null). out/analysis.py regenerates every output, including out/figure1.png (scatter plot with the fitted line).

# Results

  • β̂ = −0.256 (beta_hat): each extra 1% of quarterly real GDP growth goes with an unemployment rate about 0.26 pp lower in the same quarter.
  • α̂ = 0.184 pp (alpha_hat). With no growth, unemployment rises by about 0.18 pp per quarter.
  • The implied growth rate at which unemployment holds steady is α̂/|β̂| ≈ 0.72% per quarter. This figure is derived from alpha_hat and beta_hat. It is close to the sample mean growth of 0.754% per quarter (mean_growth), which is not annualised.
  • R² = 0.408 (r_squared).
  • The Okun coefficient is negative and significant at the 5% level (okun_negative_5pct = true). The HAC t-statistic is −7.14 (t_hac), with p ≈ 1e−12 (p_value_hac).

# Uncertainty

  • Naïve baseline: se_iid = 0.0200, giving a 95% CI of [−0.295, −0.217] (baseline_ci_iid_low, baseline_ci_iid_high).
  • HAC (4 lags): se_hac = 0.0358, about 1.8 times the naïve SE. The 95% CI is [−0.326, −0.186] (beta_ci_low, beta_ci_high).
  • Sensitivity to the bandwidth (se_hac_sensitivity_by_lags): the HAC SE is 0.0288 at 0 lags (heteroskedasticity-robust only), 0.0342 at 2, 0.0369 at 6, 0.0371 at 8 and 0.0364 at 12. The conclusion holds at every bandwidth: the largest SE, 0.0371, still gives |t| ≈ 6.9.
  • The naïve SE understates the uncertainty because the residuals are positively autocorrelated.

# Limitations and open issues

  • I used the current data vintage, not real-time data. GDP revisions could change the estimates somewhat.
  • β is a contemporaneous linear projection, not a causal effect. Lagged growth terms are omitted, so they end up in e_t, which is part of why the residuals are serially correlated.
  • The coefficient is assumed constant over 1960–2019. I did not test for structural breaks.
  • The HAC inference is asymptotic and uses normal critical values. With T = 240, size distortions should be modest, but they cannot be ruled out.
  • The bandwidth comes from a rule of thumb, not a data-driven selection. The sensitivity results above show the conclusion does not depend on this choice.
Files · main
Menu

Theme