SPB Git

spb/wp29_uqo

Public

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

# Question

How strongly does the quarterly change in the U.S. unemployment rate move with quarterly real GDP growth? The target is the slope β in the linear projection Δu_t = α + β g_t + e_t. Here u_t is the average of the three monthly UNRATE values in quarter t (in pp), and g_t = 100·ln(GDPC1_t/GDPC1_{t−1}) is growth in percent, quarter on quarter and not annualised. The sample is 1960Q1–2019Q4. The standard error must stay valid when the errors are serially correlated. β describes an association. It is not a causal effect.

# Data and exclusions

  • data/UNRATE.csv has 945 monthly rows and data/GDPC1.csv has 319 quarterly rows (n_input_rows). Both SHA-256 checksums match data/README.md (see out/state/data_audit.md).
  • One data problem was found: UNRATE for 2025-10 is an empty field. It falls outside the window, so it does not affect the estimates (data_issues).
  • Exclusion ledger (out/exclusions.csv, counted in quarters):
    • Start with the 319 GDPC1 quarters. Keep only quarters with a complete 3-month UNRATE average: 5 removed (1947Q1–Q4 and 2025Q4), 314 left.
    • Restrict to 1959Q4–2019Q4: 73 removed, 241 left.
    • Drop the 1959Q4 base quarter after differencing: 1 removed, 240 left.
  • The regression uses n_analysed = 240 quarters, from first_quarter = 1960Q1 to last_quarter = 2019Q4. No observation after 2019Q4 enters the regression.

# Method

  • Baseline: OLS of Δu_t on a constant and g_t, with the conventional homoskedastic, independent-errors standard error (se_iid).
  • Main inference: the same OLS point estimate with a Newey–West HAC standard error (Bartlett kernel), no small-sample degrees-of-freedom correction (se_hac).
  • Bandwidth: hac_lags = 4. This is the Newey–West (1994) rule of thumb floor(4·(T/100)^{2/9}) with T = 240, fixed before looking at results. A lag window of about one year also fits quarterly macro data.
  • Confidence interval and test: the 95% CI is β̂ ± 1.96·se_hac, using the asymptotic normal critical value. okun_negative_5pct is true only if β̂ < 0 and the two-sided HAC test of β = 0 has p < 0.05.
  • Code check: the HAC sandwich was also computed by hand in out/analysis.py and asserted equal to the statsmodels result.
  • No randomness is involved (random_seed = null). out/analysis.py also produces out/figure1.png (scatter of Δu_t against g_t with the fitted line).

# Results

  • Slope: beta_hat = −0.2558. One extra percentage point of quarterly real GDP growth goes with a 0.256 pp smaller quarterly change in the unemployment rate.
  • Intercept and fit: alpha_hat = 0.1844 pp and r_squared = 0.408.
  • Mean growth: mean_growth = 0.754 percent per quarter.
  • Significance: the Okun coefficient is negative and significant at the 5% level (okun_negative_5pct = true). The HAC t-statistic is −7.14 (t_stat_hac), with p ≈ 9.5e−13 (p_value_hac).

# Uncertainty

  • Standard errors: se_iid = 0.0200 and se_hac = 0.0358 (hac_lags = 4).
  • Why they differ: the OLS residuals are positively autocorrelated, with lag-1 autocorrelation 0.39 (residual_acf_lag1). Because of that, the HAC SE is about 1.8 times the naive SE.
  • Confidence intervals:
    • 95% HAC CI: [beta_ci_low, beta_ci_high] = [−0.326, −0.186].
    • Naive 95% CI, shown for comparison only: [beta_ci_iid_low, beta_ci_iid_high] = [−0.295, −0.217]. It is too narrow.
  • Bandwidth sensitivity (se_hac_by_lags): across L ∈ {0, 1, 2, 4, 6, 8, 12} the HAC SE ranges from 0.0288 to 0.0371. Every choice gives a CI well away from zero, so the conclusion does not depend on the bandwidth.

# Limitations and open issues

  • Data vintage: this is the current data vintage, not real-time data. Revisions to GDP could change the estimate in other vintages.
  • Interpretation: β is a reduced-form projection coefficient, not a structural or causal parameter. It assumes the relationship is stable over 1960–2019, and the possibility of breaks across decades was not examined, because the task fixes the window.
  • Inference choices: the HAC inference is asymptotic, with a normal critical value and no small-sample correction. Fixed-b critical values or a small-sample correction would widen the interval slightly. With |t| > 7, this would not change the conclusion.
  • Measurement: Δu is built from quarterly averages of monthly data. This time-averaging itself creates serial correlation, which is one reason to use HAC errors.
  • Nothing in the task was infeasible (feasibility = "complete").
Files · main
Menu

Theme