SPB Git

spb/wp29_uqo

Public
4.5 KB · 43 lines markdown
1# Okun's law in U.S. quarterly data, 1960Q1–2019Q4 (F2-conf-04)23## Question4How strongly does the quarterly change in the U.S. unemployment rate move with quarterly real GDP growth? The target is the slope β in the linear projection Δu_t = α + β g_t + e_t. Here u_t is the average of the three monthly UNRATE values in quarter t (in pp), and g_t = 100·ln(GDPC1_t/GDPC1_{t−1}) is growth in percent, quarter on quarter and not annualised. The sample is 1960Q1–2019Q4. The standard error must stay valid when the errors are serially correlated. β describes an association. It is not a causal effect.56## Data and exclusions7- `data/UNRATE.csv` has 945 monthly rows and `data/GDPC1.csv` has 319 quarterly rows (`n_input_rows`). Both SHA-256 checksums match `data/README.md` (see `out/state/data_audit.md`).8- One data problem was found: UNRATE for 2025-10 is an empty field. It falls outside the window, so it does not affect the estimates (`data_issues`).9- Exclusion ledger (`out/exclusions.csv`, counted in quarters):10  - Start with the 319 GDPC1 quarters. Keep only quarters with a complete 3-month UNRATE average: 5 removed (1947Q1–Q4 and 2025Q4), 314 left.11  - Restrict to 1959Q4–2019Q4: 73 removed, 241 left.12  - Drop the 1959Q4 base quarter after differencing: 1 removed, 240 left.13- The regression uses `n_analysed` = 240 quarters, from `first_quarter` = 1960Q1 to `last_quarter` = 2019Q4. No observation after 2019Q4 enters the regression.1415## Method16- **Baseline:** OLS of Δu_t on a constant and g_t, with the conventional homoskedastic, independent-errors standard error (`se_iid`).17- **Main inference:** the same OLS point estimate with a Newey–West HAC standard error (Bartlett kernel), no small-sample degrees-of-freedom correction (`se_hac`).18- **Bandwidth:** `hac_lags` = 4. This is the Newey–West (1994) rule of thumb floor(4·(T/100)^{2/9}) with T = 240, fixed before looking at results. A lag window of about one year also fits quarterly macro data.19- **Confidence interval and test:** the 95% CI is β̂ ± 1.96·`se_hac`, using the asymptotic normal critical value. `okun_negative_5pct` is true only if β̂ < 0 and the two-sided HAC test of β = 0 has p < 0.05.20- **Code check:** the HAC sandwich was also computed by hand in `out/analysis.py` and asserted equal to the statsmodels result.21- No randomness is involved (`random_seed` = null). `out/analysis.py` also produces `out/figure1.png` (scatter of Δu_t against g_t with the fitted line).2223## Results24- **Slope:** `beta_hat` = −0.2558. One extra percentage point of quarterly real GDP growth goes with a 0.256 pp smaller quarterly change in the unemployment rate.25- **Intercept and fit:** `alpha_hat` = 0.1844 pp and `r_squared` = 0.408.26- **Mean growth:** `mean_growth` = 0.754 percent per quarter.27- **Significance:** the Okun coefficient is negative and significant at the 5% level (`okun_negative_5pct` = true). The HAC t-statistic is −7.14 (`t_stat_hac`), with p ≈ 9.5e−13 (`p_value_hac`).2829## Uncertainty30- **Standard errors:** `se_iid` = 0.0200 and `se_hac` = 0.0358 (`hac_lags` = 4).31- **Why they differ:** the OLS residuals are positively autocorrelated, with lag-1 autocorrelation 0.39 (`residual_acf_lag1`). Because of that, the HAC SE is about 1.8 times the naive SE.32- **Confidence intervals:**33  - 95% HAC CI: [`beta_ci_low`, `beta_ci_high`] = [−0.326, −0.186].34  - Naive 95% CI, shown for comparison only: [`beta_ci_iid_low`, `beta_ci_iid_high`] = [−0.295, −0.217]. It is too narrow.35- **Bandwidth sensitivity** (`se_hac_by_lags`): across L ∈ {0, 1, 2, 4, 6, 8, 12} the HAC SE ranges from 0.0288 to 0.0371. Every choice gives a CI well away from zero, so the conclusion does not depend on the bandwidth.3637## Limitations and open issues38- **Data vintage:** this is the current data vintage, not real-time data. Revisions to GDP could change the estimate in other vintages.39- **Interpretation:** β is a reduced-form projection coefficient, not a structural or causal parameter. It assumes the relationship is stable over 1960–2019, and the possibility of breaks across decades was not examined, because the task fixes the window.40- **Inference choices:** the HAC inference is asymptotic, with a normal critical value and no small-sample correction. Fixed-b critical values or a small-sample correction would widen the interval slightly. With |t| > 7, this would not change the conclusion.41- **Measurement:** Δu is built from quarterly averages of monthly data. This time-averaging itself creates serial correlation, which is one reason to use HAC errors.42- Nothing in the task was infeasible (`feasibility` = "complete").43
Files · main
Menu

Theme