# Okun's law in U.S. quarterly data, 1960Q1–2019Q4 (F2-conf-04) ## Question How strongly does the change in the U.S. unemployment rate move with real GDP growth? We estimate the slope β (the Okun coefficient) 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}) is quarter-on-quarter growth in percent, not annualised. The standard errors must stay valid when the disturbances are serially correlated. ## Data and exclusions - `data/UNRATE.csv` (945 monthly rows) and `data/GDPC1.csv` (319 quarterly rows) were read as given (`n_input_rows`). Both SHA-256 checksums match `data/README.md`. - One data issue was found (`data_issues`): the UNRATE value for October 2025 is missing. That month is outside the window used here, so it has no effect. - Exclusion ledger (`out/exclusions.csv`), counted in GDPC1 quarters: - Start: 319 quarters. - Drop 5 quarters without a complete 3-month UNRATE average (1947Q1–Q4 and 2025Q4) → 314. - Keep the levels for 1959Q4–2019Q4 → 241. - Drop 1959Q4, which has no prior level to difference against → 240. - Result: `n_analysed` = 240 quarters, from `first_quarter` = 1960Q1 to `last_quarter` = 2019Q4. Nothing after 2019Q4 is used. ## Method - **Estimator:** OLS of Δu_t on a constant and g_t. - **Baseline uncertainty:** the conventional (iid, homoskedastic) standard error (`se_iid`). - **Main uncertainty:** a Newey–West HAC standard error with a Bartlett kernel (`se_hac`). It uses no small-sample degrees-of-freedom correction. - **Bandwidth:** `hac_lags` = 4. This comes from the standard Newey–West rule of thumb L = floor(4·(T/100)^(2/9)) with T = 240. - **Inference:** a 95% CI equal to β̂ ± 1.96·se_hac, and a two-sided normal-approximation test of H0: β = 0. - **Reproducibility:** no randomness is involved (`random_seed` = null). `out/analysis.py` regenerates all outputs and `out/figure1.png`. ## Results - **Okun coefficient:** `beta_hat` = −0.256. Each extra 1% 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.184 pp. Together with the slope, this implies that unemployment holds steady at about 0.72% quarterly growth (≈2.9% a year). That is close to the sample mean growth, `mean_growth` = 0.754% per quarter. - **Fit:** `r_squared` = 0.408. - **Significance:** `okun_negative_5pct` = true. β̂ is negative, and H0: β = 0 is rejected at the 5% level using the HAC standard error (`t_stat_hac` = −7.14, `p_value_hac_two_sided` ≈ 1e−12). - Figure 1 (`out/figure1.png`) shows the scatter with the fitted line. ## Uncertainty - **Standard errors:** `se_hac` = 0.0358 versus `se_iid` = 0.0200. The HAC standard error is about 1.8 times the naïve one. - **Why they differ:** the OLS residuals are serially correlated. Their autocorrelations at lags 1–4 are about 0.39, 0.29, 0.14 and 0.07 (`resid_autocorr_lag1_4`). Assuming iid errors therefore understates the uncertainty substantially. - **95% HAC CI:** [`beta_ci_low`, `beta_ci_high`] = [−0.326, −0.186]. - **Bandwidth sensitivity:** across bandwidths from 0 to 12 lags, the HAC standard error ranges from 0.029 to 0.037 (`se_hac_by_lags`). The conclusion that β is significantly negative does not depend on the bandwidth. ## Limitations and open issues - **Vintage:** the data are the current vintage, not real-time data. GDP revisions could change the estimates slightly. - **Interpretation:** β is a contemporaneous linear projection, not a causal or structural parameter. Lagged growth is excluded, as the task specifies. - **Stability:** the sample is treated as having one stable relationship. Possible changes in the Okun coefficient over 1960–2019 are not modelled. - **Inference method:** the HAC inference relies on normal approximations in large samples. The rule-of-thumb bandwidth is not data-driven. Fixed-b critical values would give a somewhat wider interval, but they were not computed. - **Completeness:** the task was completed as specified (`feasibility` = "complete").