SPB Git

spb/wp29_uqo

Public

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

# Question

How big is the Okun coefficient β in the linear projection Δu_t = α + β g_t + e_t? Here u_t is the quarterly average of the monthly unemployment rate (pp) and g_t = 100·ln(GDPC1_t/GDPC1_{t−1}) is quarter-on-quarter real GDP growth in percent, not annualised. The disturbances may be serially correlated, so I report a standard error that stays valid in that case. I also test whether β is negative and significantly different from zero at the 5% level.

# Data and exclusions

  • data/UNRATE.csv: 945 monthly rows. data/GDPC1.csv: 319 quarterly rows (n_input_rows). Both SHA-256 checksums match data/README.md (see out/state/data_audit.md).
  • One data issue was found: UNRATE is empty for 2025-10. That month is outside the window, so it does not affect the analysis (data_issues). Every quarter from 1959Q4 to 2019Q4 has all 3 monthly observations.
  • Exclusions (out/exclusions.csv), counted in quarters starting from the 319 GDP quarters:
    • Step 1: keep the levels window 1959Q4–2019Q4. This removes 78 quarters and leaves 241.
    • Step 2: drop 1959Q4. It only supplies the lagged levels for the 1960Q1 differences, so 1 quarter is removed and 240 remain.
  • The regression sample therefore runs from first_quarter = 1960Q1 to last_quarter = 2019Q4, with n_analysed = 240.

# Method

  • Estimation: OLS of Δu_t on a constant and g_t (statsmodels).
  • Baseline uncertainty: the conventional iid/homoskedastic standard error (se_iid).
  • Main uncertainty: a Newey–West HAC standard error with Bartlett kernel (se_hac).
    • Bandwidth hac_lags = 4. This comes from the Newey–West (1994) rule of thumb floor(4·(T/100)^{2/9}) with T = 240, fixed before looking at results.
    • No small-sample degrees-of-freedom correction is applied, which is the classic Newey–West estimator.
  • Confidence interval and test: the 95% CI is β̂ ± 1.96·se_hac. okun_negative_5pct is true only if β̂ < 0 and the two-sided normal test using se_hac has p < 0.05.
  • Reproducibility: the procedure is deterministic, so no seed is needed (random_seed = null). Running out/analysis.py regenerates results.json, exclusions.csv and figure1.png.

# Results

  • β̂ = −0.2558 (beta_hat): each extra 1% of quarterly real GDP growth goes with an unemployment rate about 0.26 pp lower in that quarter. In annualised-growth units that is roughly −0.064.
  • α̂ = 0.1844 pp (alpha_hat) and R² = 0.408 (r_squared).
  • Together these imply that unemployment is stable when quarterly growth is about 0.72%, i.e. −α̂/β̂ computed from alpha_hat and beta_hat.
  • Mean growth over the sample is 0.754% per quarter (mean_growth).
  • The Okun coefficient is negative and statistically significant at the 5% level (okun_negative_5pct = true).
  • out/figure1.png shows the scatter of Δu_t against g_t with the fitted line.

# Uncertainty

SE 95% CI
iid baseline 0.0200 (se_iid) [−0.2949, −0.2166] (baseline_ci_iid_low, baseline_ci_iid_high)
Newey–West, 4 lags 0.0358 (se_hac) [−0.3260, −0.1855] (beta_ci_low, beta_ci_high)
  • The OLS residuals are positively autocorrelated, with lag-1 autocorrelation 0.39 (residual_autocorr_lag1). As a result the HAC SE is about 1.8 times the iid SE.
  • With the HAC SE, t = −7.14 (t_hac) and p ≈ 1e−12 (p_value_hac).
  • Bandwidth sensitivity (se_hac_by_lags): the HAC SE is 0.029 at 0 lags (heteroskedasticity-robust only), 0.032–0.037 for 1–12 lags, and 0.036 with the degrees-of-freedom correction (se_hac_lag4_dfcorrected). The significance conclusion does not change for any bandwidth tried.

# Limitations and open issues

  • Data vintage: the series are current-vintage, revised data, not real-time data, as the task allows.
  • Interpretation: β is a linear-projection coefficient, not a causal or structural parameter.
  • Stability over time: the relation may have shifted within 1960–2019. I did not test for this because the task does not ask for it.
  • Asymptotic inference: the inference relies on asymptotic normality. Bartlett-kernel HAC estimators with small bandwidths can understate uncertainty when persistence is strong. Here the result is far from the significance boundary, so this does not affect the conclusion.
  • Completeness: no part of the task was infeasible (feasibility = complete).
Files · main
Menu

Theme