SPB Git

spb/wp29_uqo

Public
6.4 KB · 39 lines markdown
1# Okun's law in the United States, 1960Q1–2019Q4 (task F6-conf-03)23## Question4How strongly does the quarterly change in the US unemployment rate (Δu_t, pp) respond to quarterly real GDP growth (g_t = 100·Δln GDPC1, % not annualised), in Δu_t = α + β·g_t + ε_t over 1960Q1–2019Q4, and is (α, β) stable between 1960Q1–1983Q4 and 1984Q1–2019Q4? β is a reduced-form association (an "Okun coefficient"), not a structural causal effect.56## Data and exclusions7- `data/GDPC1.csv` (319 rows) and `data/UNRATE.csv` (945 rows) (`n_input_rows`); SHA-256 of both match `data/README.md` (see `out/state/data_audit.md`).8- Quarterly u_t = mean of the three monthly UNRATE values; a quarter is formed only when all three months are present. The only missing monthly value (2025-10) lies outside the window and has no effect (`data_issues`).9- Both series run to 2026; everything after 2019Q4 is cut before any computation. The window 1959Q4–2019Q4 holds 241 consecutive complete quarters (`n_window_quarters`). Dropping 1959Q4, which is used only as the lagged level, leaves 240 analysed quarters (`n_analysed`) from `sample_start` = 1960-01-01 to `sample_end` = 2019-10-01. `out/exclusions.csv` records this step (241 − 1 = 240). Subperiods: 96 quarters (`n_sub1`) and 144 quarters (`n_sub2`).10- The GDP data are the 2026 FRED vintage (chained 2017 dollars), not real-time data (`data_issues`).1112## Method13- Baseline: predict Δu by its sample mean; the RMSE is `baseline_metric`.14- Main model: full-sample OLS of Δu_t on a constant and g_t. The in-sample residual RMSE is `model_metric`.15- Standard errors: Newey–West HAC with a Bartlett kernel. The lag length is set by the Newey–West (1994) rule floor(4·(T/100)^{2/9}), which gives 4 quarters for T = 240 (`hac_lags`). No small-sample df correction is applied. The 95% CI is β ± 1.96·SE (normal approximation).16- Stability: separate OLS fits on each subperiod (`beta_sub1`, `beta_sub2`). Classical Chow F = [(SSR_pooled − SSR_1 − SSR_2)/2] / [(SSR_1 + SSR_2)/(n − 4)], with df (2, 236) (`chow_df`). Supplementary check: a HAC Wald test in a fully interacted model with a 1984Q1 dummy (`hac_wald_joint_p`, `hac_wald_slope_diff_p`, `hac_wald_intercept_diff_p`).17- Deliverables: `out/table1.csv` (full sample and both subperiods; the subperiod slope SEs are HAC with NW-rule lags, `hac_lags_sub1`, `hac_lags_sub2`) and `out/figure1.png`, both written by `out/analysis.py`. No randomness is used (`random_seed` = null).1819## Results20- Full sample: β = −0.256 (`effect_estimate`) and α = 0.184 pp (`intercept`). Each extra 1% of quarterly real GDP growth goes with about a 0.26 pp smaller rise in the unemployment rate in the same quarter. The growth rate at which unemployment is flat is about 0.98% per quarter before 1984 (`okun_growth_sub1`) and 0.55% after (`okun_growth_sub2`).21- Fit: residual RMSE is 0.250 pp (`model_metric`) against 0.325 pp for the mean-only baseline (`baseline_metric`); R² = 0.41 (`r_squared`).22- Subperiod slopes are almost the same: −0.259 for 1960–1983 (`beta_sub1`) and −0.273 for 1984–2019 (`beta_sub2`). Intercepts are 0.254 (`intercept_sub1`) and 0.152 (`intercept_sub2`).23- Chow test: F = 6.09 (`chow_f_stat`), p = 0.0026 (`chow_p_value`), which rejects joint equality of (α, β) at 5%. The task's coding rule therefore gives `stability_conclusion` = "unstable". The rejection concerns the (α, β) pair jointly. The slope point estimates hardly differ, and the HAC test of the slope difference alone gives p = 0.85 (`hac_wald_slope_diff_p`). What shifted is mainly the fitted line's level, i.e. the growth rate consistent with stable unemployment. However, the HAC test of the intercept alone is also not significant (p = 0.25, `hac_wald_intercept_diff_p`). The joint HAC test still rejects (p = 0.0042, `hac_wald_joint_p`) because the intercept and slope estimates are strongly correlated.24- `conclusion` = "negative_effect": the 95% CI lies entirely below zero.2526## Uncertainty27- HAC SE of β = 0.0358 (`effect_se`, 4 lags). 95% CI: [−0.326, −0.186] (`effect_ci_low`, `effect_ci_high`).28- The classical OLS SE is 0.0200 (`ols_classical_se`), so allowing for heteroskedasticity and autocorrelation makes the SE about 1.8 times larger.29- Sensitivity to the lag length (`hac_se_by_lag`): 0.029 (0 lags), 0.034 (2), 0.036 (4), 0.037 (8), 0.036 (12). The sign conclusion holds for every lag length.30- Subperiod HAC SEs: 0.039 (`beta_sub1_hac_se`) and 0.068 (`beta_sub2_hac_se`).3132## Limitations and open issues33- **The classical Chow test's assumptions are probably violated.** It assumes homoskedastic, serially uncorrelated errors with equal variance in both subperiods. Three things point the other way: HAC SEs are clearly larger than classical ones, residual variance probably differs between the two periods (Great Moderation), and there are visible large-residual quarters (e.g. 1980, 2008–09). The F-test's size may therefore be off. The HAC Wald test also rejects jointly (`hac_wald_joint_p`), which supports the rejection. But I did not test variance equality and did not run a Chow test with unequal variances.34- **The "unstable" verdict depends on the break date.** The split at 1984Q1 is imposed. I did not search over break dates (no Quandt–Andrews or Bai–Perron test). The instability is in the intercept/slope pair, not in the slope point estimate, so it should not be read as "Okun's coefficient changed".35- **Specification threats.** The model is static and contemporaneous, with no lags of g or Δu. Okun dynamics, a trend-growth slowdown (which shows up as an intercept shift), and possible nonlinearity or asymmetry between recessions and expansions were not modelled. Measurement error in quarterly GDP growth would bias β towards zero. Simultaneity means β is not causal.36- **Data vintage.** The 2026 vintage GDPC1 includes benchmark revisions. Real-time estimates would differ, and I did not check how sensitive the results are to vintage.37- **Inference choices.** The lag rule is ad hoc, but results barely change with lag length. The CI uses a normal rather than t approximation (negligible difference at n = 240). With only 96 and 144 quarters, the subperiod HAC SEs are less reliable.38- **What would invalidate the result:** errors in quarterly aggregation (checked by independent recomputation, see `out/state/checks.md`), any leakage of post-2019 data (excluded by construction and assertions), or a different definition of g (e.g. annualised, which would scale β by 1/4).39
Files · main
Menu

Theme