SPB Git

spb/wp29_uqo

Public
5.1 KB · 55 lines markdown
1# F1-conf-01 — 12-month CPI inflation (CPIAUCSL, SA) from two ALFRED vintages23## Question4For every month t from 2001-01 to 2026-09, compute g_t = 100 × (P_t / P_{t−12} − 1). P is the CPIAUCSL index level taken from the most recent vintage that covers the month: the 2026-10-28 vintage for 2014-01 onward, and the 2016-07-15 vintage before that. The task asks for the full-window mean, the two sub-period means, five named months, and the maximum and minimum.56## Data and exclusions7- Inputs read: `cpi_vintage_2016-07-15.csv` (834 rows, 1947-01..2016-06), `cpi_vintage_2026-10-28.csv` (153 rows, 2014-01..2026-09) and `cpi_assembled.csv` (957 rows). Neither vintage file has duplicate dates or gaps in the month sequence.8- **Missing value:** the 2026 vintage has an empty cell for **2025-10**, meaning the source published no value for that month. I did not impute it, and I did not fill it from the older vintage (which does not cover that month anyway). So g for 2025-10 is missing. The growth rate for 2026-10 would also need the 2025-10 level, but that month is outside the window. The lagged level for 2025-10 (2024-10) does exist, so nothing else drops out.9- **Revisions:** the two vintages overlap for 2014-01..2016-06 (30 months), and every one of those 30 values differs between them. The largest gap is 0.455 index points, consistent with seasonal-factor revisions. Following the rule, I used the 2026 vintage for these months.10- **Mixed vintages:** g_t for 2014-01..2014-12 divides a level from the 2026 vintage by a 2013 level from the 2016 vintage, because the 2026 extract starts in 2014-01. This is what the stated rule implies, but it means numerator and denominator come from different vintages.11- **Errors in the hand-assembled file** (`cpi_assembled.csv`):12  1. For the overlap 2014-01..2016-06 it uses the older vintage.13  2. It drops 2016-07.14  3. From 2016-08 onward every value is shifted one month later than in the source. As a result it shows an invented 2026-10 value, and its empty cell sits at 2025-11 instead of 2025-10.15  4. In total, 153 of its rows have values that disagree with the authoritative files.1617  I therefore did not use it for any estimate. I read it only to check it and to run one sensitivity comparison (below).18- Exclusion ledger (`exclusions.csv`): there are 309 months in the window; 1 is dropped because its own level P_t is missing (2025-10); 0 are dropped for a missing P_{t−12}. That leaves **308 analysed months** (`analytic.csv`).1920## Method211. Join the levels: the 2016-07-15 vintage for months before 2014-01, and the 2026-10-28 vintage from 2014-01 on (an empty cell stays missing).222. Put the series on a complete monthly calendar and compute g_t from the level 12 calendar months earlier.233. Take simple arithmetic means over the analysed months.2425The calculation is deterministic and uses no random numbers. `out/analysis.py` regenerates every output file.2627## Results28| quantity | value |29|---|---|30| first / last month | 2001-01 / 2026-09 |31| months with g_t / missing | 308 / 1 (2025-10) |32| mean g, 2001-01..2026-09 | 2.574 % |33| mean g, 2001-01..2013-12 (n=156) | 2.361 % |34| mean g, 2014-01..2026-09 (n=152) | 2.793 % |35| g 2014-06 | 2.098 % |36| g 2016-07 | 0.868 % |37| g 2020-05 | 0.198 % |38| g 2022-06 | 8.979 % |39| g 2026-09 | 3.717 % |40| maximum | 8.979 % in 2022-06 |41| minimum | −1.959 % in 2009-07 |4243Sensitivity (`results.json` → `sensitivity`; not part of the estimand):44- **Older vintage in the overlap:** using the 2016 vintage instead gives g 2014-06 = 2.005 % (vs 2.098 %). The mean over 2014-01..2016-06 is 0.907 % with the old vintage and 0.903 % with the one used. Vintage choice moves individual months by about 0.1 pp but barely moves averages.45- **Using the assembled file directly:** naive use gives only 306 growth months, a mean of 2.570 %, and g 2026-09 = 3.353 % instead of 3.717 %. The one-month shift biases specific months badly.4647## Uncertainty48These are exact calculations on published index levels, not statistical estimates, so I report no sampling standard errors. The uncertainty that matters is data revision: as the sensitivity check shows, revisions between vintages move single-month growth rates by about 0.1 pp. Values before 2014 come from a 2016 vintage and may have been revised since. Monthly g_t values share 11 of their 12 months with their neighbours, so they are strongly autocorrelated. Anyone wanting a standard error for the sub-period means would need a HAC (heteroskedasticity- and autocorrelation-consistent) correction for this overlap. I did not compute one, because the task defines the means as descriptive quantities.4950## Limitations and open issues51- I did not check the SHA-256 values in the README against the files, because those hashes refer to the raw downloads, which were reformatted before being stored here.52- 2025-10 is missing at source, so the 2014–2026 sub-period mean averages 152 months, not 153.53- The 2014 growth rates mix vintages, as described above. A full 2026 vintage reaching back to 2013 would remove this.54- I count the result as "complete": every requested quantity is computable under the rules, and the one missing month is reported, not imputed.55
Files · main
Menu

Theme