Okun's law in U.S. quarterly data, 1960Q1–2019Q4 (F2-conf-04)
Question
Estimate the slope β of the linear projection Δu_t = α + β g_t + e_t, where u_t is the quarterly average of monthly UNRATE (pp) and g_t = 100·ln(GDPC1_t/GDPC1_{t−1}) (% q/q, not annualised). Sample: 1960Q1–2019Q4. Test whether β is negative and significantly different from zero at 5%, using a Newey–West (Bartlett) HAC standard error that remains valid when the errors are serially correlated.
Data and exclusions
data/UNRATE.csv: 945 monthly rows;data/GDPC1.csv: 319 quarterly rows (n_input_rows). SHA-256 checksums matchdata/README.md(seeout/state/data_audit.md).- One data issue (
data_issues): UNRATE is empty for 2025-10. That month is outside the analysis window, so it is not used. The script checks that every quarter in the window has all three monthly values. - Exclusions (
out/exclusions.csv), counted in GDPC1 quarters: 319 → 241 after keeping 1959Q4–2019Q4 (78 removed); → 240 after dropping 1959Q4, which serves only as the base for the first differences (1 removed).n_analysed= 240, fromfirst_quarter= 1960Q1 tolast_quarter= 2019Q4.
Method
- OLS of Δu_t on a constant and g_t.
- Naïve baseline SE: the conventional iid/homoskedastic standard error (
se_iid). - Main SE: the Newey–West HAC estimator with Bartlett weights 1 − j/(L+1), without a small-sample degrees-of-freedom correction (
se_hac). The script checks it against a manual computation. - Bandwidth: L = floor(4·(T/100)^(2/9)) = 4 for T = 240 (
hac_lags). This is the standard Newey–West (1994) rule of thumb for the Bartlett kernel. It covers the observed residual autocorrelation, which falls from 0.39 at lag 1 to 0.07 at lag 4 (resid_autocorr_lag1_4). - The 95% CI is β̂ ± 1.96·se_hac, using the normal approximation that the asymptotic HAC theory justifies.
- The script uses no randomness (
random_seed= null).out/analysis.pyregenerates all outputs, includingout/figure1.png(scatter of Δu_t against g_t with the fitted line).
Results
- Okun coefficient:
beta_hat= −0.256. Each additional 1% of quarterly real GDP growth is associated with a 0.256 pp fall in the unemployment rate in that quarter. - Intercept:
alpha_hat= 0.184 pp. Δu is zero at g ≈ 0.72% q/q (≈ 2.9% annualised), which is computed fromalpha_hat/beta_hat. - Fit:
r_squared= 0.408. - Mean growth:
mean_growth= 0.754% per quarter. - The coefficient is negative and significant at 5% using the HAC SE:
okun_negative_5pct= true, with HAC t-statt_hac= −7.14 andp_value_hac≈ 1e−12.
Uncertainty
se_iid= 0.0200 (baseline) andse_hac= 0.0358. The HAC SE is about 1.8 times larger, reflecting positive serial correlation in the residuals.- HAC 95% CI: [
beta_ci_low,beta_ci_high] = [−0.326, −0.186]. The naïve iid CI is narrower: [baseline_ci_iid_low,baseline_ci_iid_high] = [−0.295, −0.217]. - Bandwidth sensitivity (
sensitivity_se_hac_by_lag): the HAC SE is 0.0288 at L = 0 (White SE), 0.0342 at L = 2, 0.0358 at L = 4, 0.0365 at L = 5, 0.0371 at L = 8 and 0.0364 at L = 12. The conclusion holds at every bandwidth tried: |t| > 6.
Limitations and open issues
- β is a contemporaneous linear-projection coefficient, not a causal effect. The specification omits lags of growth, so dynamic Okun effects are not captured.
- The data are the current vintage, not real-time data. GDP revisions could change the estimates for other vintages.
- The coefficient may not have been stable over 1960–2019; no test for structural breaks was done because the task does not ask for one.
- The bandwidth comes from a rule of thumb, not data-driven selection. The sensitivity results above show this choice does not affect the conclusion.
- The normal critical value ignores the size distortions HAC tests can have in finite samples. With |t| ≈ 7 these distortions would not change the conclusion.