做什么(One-liner)
Taylor (1993) 规则实现的央行政策利率模型:通胀 + 失业 + 立场 → 政策利率 + 三方向变动概率。美经济常数 hardcoded(他国需 Tier 2+ 本地化)。
怎么用
Canvas 拖 central_bank_v1,填 inflation_rate(%)+ unemployment_rate(%)+ policy_stance(dovish / neutral / hawkish)。输出 policy_rate + policy_change_probability 数组。
典型场景:
- 通胀 2%、失业 4%、中性 → policy_rate = 2.0(完美均衡)
- 通胀 5%、失业 4%、hawkish → policy_rate = 7.0(加息应对)
- 通胀 1%、失业 7%、dovish → policy_rate = 0.0(ZLB clamp)
核心公式
raw = 2.0 + 1.5·(π - 2) + 0.5·(4 - u) + stance_adj
policy_rate = max(0, raw) # ZLB
deviation = |policy_rate - 3.0|
p_up = 0.7 if (deviation > 0.25 AND π > 2) else 0.2
p_hold = 0.6
p_down = 0.5 if (deviation > 0.25 AND u > 4) else 0.2
→ normalize (sum=1) → round(3)Rounding 契约:policy_rate → 2 位;probabilities → 3 位。
假设与适用场景
假设:美经济常数(r*=2%、π*=2%、u*=4%)+ ZLB=0 + Taylor 1.5/0.5 系数 + stance 3 档离散。
适用:美宏观;短-中期 regime 信号。
不适用:他国、负利率、YCC、非线性规则、forecast-based IT framework。
输入 / 输出契约
{inflation_rate: float, unemployment_rate: float, policy_stance: 'dovish' | 'neutral' | 'hawkish'} → {policy_rate: float ≥ 0, policy_change_probability: [{direction, probability}] × 3}。
输入 out-of-range 或 stance 非法 → 抛 validation error(不 swallow)。
已知局限
- 5 个 hardcoded 美常数(不暴露)
- policy_rate round(2), probabilities round(3)
- Deviation 参考点 3.0 硬编码 —— 不同利率周期适应性差
- Stance 离散 3 档(缺中间档)
- 概率阈值跳变(0.25 deviation hard step)
- 不输出 forecast path
参考文献
Taylor (1993) 原始规则 + Taylor (1999) 实证稳定性 + Svensson (2003) 局限性批评。详见 frontmatter。
Golden Test
tests/golden/fixtures/tier2/central_bank/,跨语言 golden(Pangura TypeScript vs Python 独立重实现)。10 tests:
- 5 scenario byte-equal(neutral_on_target / hawkish_high_inflation / dovish_high_unemployment / zlb_check / hawkish_stagflation)
- probability sum ≈ 1 归一化约束
- ZLB clamp(raw negative → 0.0)
- determinism(5 reruns byte-identical)
- validation contract 2 tests(unknown stance / out-of-range → throws)
测试位置:tests/golden/node/central_bank_golden.test.ts(Node side 新路径,jest.config roots 已加)。
Changelog
- 1.0.0 (2026-04-20) — 首次 Active(Tier 2 golden #3)

