Published deltas carry an alpha_PP change: Baseline 0.2748 vs policy 0.2762

Abierto
#20 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python, r
Área
backend, data

Línea de trabajo

Start with scratchpad/r5/alpha/decomp.py and inspect the cached CSV evidence and validation/reference_outputs.json; the proposed matched-baseline fix also requires an R run with the upstream dependency set. Compare a Baseline rerun at alpha_PPLR = 0.2762 against policy files through 2026Q4, then assess the pinned deltas, multiplier, and peak. Done means choosing and implementing a resolution with updated published values or documented bounds; the issue says no decision has been made.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Every published scenario-minus-baseline delta in this repo also carries a change in production's own-input coefficient α_PP. The Baseline files use α_PPLR = 0.2748 and the policy files use Table 5's 0.2762. This issue sizes the bias for each published number and asks which fix to adopt. No published number has been changed.

Evidence (cached run 846081a, CSV reads only, clean room)

  1. It is a parameter, not a print artefact. Parameters-sorted_*.csv prints the input parameters of each run. Across all 30 files, alpha_PPLR is the only parameter outside the published policy switches that differs: 0.2748 in all 7 Baseline files, 0.2762 in all 23 policy files. The gap of 0.0014 is 28 times the half-unit of 4-significant-figure printing (0.00005), so rounding cannot explain it. Eq. (139) carries it through: the alpha_PP column of Variables_*.csv is 0.2798 (data) in 2022Q4, then 0.2748 or 0.2762 in every simulated quarter. The mark-up calibrated on the last data row already differs: MU in 2022Q4 is 0.176 in the Baseline and 0.1704 in the policy runs.
  2. No policy switch acts before 2027Q1. All 16 distinct policy files (the 23 collapse to 16 because some are duplicates) are identical in every column through 2026Q4, and they first differ from one another in 2027Q1. Every 2023Q1–2026Q4 policy-minus-baseline delta is therefore the α_PP effect alone. Each scenario carries the same values:
Delta, policy − Baseline (any scenario) 2023Q1 2024Q1 2026 (mean per quarter)
Real GDP (GDP_R) +3.1 (+0.55%) +0.4 −1.125 (−0.16%), flat through 2026
Nominal GDP −0.6 +0.4 +0.25 (+0.03%)
Unemployment rate (UPLOT, pp) −0.138 −0.015 +0.037
Emissions (EMIS, Mt per quarter) +0.53 +0.30 −0.02 (−0.02%)
SPEND_GVT −0.3 0.0 +0.15
  1. Consequences we already publish:
    • The pinned point "green public investment, GDP_R, 2026: −1.125" (validation/reference_outputs.json) contains no policy effect. The tests/test_scenarios.py docstring read it as "green public investment depresses GDP in the first years". This PR withdraws that reading.
    • run_scenario starts its horizon at the first year any variable departs from baseline, so it serves 2023–2037 as the policy window. The policies start in 2027.
    • The common first-quarter move behind Multiplier_Summary.csv's identical M_Impact (−32.22 in all rows) is this α_PP effect. It is not GVT_ENERGY, which is 1 in the Baseline too. This correction affects #16's point 2.

Size of the bias in each published number

After 2026Q4 the α_PP effect cannot be observed, because it is mixed in with the policy. The range below comes from three extrapolations:

  • Z: the effect stops at 2027Q1. This gives the smallest correction.
  • L: the 2026Q4 level persists.
  • P: the 2026Q4 share of baseline persists.

L and P are the more plausible cases. The 2025–26 effect is flat, and the closure has permanent level effects (Kaldor–Verdoorn, Eq. (31)). The range ignores interaction between α_PP and the policy.

Published number (where) Published α_PP part (Z – P) Policy effect (range)
GPI cumulative multiplier, cum ΔGDP/ΔSPEND_GVT (README / VALIDATION / macro site) 1.78 (209.9/118.2) ΔGDP 4.8–20.5, ΔSPEND 1.2–8.9 1.73–1.75
#16 option B, ΔGDP/ΔSPEND_GVTPS 2.30 ΔGDP 4.8–20.5, ΔSPEND_GVTPS 0 2.08–2.25
#16 option C, ΔGDP/(ΔSPEND_GVTPS+ΔGCF_GVTG) 1.94 as above 1.75–1.90
GPI cumulative real ΔGDP_R 250.6 −1.6 to −74.3 252–325
GPI real-GDP peak, % (FMM anchor, site) +0.92% (2034) 0 to −0.16 pp +0.92% to +1.08%
GPI GDP_R 2026 −1.125 −1.125 (all of it) 0
GPI GDP_R 2030 / 2035 +4.075 / +7.75 0 to −1.2 / 0 to −1.34 +4.1 to +5.3 / +7.75 to +9.1
Housing regulation GDP_R 2035 −2.3 0 to −1.34 −0.96 to −2.3 (up to 58% is α_PP)
Fossil-fuel ban GDP_R 2030 −3.85 0 to −1.2 −2.65 to −3.85
Mixed UPLOT 2030 +0.141 0 to +0.037 +0.104 to +0.141
GPI UPLOT 2035 −0.2195 0 to +0.038 −0.22 to −0.26
All EMIS points (GPI −13.54, housing −5.375, FFB −10.65, mixed −23.10 in 2035) — 0 to −0.03 unchanged to <0.25%

In short:

  • Emissions results are unaffected.
  • The 1.78 multiplier moves by only about 0.03–0.05. Its α_PP numerator and denominator shift together.
  • The real-GDP results, especially the small ones, are materially biased. Cumulative real ΔGDP_R, the housing-regulation and fossil-fuel-ban GDP costs, and every 2023–26 delta carry the α_PP effect. Under L or P, every real-GDP delta is understated by about 1.1–1.3 a quarter.

Script: scratchpad/r5/alpha/decomp.py (reads the cached CSVs). Gates: tests/test_alpha_pp_confound.py in #21.

Options

A. Recompute against a matched baseline. Rerun the upstream Baseline locally with alpha_PPLR = 0.2762 (Table 5's value, already used by every policy file). The matched Baseline has a free acceptance test: through 2026Q4 it must equal every policy file bit for bit. Then re-pin the 11 delta points, the multiplier and the peak, listing old → new. This needs R and the upstream dependency set, and it is the only option that removes the bias rather than bounding it.
B. Disclose, and stop serving 2023–26. Start run_scenario's horizon at 2027 (the first year the policy files diverge from one another), not 2023. Drop the 2026 pinned point. Add an "α_PP mismatch: real-GDP deltas carry up to −0.16% of baseline" caveat to every served delta, with the range table above.
C. Ask the authors which value the published Baseline should use. It could be an intentional recalibration or a stale Baseline. Hold the numbers until they answer.

Recommendation: B now (no numbers change, only the window and the caveats), then A as soon as an R run is possible. Raise C with the authors in parallel, alongside the Table 4 emissions divergence.

What the macro site would need to say

  • /define/validation/ tile "Green investment multiplier 1.78": add "includes a Baseline/policy α_PP mismatch; policy-only 1.73–1.75 by our bounds".
  • /define/validation/ FMM anchor "peak +0.92%": add "α_PP-corrected +0.92–1.08%".
  • /define/ "Hence deltas only": add one sentence: "Deltas also carry a coefficient change: the upstream Baseline runs α_PP = 0.2748 against 0.2762 in every policy run, so 2023–26 deltas are not policy effects and real-GDP deltas are biased by up to −0.16% of baseline."
  • /define/methodology/ step 4 (1.78): link the same caveat.
  • Any served scenario chart or table that starts in 2023 should start in 2027, or shade 2023–26 as "not policy".
  • papers/define-uk/sections/validation.tex: the same caveat next to 1.78.

No macro-site change has been made. That waits for a decision here.

Found in round 3 (#19, tests/test_oracle.py ORACLE_FORMS["alpha_PP"]) and sized in round 5.

Lenguaje dominante
Python
Estrellas
0
Forks
0
Merge medio
4 d 14 h
PR fusionados (30 d)
5

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de PolicyEngine/define-uk-model

Todos los issues de PolicyEngine/define-uk-model

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.