SPB Git

spb/wp29_uqo

Public
6.2 KB · 56 lines markdown
1# F6-conf-03 — Okun's law in the United States, 1960–2019: coefficient, uncertainty and stability23## Scientific question4How strongly do quarterly changes in the US unemployment rate respond to real output growth, and has that response been stable? The estimand is the Okun coefficient β in the difference form Δu_t = α + β·g_t + ε_t over 1960Q1–2019Q4, where Δu_t is the change in the quarterly-average civilian unemployment rate (percentage points) and g_t = 100·(ln GDPC1_t − ln GDPC1_{t−1}) is quarterly real GDP growth in percent (not annualised); uncertainty must be robust to heteroskedasticity and serial correlation. Stability is assessed by estimating β separately on 1960Q1–1983Q4 and 1984Q1–2019Q4 and by a classical Chow test of the joint equality of (α, β) across the two subperiods. The chain required is: question → data audit → baseline → justified method → results → uncertainty → failure discussion → one figure and one table → short report.56## Inputs7- `data/GDPC1.csv` — observed data, FRED GDPC1 (US real GDP, quarterly, billions of chained 2017 dollars, SAAR; BEA), full history, raw FRED CSV (`observation_date` = first day of the quarter, `GDPC1`). Provenance in `data/README.md`.8- `data/UNRATE.csv` — observed data, FRED UNRATE (US civilian unemployment rate, monthly, percent, SA; BLS), full history, raw FRED CSV (`observation_date` = first day of the month, `UNRATE`). Provenance in `data/README.md`.9- `data/README.md` — provenance, retrieval dates, SHA-256.1011## Information-availability rules12- Quarterly unemployment u_t is the simple average of the three monthly UNRATE values of quarter t. Δu_t = u_t − u_{t−1}.13- The regression sample is the 240 quarters 1960Q1–2019Q4 (the 1960Q1 differences use 1959Q4 levels). Quarters after 2019Q4 are outside the question and must not enter any estimate. Subperiod 1 = 1960Q1–1983Q4, subperiod 2 = 1984Q1–2019Q4.14- Standard errors for the full-sample β must be HAC (Newey–West with Bartlett kernel); choose and report the lag length. The Chow test is the classical sum-of-squared-residuals F-test with 2 and n − 4 degrees of freedom.15- Use only the files listed above.1617## Required outputs18- `out/results.json` with the keys:1920| key | type | unit | meaning |21|---|---|---|---|22| `sample_start`, `sample_end` | string | ISO date | first day of the first and last quarter in the regression sample (`1960-01-01`, `2019-10-01`) |23| `n_sub1`, `n_sub2` | integer | quarters | observations in each subperiod |24| `baseline_metric` | number | percentage points | RMSE of the mean-only prediction of Δu over the full sample, sqrt(mean((Δu − mean Δu)²)) |25| `model_metric` | number | percentage points | RMSE of the full-sample OLS residuals, sqrt(mean(e²)) |26| `effect_estimate` | number | pp per percent growth | full-sample OLS Okun coefficient β |27| `intercept` | number | percentage points | full-sample OLS intercept α |28| `effect_se` | number | pp per percent growth | HAC (Newey–West) standard error of β |29| `hac_lags` | integer | quarters | Newey–West lag length used |30| `effect_ci_low`, `effect_ci_high` | number | pp per percent growth | 95% confidence interval for β based on `effect_se` |31| `beta_sub1`, `beta_sub2` | number | pp per percent growth | OLS slope in subperiod 1 and 2 |32| `chow_f_stat`, `chow_p_value` | number | — | Chow F statistic and p-value |33| `stability_conclusion` | string | — | `stable` if the Chow test does not reject at 5%, else `unstable` |34| `conclusion` | string | — | one of the codes below (sign of β from its 95% interval) |35| `task_id` | string | copied from this file |36| `feasibility` | string | `complete` / `partial` / `infeasible` |37| `feasibility_reason` | string or null | why, if not complete |38| `data_issues` | array of {"issue","handling"} | every data problem detected and how it was handled (empty list allowed) |39| `n_input_rows` | object {file: integer} | rows read per input file (file name as key, header row excluded) |40| `n_analysed` | integer or null | observations actually used in the main estimate |41| `random_seed` | integer or null | seed used, if any |4243(`n_analysed` = quarters in the full-sample regression.)4445The `conclusion` code must be one of: `positive_effect` (the 95% interval for the effect estimand lies above zero), `negative_effect` (lies below zero), `no_detectable_effect` (the interval / test does not reject zero at the 5% level), `premise_invalid` (the data provided do not allow the stated estimand to be computed — in that case set `feasibility` to `infeasible`, explain in `feasibility_reason`, and set every inestimable key to `null`; never substitute an invented or proxy estimate).4647- `out/figure1.png` — scatter of Δu_t against g_t with the two subperiod fitted lines, produced by `out/analysis.py` with matplotlib.48- `out/table1.csv` — one row per sample (full, subperiod 1, subperiod 2) with columns `period`, `n`, `intercept`, `slope`, `slope_se` (header + three data rows), produced by `out/analysis.py`.49- `out/report.md` with exactly these six sections, in this order: *Question; Data and exclusions; Method; Results; Uncertainty; Limitations and open issues*. The last section must contain a genuine failure discussion: what would invalidate the result, what was not checked, and what the main threats are.50- `out/analysis.py` — replication entry point: `~/wp29/venv/bin/python out/analysis.py`, run from the workspace root, must regenerate `out/results.json`, `out/figure1.png` and `out/table1.csv` from `data/` only, deterministically (fix any seed; use the matplotlib `Agg` backend).51- `out/claims.json` — list of the central claims of the report: `[{"id": "C1", "text": "...", "results_keys": ["..."], "status": "supported"|"unsupported"|"not_evaluated", "caveat": "..."}]`. Every claim must reference existing keys of `out/results.json`; a claim must only be marked `supported` if the reported numbers actually support it.5253## Constraints54- No network access. Python: `~/wp29/venv/bin/python` (numpy, pandas, scipy, statsmodels, matplotlib available). Do not modify `data/`.55- Write all deliverables under `out/`. This task is designed to be completed in well under 20 minutes of work; prefer a short, correct chain over an elaborate one.56
Files · 452964ee0fbbaa40fbbed2c87a54ca798ffd6a85
Menu

Theme