SPB Git

spb/wp29_uqo

Public

# Okun's law in U.S. quarterly data, 1960Q1–2019Q4

# Question

Estimate β in Δu_t = α + β g_t + e_t, where u_t is the quarterly mean of monthly UNRATE (pp), Δu_t = u_t − u_{t−1}, and g_t = 100·ln(GDPC1_t/GDPC1_{t−1}) (percent, quarter-on-quarter, not annualised), over the 240 quarters 1960Q1–2019Q4. Uncertainty must hold up when the errors are serially correlated.

# Data and exclusions

  • data/UNRATE.csv (945 monthly rows) and data/GDPC1.csv (319 quarterly rows), current FRED vintage, used as given.
  • I computed quarterly unemployment as the mean of the three monthly values in each quarter. The code checks that every quarter from 1959Q4 to 2019Q4 has all three months and a GDP value. Only the 1959Q4 levels from outside the window are used, as the base for the 1960Q1 differences.
  • Data issue: UNRATE has one empty value, at 2025-10. That is outside the window, so it was dropped and does not affect the analysis. No duplicate dates.
  • Sample: 1960Q1–2019Q4, n = 240. No other exclusions.

# Method

  • OLS of Δu_t on a constant and g_t.
  • Naïve standard error: the conventional OLS standard error, which assumes independent, equal-variance (homoskedastic) errors.
  • Robust standard error: Newey–West HAC, which allows for both autocorrelation and unequal error variance. It uses Bartlett-kernel weights with 4 lags, set by the Newey–West (1994) rule of thumb floor(4·(T/100)^{2/9}) with T = 240. I fixed this rule before seeing the results. It fits the data: the OLS residuals have autocorrelations of 0.39, 0.29, 0.14 and 0.07 at lags 1–4, so the dependence has mostly died out by lag 4. No small-sample degrees-of-freedom correction is applied. With the n/(n−k) correction the SE is 0.0360 instead of 0.0358.
  • 95% CI = β̂ ± 1.96·SE_HAC, using normal (asymptotic) critical values. The test is two-sided at the 5% level.

# Results

quantity value
β̂ (Okun coefficient) −0.2558
α̂ 0.1844
R² 0.408
SE (iid) 0.0200
SE (HAC, 4 lags) 0.0358
95% HAC CI [−0.326, −0.186]
HAC t-stat / p-value −7.14 / 9.5e−13
mean g_t 0.754 % per quarter

A 1-percentage-point higher quarterly real GDP growth (not annualised) goes with a 0.256 pp fall in the unemployment rate that quarter. The implied growth rate that keeps unemployment unchanged is −α̂/β̂ ≈ 0.72 % per quarter, close to the sample mean growth of 0.75 %. Over this sample, β is negative and significantly different from zero at the 5% level (okun_negative_5pct = true). Figure: out/figure1.png.

# Uncertainty

The HAC SE is about 1.8 times the naïve iid SE (0.0358 vs 0.0200), so the iid SE overstates precision. Part of the gap is heteroskedasticity: the heteroskedasticity-robust SE with 0 lags is 0.0288. The rest is the positive residual autocorrelation.

The HAC SE barely changes with the choice of bandwidth:

lags 0 1 2 4 6 8 12 16
SE 0.0288 0.0324 0.0342 0.0358 0.0369 0.0371 0.0364 0.0341

So the conclusion holds for any bandwidth from 0 to 16 lags: the largest SE (0.0371) still gives |t| > 6.

# Limitations and open issues

  • The data are the current vintage, not real-time. GDP revisions may differ from the values originally published.
  • β is a linear-projection coefficient, not a causal effect. Unemployment's response to growth is spread over several quarters (consistent with the residual autocorrelation), and this contemporaneous regression does not model those dynamics.
  • The relationship may not be stable over time (e.g., across decades or recessions). I did not test for this. The 2020 COVID observations are excluded by design.
  • The HAC inference is asymptotic: it uses normal critical values and its HAC confidence intervals can undercover somewhat in finite samples. Given t ≈ −7, this does not affect the conclusion.
Files · main
Menu

Theme