# 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 match `data/README.md` (see `out/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, from `first_quarter` = 1960Q1 to `last_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.py` regenerates all outputs, including `out/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 from `alpha_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-stat `t_hac` = −7.14 and `p_value_hac` ≈ 1e−12. ## Uncertainty - `se_iid` = 0.0200 (baseline) and `se_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.