SPB Git

spb/wp29_uqo

Public

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

# Question

Estimate β 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}), i.e. quarter-on-quarter growth in percent, not annualised. The sample is 1960Q1–2019Q4. The task asks whether β is negative and significantly different from zero at the 5% level, using a Newey–West standard error.

# Data and exclusions

  • Inputs: data/UNRATE.csv (945 monthly rows) and data/GDPC1.csv (319 quarterly rows) (n_input_rows). Both SHA-256 checksums match data/README.md; see out/state/data_audit.md.
  • Data issue: one UNRATE value is missing (2025-10-01). It lies outside the range the regression needs, so it has no effect (data_issues).
  • Exclusions (out/exclusions.csv), counted on the quarterly panel:
    • 319 GDPC1 quarters to start.
    • −78 quarters outside 1959Q4–2019Q4.
    • −0 quarters dropped for lacking 3 UNRATE months (none in the window).
    • −1 for 1959Q4, which is used only as the level for the first differences.
    • This leaves 240 quarters (n_analysed), from first_quarter = 1960Q1 to last_quarter = 2019Q4.

# Method

  • I estimated the regression by OLS of Δu_t on a constant and g_t (statsmodels).
  • Naïve baseline: the conventional OLS standard error, which assumes independent, equal-variance errors (se_iid).
  • Robust standard error: Newey–West HAC with a Bartlett kernel, without a small-sample degrees-of-freedom correction (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. The alternative rule floor(0.75·T^{1/3}) also gives 4.
    • Choosing a HAC correction at all is justified: the OLS residuals have a first-order autocorrelation of 0.39 (resid_lag1_autocorr).
  • The 95% interval is β̂ ± 1.96·se_hac (normal critical value, z_crit).
  • The script uses no randomness (random_seed = null).
  • Figure: out/figure1.png plots Δu_t against g_t with the fitted line.

# Results

  • Okun coefficient: beta_hat = −0.2558. Each extra percentage point of quarterly real GDP growth goes with a fall of about 0.26 pp in the unemployment rate in the same quarter.
  • Intercept: alpha_hat = 0.1844 pp.
  • Fit: r_squared = 0.408.
  • Implied break-even growth, where predicted Δu = 0: −α̂/β̂ ≈ 0.72 % per quarter, about 2.9 % annualised. This is derived arithmetically from alpha_hat and beta_hat.
  • Average growth: mean_growth = 0.754 % per quarter.
  • Conclusion: okun_negative_5pct = true. β̂ is negative, and the HAC t-statistic is −7.14 (t_stat_hac, two-sided p ≈ 1e-12, p_value_hac).

# Uncertainty

  • se_iid = 0.0200; se_hac = 0.0358 (L = 4). The HAC standard error is about 1.8 times the naïve one, so ignoring serial correlation understates the uncertainty substantially.
  • 95% HAC interval: [beta_ci_low, beta_ci_high] = [−0.326, −0.186]. The naïve interval is [−0.295, −0.217] (baseline_ci_iid_low, baseline_ci_iid_high).
  • Sensitivity to the bandwidth (se_hac_by_lags): the HAC standard error ranges from 0.029 (L = 0, which is White's heteroskedasticity-robust SE) to 0.037 (L = 8). It is 0.0364 at L = 12.
  • Applying the small-sample correction n/(n−k) gives 0.0360 (se_hac_small_sample_corrected).
  • Under every one of these choices the interval stays well below zero.

# Limitations and open issues

  • β is a descriptive linear-projection coefficient, not a causal effect. It assumes a stable relation over 1960–2019; Okun coefficients are known to drift over time, and I did not test for structural breaks because the task does not ask for it.
  • The data are the current vintage, with GDP revised and in chained 2017 dollars, not the real-time data available at each date.
  • Normal-approximation inference with a Bartlett HAC estimator can over-reject in finite samples when residuals are persistent. Given |t| ≈ 7, this does not threaten the conclusion.
  • No part of the task was infeasible (feasibility = "complete").
Files · 452964ee0fbbaa40fbbed2c87a54ca798ffd6a85
Menu

Theme