SPB Git

spb/wp29_uqo

Public
3.6 KB · 33 lines markdown
1# F6-conf-02 — BoC March-2020 emergency cuts and the GoC 5-year yield23## Question4The question is whether the mean one-day change in the Government of Canada 5-year benchmark yield (bp) differs between two windows: the trading days flagged `post_cut = 1` (on or after 2020-03-04), and the 120 trading days before the first flagged day. The estimand comes with a 95% Welch (unequal-variance) interval. **Result: the estimand cannot be computed from the data provided** (`conclusion` = `premise_invalid`, `feasibility` = `infeasible`).56## Data and exclusions7- `data/gc5y_daily.csv` contains 2498 rows (`n_input_rows`), running from `sample_start` = 2010-01-04 to `sample_end` = 2019-12-31. Its SHA-256 matches the README (`input_sha256`). There are no missing values and no duplicate dates, and the dates are in order.8- **No row has `post_cut = 1`** (`n_treated` = 0). The README retrieval URL uses `end_date=2019-12-31`, so the file stops about two months before the 2020-03-04 cut. This is recorded in `data_issues`.9- Exclusions (`out/exclusions.csv`): 1 row dropped because the first row has no previous value to difference against, leaving 2497 changes (`baseline_n_changes`). The estimation-window step leaves 0 rows, because no flagged day exists. `n_analysed` = null.1011## Method12- One-day change = 100·(y_t − y_{t−1}) between consecutive rows. `post_cut` is used as provided.13- Baseline: the mean change over the whole file.14- Planned model: two-window means (post vs. the 120 preceding rows), giving their difference, a Welch–Satterthwaite 95% t-interval, and the RMSE of the two-window mean model. This is coded in `out/analysis.py`, but the code path is not run because the treated window is empty. No randomness is used (`random_seed` = null).15- I deliberately did **not** substitute a proxy (such as a placebo date inside 2010–2019), because the task forbids invented or proxy estimates.1617## Results18- `baseline_metric` = −0.0429 bp per day over the whole 2010–2019 file (SD `baseline_sd_change_bp` = 4.24 bp).19- `effect_estimate`, `effect_ci_low`, `effect_ci_high` and `model_metric` are all null, because they are not estimable.20- Figure 1 (`out/figure1.png`) plots the yield over 2010–2019. The cut date is marked, and it falls outside the sample. Table 1 (`out/table1.csv`) gives yearly counts, mean yields and mean changes; it is descriptive only and does not bear on the estimand.2122## Uncertainty23No interval can be given for the effect (`effect_ci_low` and `effect_ci_high` are null). The baseline is a single descriptive mean and was not used for inference.2425## Limitations and open issues26- **Main failure:** the file covers the wrong period for the question. A valid answer needs Valet data that runs at least through March 2020 (for example start_date 2019-09-01 and an end_date after 2020-03-31). Once such data is supplied, `out/analysis.py` would compute the estimand without changes.27- Threats that would remain even with correct data:28  - The post window is defined open-ended by `post_cut`, so its length depends on where the file ends.29  - March 2020 also brought the global COVID dash for cash, further BoC cuts (2020-03-13 and 2020-03-27) and the start of GoC bond purchases. A before/after mean difference therefore cannot isolate the 2020-03-04 cut; it is descriptive, not causal.30  - Daily changes in March 2020 were heteroskedastic and probably autocorrelated, and Welch intervals ignore autocorrelation.31  - A gap of more than one business day between rows would turn a "one-day" change into a multi-day change.32- Not checked: whether the Valet values were later revised, and anything that requires data from outside the file.33
Files · main
Menu

Theme