情景分析
Scenario Analysis 1.0
情景注册表位于 data/models/scenario_registry_v1.json,运行时由 src/domain/scenario/registry.ts 解析。国家 cohort、城市人口与家庭户假设都使用稳定 ID、版本、来源、Data Gap、参数、假设和禁止语义;一次选择可以组合一个 demographic scenario 与一个可选 system scenario。
三类输出必须分开
产品始终区分:
projection_baseline:官方来源提供的 Projection baseline。当前人口 cohort 唯一可用基准是wpp-2024-medium,来源为UN_WPP_2024_MEDIUM_SINGLE_AGE。simulation:在已有来源或 Actual anchor 上应用显式参数的产品 Simulation。cohort-sensitivity、local_softening、national_parity、local_strengthening属于此类。estimate:由方法和假设从输入派生的估算,例如 residual migration。它不是观测值,也不是 Scenario Registry 中的 demographic Projection。
不得根据单一 Medium 数据臆造 WPP high/low、高低生育或高低迁移官方情景;没有对应的官方来源和注册数据,就不能使用这些名称。
当前注册情景
Population cohort
wpp-2024-medium:WPP 2024 Medium single-age Projection baseline,参数为 1 / 1。cohort-sensitivity:在同一 WPP 路径上调整cohortEntryScale与effectiveTransitionScale的产品 Simulation。参数是敏感性假设,不是生育率、死亡率或迁移率。
City demographic
local_softening:相对全国路径每年 -0.003。national_parity:相对全国路径每年 0,作为城市 Simulation 家族的比较基准。local_strengthening:相对全国路径每年 +0.003。
城市情景使用 2024 Actual city anchor 与 WPP projection input;national_parity 仍是产品 Simulation,不是官方城市 Projection。家庭户路径使用 household-hold-2020-actual system assumption profile,保持 2020 Actual 的家庭户人口占比、平均户规模与家庭户数锚点。住房套数、价格、空置率与缺口仍是 Data Gap。
组合与比较规则
resolveScenarioSelection() 会校验 ID、层级、scope 和 baseline 关系;composeScenarioSelection() 生成稳定的组件 ID 顺序。demographic 槽只能放一个 demographic scenario,system 槽只能放 household_system 的 system profile;不兼容 scope 的 baseline 会被拒绝。system profile 本身不会凭空生成新的数值结果。
每个可比较结果都应同时展示:
- baseline value;
- scenario value;
- delta from baseline,必要时提供 delta percent;
- scenario registry version、scenario components、model version;
- input value types、Source IDs、assumptions 和 Data Gap。
人口 cohort 的 baseline 对 baseline 差异必须为零。城市比较统一以 national_parity 为基准。残差 migration Estimate 保持独立面板,不与情景对照图混合。
工作台与使用边界
/project/population-model 展示国家 cohort 的 Projection baseline、Simulation、baseline delta,以及独立的 residual Estimate。
/project/scenario-analysis 展示两类可审计场景族:
- 国家 cohort:WPP Medium baseline、cohort sensitivity、出生年份/时间窗口和基准差异。
- 城市人口:武汉/成都、national parity baseline、softening/strengthening、时间窗口、人口与已有派生指标的基准差异。
工作台不生成概率、“最可能”、置信区间、排名或推荐。城市 divergence 不称为已观测迁移,effectiveTransitionFactor 不称为 survival rate 或 migration rate。
仍然开放的 Data Gap
CN_COUNTY_AGE_MIGRATION 仍保持 open;不能批量生成县级年龄净迁移。城市 exact-scope 证据、区县边界、住房存量使用、教师存量与地方系统结果也不会因“能计算”而自动关闭。Projection、Simulation、Estimate、Actual 和 Data Gap 必须在页面、trace 和研究结论中保持可见区分。