Okun's law in the United States, 1960–2019 (F6-conf-03)
Question
How 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? Was the relation stable between 1960Q1–1983Q4 and 1984Q1–2019Q4? β is a reduced-form (descriptive) association, not a causal effect.
Data and exclusions
Inputs: data/GDPC1.csv (319 quarterly rows) and data/UNRATE.csv (945 monthly rows) (n_input_rows); SHA-256 hashes match the README (see out/state/data_audit.md). Quarterly u_t is the mean of the three monthly UNRATE values. Exclusions (out/exclusions.csv, counted in GDP quarters): 51 quarters before 1959Q4 dropped, 27 quarters after 2019Q4 dropped (information rule), 1959Q4 used only as the lag level → 240 quarters analysed (n_analysed), from sample_start = 1960-01-01 to sample_end = 2019-10-01; subperiods have n_sub1 = 96 and n_sub2 = 144 quarters. Data issues (data_issues): one blank UNRATE value (2025-10), outside the sample, so it has no effect; both files extend past 2019Q4 and were truncated; GDPC1 is the current revised vintage.
Method
- Baseline: mean-only prediction of Δu; RMSE
baseline_metric. - Main estimate: full-sample OLS of Δu on a constant and g. Standard errors are Newey–West HAC (Bartlett kernel, no small-sample correction). The lag length is
hac_lags= 4, from the rule floor(4·(n/100)^(2/9)) with n = 240. The 95% CI is β ± 1.96·SE. - Stability: separate OLS on each subperiod. The classical Chow test compares the pooled sum of squared residuals with the sum from the two subperiod fits, F = ((SSR_p − SSR_u)/2)/(SSR_u/(n−4)), with df (2, 236).
- Supplementary diagnostics (not required): HAC SE at other lag lengths (
hac_se_sensitivity), and a HAC t-test of a break in the slope alone, run as a dummy-interaction regression (slope_break_hac_pvalue). - The analysis is deterministic and uses no random numbers (
random_seed= null). Outputs:out/table1.csv(slope_se = HAC SE, 4 lags, in each row) andout/figure1.png.
Results
- Full sample: β = −0.256 (
effect_estimate) and α = 0.184 pp (intercept), so 1 pp higher quarterly real growth goes with about a 0.26 pp larger fall in the unemployment rate that quarter. R² = 0.41 (r_squared_full). - Fit: residual RMSE is 0.250 pp (
model_metric), against 0.325 pp for the mean-only baseline (baseline_metric). - The 95% HAC interval lies entirely below zero, so
conclusion=negative_effect. - Subperiod slopes are nearly equal: −0.259 in 1960–83 (
beta_sub1) and −0.273 in 1984–2019 (beta_sub2). - The joint Chow test of (α, β) rejects equality: F = 6.09 (
chow_f_stat), p = 0.0026 (chow_p_value), sostability_conclusion=unstable. - The rejection comes from the intercept, not the slope. The intercept falls from 0.254 (
intercept_sub1) to 0.152 (intercept_sub2), while the slope-only HAC break test gives p = 0.85 (slope_break_hac_pvalue). One reading is that the growth rate needed to keep unemployment stable (−α/β) fell after 1984, but this is an interpretation that was not tested formally.
Table 1 (out/table1.csv) gives n, intercept, slope and HAC SE per sample. Figure 1 (out/figure1.png) shows the scatter with the two subperiod fitted lines.
Uncertainty
- HAC SE of β = 0.0358 (
effect_se). 95% CI: [−0.326, −0.186] (effect_ci_low,effect_ci_high). - The classical OLS SE is 0.0200 (
ols_classical_se_full), so correcting for autocorrelation and heteroskedasticity widens the SE by about 80%. - Lag sensitivity (
hac_se_sensitivity): SE is 0.029 at 0 lags, 0.034 at 2, 0.037 at 8 and 0.036 at 12. The interval excludes zero at every lag length tried. - The Chow p-value assumes homoskedastic, serially uncorrelated errors. The HAC/classical SE ratio shows these assumptions fail here, so that p-value is probably too small (over-rejects). The stability verdict is required to rest on the classical test and is reported as such, but should be read with this caveat.
Limitations and open issues
- What would invalidate the result:
- The Chow test's i.i.d.-error assumption is violated (serial correlation is evident). A HAC-robust joint Wald test might not reject, so the
unstableverdict is fragile. It was not computed, because the task specifies the classical test. - The break date (1984Q1) is imposed, not estimated. Unknown-break tests (sup-F/Quandt–Andrews) were not run.
- The sample-split result depends on that choice.
- The Chow test's i.i.d.-error assumption is violated (serial correlation is evident). A HAC-robust joint Wald test might not reject, so the
- Not checked:
- Endogeneity / simultaneity. β is a projection coefficient, not a structural parameter.
- Dynamic specifications with lagged growth. The contemporaneous-only model may misattribute timing.
- Real-time vs revised GDP. The current GDPC1 vintage is used, and earlier vintages might give different values.
- Outliers (e.g. the 1980–82 recessions, 2008–09) and their influence.
- Asymmetry between expansions and recessions.
- Changes in UNRATE methodology (e.g. the 1994 CPS redesign).
- Main threats:
- The Chow rejection is driven by an intercept shift, probably reflecting slower trend growth and labour-force changes. This means "unstable" here does not mean the Okun slope changed: the slope-only test does not reject (
slope_break_hac_pvalue). - The HAC lag choice changes the SE modestly but not the sign conclusion.
- The Chow rejection is driven by an intercept shift, probably reflecting slower trend growth and labour-force changes. This means "unstable" here does not mean the Okun slope changed: the slope-only test does not reject (