SPB Git

spb/wp29_uqo

Public
6.2 KB · 34 lines markdown
1# Okun's law in the United States, 1960–2019 (F6-conf-03)23## Question4How strongly does the quarterly change in the US unemployment rate respond to quarterly real GDP growth, and has that response been stable? Estimand: β in Δu_t = α + β·g_t + ε_t, 1960Q1–2019Q4, with u_t the quarterly mean of monthly UNRATE (percent) and g_t = 100·Δln GDPC1 (percent, not annualised). Stability: separate OLS on 1960Q1–1983Q4 and 1984Q1–2019Q4 plus a classical Chow F-test of joint equality of (α, β).56## Data and exclusions7Inputs: `data/GDPC1.csv` (319 quarterly rows, 1947Q1–2026Q3) and `data/UNRATE.csv` (945 monthly rows, 1948-01–2026-09) (`n_input_rows`). SHA-256 hashes match `data/README.md` (see `out/state/data_audit.md`). Data issues (`data_issues`): one blank UNRATE value (2025-10), outside the window; both series extend past 2019Q4 and are the 2026 revised vintage. Exclusions (`out/exclusions.csv`): 319 GDPC1 quarters → 241 in 1959Q4–2019Q4 (78 removed, incl. everything after 2019Q4) → 240 after losing 1959Q4 to differencing. All three months were present in every quarter of the window. Regression sample: `sample_start` = 1960-01-01 to `sample_end` = 2019-10-01, `n_analysed` = 240; `n_sub1` = 96, `n_sub2` = 144.89## Method10- Baseline: mean-only prediction of Δu; RMSE `baseline_metric`.11- Main: full-sample OLS of Δu on a constant and g; point estimates `effect_estimate`, `intercept`; in-sample residual RMSE `model_metric`.12- Uncertainty: Newey–West HAC standard error (Bartlett kernel, small-sample correction) with `hac_lags` = 4 quarters, chosen by the Newey–West (1994) rule floor(4(T/100)^{2/9}) with T = 240; 95% CI = β ± 1.96·SE (`effect_ci_low`, `effect_ci_high`). `conclusion` is set from whether this interval excludes zero.13- Stability: OLS by subperiod (`beta_sub1`, `beta_sub2`); classical Chow F = [(SSR_pooled − SSR_1 − SSR_2)/2] / [(SSR_1 + SSR_2)/(n − 4)], df (2, 236) (`chow_f_stat`, `chow_p_value`, `stability_conclusion`). Supplementary (not required): HAC Wald tests in an interaction model with a post-1984 dummy, and HAC SE sensitivity to the lag length.14- No randomness used (`random_seed` = null). Everything is produced by `out/analysis.py` (also `out/table1.csv`, `out/figure1.png`).1516## Results17- Okun coefficient: `effect_estimate` = −0.256 pp of unemployment per 1% quarterly real GDP growth; `intercept` = 0.184 pp. So unemployment is flat when quarterly growth is about 0.72% (`implied_zero_du_growth_full`), roughly 2.9% annualised.18- Fit: `model_metric` = 0.250 pp, compared with `baseline_metric` = 0.325 pp for the mean-only baseline (`r_squared_full` = 0.408).19- Subperiods (Table 1, `out/table1.csv`): `beta_sub1` = −0.259 (`intercept_sub1` = 0.254) and `beta_sub2` = −0.273 (`intercept_sub2` = 0.152). The slopes are almost the same. What differs is the intercept: after 1984, unemployment stops rising at a lower growth rate, which fits slower trend growth.20- Chow test: `chow_f_stat` = 6.09, `chow_p_value` = 0.0026 → `stability_conclusion` = `unstable`. The joint (α, β) relation is not stable. The difference appears to come from the intercept, not the slope. Testing the slope difference alone with HAC gives p = 0.85 (`hac_slope_diff_p_value`). The intercept difference alone gives p = 0.25 (`hac_intercept_diff_p_value`). The joint HAC Wald test still rejects (`hac_joint_break_f_stat` = 5.37, `hac_joint_break_p_value` = 0.0052), because the two estimates are strongly correlated.21- Figure 1 (`out/figure1.png`): scatter of Δu against g with the two subperiod fitted lines.22- Conclusion code: `conclusion` = `negative_effect`.2324## Uncertainty25HAC SE `effect_se` = 0.036 (classical OLS SE `ols_classical_se_full` = 0.020). The HAC SE is about 1.8 times the classical one, so the residuals are serially correlated and/or heteroskedastic. 95% CI [`effect_ci_low`, `effect_ci_high`] = [−0.326, −0.185], well below zero. Changing the lag length (0, 2, 8, 12) gives SEs of 0.029–0.037 (`hac_se_lag_sensitivity`). Those choices do not change the conclusion. The subperiod HAC SEs are `beta_sub1_hac_se` = 0.040 and `beta_sub2_hac_se` = 0.069, so the two slopes cannot be told apart statistically.2627## Limitations and open issues28- **The Chow test assumes things the data do not meet.** The classical Chow F assumes homoskedastic, serially uncorrelated errors, and it was required in that form. Residual variance differs between the subperiods (`resid_variance_sub1` = 0.079 vs `resid_variance_sub2` = 0.048, i.e. the Great Moderation). The large HAC/OLS SE ratio shows the errors are not i.i.d. So the classical p-value is not exactly valid. The HAC joint Wald test (p = 0.0052) points the same way. Even so, a Wald test that allows different variances in each subperiod, or a sup-Wald test with an unknown break date, was not run. The 1984 break date is set by the task rather than estimated, which makes conventional inference a fair test of a pre-specified hypothesis. It does not show the break actually happened in 1984.29- **What "unstable" means here.** The rejection applies to (α, β) jointly. The question asks whether the *response* (β) is stable, and our data give no evidence that the slope changed. Reading `stability_conclusion` = unstable as "Okun's coefficient changed" would overstate the result.30- **Specification threats.** The static difference form leaves out lagged growth. Unemployment usually lags output, and this is part of why the residuals are autocorrelated. A dynamic model could give a different long-run coefficient. The relation is also treated as linear and symmetric; asymmetry between recessions and expansions was not checked. OLS treats g as exogenous. β is a reduced-form association, not a causal effect, and measurement error in GDP would bias |β| towards zero.31- **Data vintage.** GDPC1 is the 2026 revised vintage. Results based on real-time data, or on a different benchmark revision, could differ somewhat. Not checked.32- **Outliers and influence.** No influence diagnostics were run. Large recession quarters (e.g. 1980, 2008–09) visibly drive the fit in Figure 1.33- **Not checked:** other kernels or bandwidth selectors (beyond the lag sensitivity reported), t versus normal critical values (with T = 240 the difference is negligible), and the robustness of the result to the break date.34
Files · main
Menu

Theme