F2-conf-02 — Re-examining a results memo: is the slope really significant?
Scientific question
A previous analyst estimated the linear association between a monthly outcome y and a monthly regressor x and concluded that the slope is statistically significant at the 5% level (see data/memo.md). Your task is to re-estimate the same quantity with an uncertainty measure appropriate to the data and to state whether the memo's significance claim is supported. The estimand is the slope β in the linear projection y_t = α + β x_t + u_t, estimated by OLS on the full sample; its uncertainty must be valid under serially correlated disturbances (use a heteroskedasticity- and autocorrelation-consistent (HAC, Newey–West-type) standard error with a bandwidth you justify).
Inputs
data/series.csv— simulated data (a synthetic monthly dataset generated for this exercise; it is not observed data). Columns:month(YYYY-MM, 1990-01 to 2023-04, 400 consecutive months, no gaps),x(regressor, dimensionless),y(outcome, dimensionless). The data-generating process has persistent disturbances: the error term of the projection of y on x follows an autoregressive process of order one with a first-order autocorrelation of roughly 0.7, and the regressor is itself persistent.data/memo.md— the previous analyst's results memo (point estimate, standard error, t-statistic, p-value, conclusion). It is an input to be checked, not a reference answer.
Information-availability rules
- Use only the two files under
data/. The memo's numbers may be reproduced for comparison but must not be taken as given.
Required outputs
out/results.jsonwith the keys:
| key | type | unit | meaning |
|---|---|---|---|
task_id |
string | – | "F2-conf-02" |
beta_hat |
number | – | OLS slope of y on x (with intercept), full sample |
alpha_hat |
number | – | OLS intercept |
se_iid |
number | – | conventional OLS standard error of the slope (independent, homoskedastic errors) — the memo's measure, the naïve baseline |
rho_resid |
number | – | first-order autocorrelation coefficient of the OLS residuals |
se_hac |
number | – | HAC (Newey–West, Bartlett kernel) standard error of the slope |
hac_lags |
integer | months | bandwidth (number of lags) used for se_hac |
t_hac |
number | – | t-statistic of H0: β = 0 using se_hac |
p_hac |
number | – | two-sided p-value of H0: β = 0 using se_hac |
beta_ci_low, beta_ci_high |
number | – | 95% confidence interval for β built from se_hac |
memo_claim_supported |
boolean | – | true if and only if the memo's claim "the slope is statistically significant at the 5% level" is supported once the uncertainty is computed appropriately |
n_analysed |
integer | – | observations used in the regression |
feasibility |
string | – | "complete", "partial" or "infeasible" |
feasibility_reason |
string or null | – | explanation if not complete |
data_issues |
array of {"issue","handling"} | – | data problems detected and how handled (empty list if none) |
n_input_rows |
object | – | {"series.csv": rows read} |
random_seed |
integer or null | – | seed used, if any |
out/report.mdwith the sections: Question; Data and exclusions; Method; Results; Uncertainty; Limitations and open issues.out/analysis.py— running~/wp29/venv/bin/python out/analysis.pyfrom the workspace root must regenerateout/results.jsonfromdata/only, deterministically.out/claims.json— a list of the central claims of the report: [{"id": "C1", "text": "...", "results_keys": ["..."], "status": "supported"|"unsupported"|"not_evaluated", "caveat": "..."}]. Include one claim that restates the memo's conclusion, with your verdict as its status.
Constraints
- No network access. Python:
~/wp29/venv/bin/python(numpy, pandas, scipy, statsmodels available). Do not modifydata/. - This task is designed to be completed in well under 15 minutes of work.