16元序验证与确认体系VVUQ

元序 WorldScript 验证与确认体系(VVUQ)

元序模型可信度的系统性保障框架。回答一个核心问题:我怎么知道模拟的结果是对的?
本文档将 VVUQ(Verification, Validation, Uncertainty Quantification)写进元序语言规范,而非留在路线图待办。
前置阅读:《04元序规则》《05运行时架构》《09对比手册》。


一、为什么 VVUQ 是元序的生命线

元序瞄准的应用场景——政策推演、灾害预警、经济预测、交通调度——全是高风险决策场景。一个没有校准、没有敏感性分析、没有 out-of-sample 检验的推演系统,输出的数字再漂亮也是不可信的。

更危险的是元序的「容错存续」哲学:系统永不崩溃,偏差被静默吸收。如果模型从某个 Tick 起就跑歪了,系统会继续「收敛」到错误的稳态,而你没有任何信号。

因此,VVUQ 不是元序的附加功能,而是与五种核心句式同等重要的语言级能力


二、VVUQ 四层框架

元序采用 ASME VVUQ 标准框架["https://www.asme.org/getmedia/c9d712f3-cc5b-4326-b6e4-bd53c50ed9a6/asme-vvuq-standards-portfolio-brochure-3-2026_final.pdf","https://matforge.org/verification-vs-validation-in-scientific-simulations-a-practical-guide/"],结合 ABM 领域的经验校准方法论["https://arxiv.org/html/2410.19412v1","https://www.jasss.org/27/1/11.html"],定义四层验证:

┌─────────────────────────────────────────────────────┐
│  L4 不确定性量化 (UQ)                                │
│  "结果有多可信?" → 置信区间、敏感性、ensemble        │
├─────────────────────────────────────────────────────┤
│  L3 模型确认 (Validation)                            │
│  "我们建对了模型吗?" → 与真实数据对比、out-of-sample  │
├─────────────────────────────────────────────────────┤
│  L2 参数校准 (Calibration)                           │
│  "参数对吗?" → 数据拟合、后验推断、pattern-oriented  │
├─────────────────────────────────────────────────────┤
│  L1 实现验证 (Verification)                          │
│  "代码写对了吗?" → 单元测试、收敛性、回归基准         │
└─────────────────────────────────────────────────────┘

2.1 L1 实现验证(Verification)

回答:我们是否正确地实现了规范?

验证项 方法 通过标准
词法/语法正确性 单元测试覆盖所有句式 100% 语法构造有测试
状态场连续性 验证单Tick变化≤Δmax 任意初始状态下成立
因果强度计算 与手工计算对比 误差<1e-9
平滑过渡函数 验证收敛到目标值 足够Tick后误差<ε
调度器确定性 相同输入→相同输出 逐位一致
回归基准 固定种子运行标准程序 输出与基准快照一致
Tick收敛性 不同Δmax下结果趋同 Δmax→0时结果收敛

语言级支持:元序解释器内置 --verify 模式,自动运行上述检查并输出验证报告。

2.2 L2 参数校准(Calibration)

回答:模型参数是否与真实系统吻合?

元序的参数包括:因果规则权重、涌现阈值、状态初始值、演化步长、偏差收敛灵敏度等。

校准方法

方法1:模拟矩匹配(Method of Simulated Moments)

  • 选择真实系统的关键统计量(均值、方差、自相关、极值分布)
  • 参数空间搜索,使模拟统计量与真实统计量距离最小
  • 适用于数据充足的场景

方法2:近似贝叶斯计算(ABC)

方法3:Pattern-Oriented Modeling(POM)

  • 要求模型同时复现多个真实模式(而非单一统计量)
  • 例如交通模型需同时复现:流量时变曲线、拥堵空间分布、早晚高峰比例、路段速度分布
  • 多模式同时匹配可显著降低过拟合风险["https://arxiv.org/html/2410.19412v1"]

语言级支持

// 校准声明:指定参数、先验、目标统计量
Calibrate 交通模型:
    参数 路段.通行能力 ~ Uniform(0.4, 0.9)
    参数 信号.周期长度 ~ Normal(0.6, 0.1)
    目标 宏观.平均流量 == 真实数据.平均流量 (容差=0.05)
    目标 宏观.拥堵时长分布 == 真实数据.拥堵分布 (容差=0.1)
    方法 ABC (样本数=2000, 接受率=0.05)
    输出 参数后验分布到 校准结果.json

2.3 L3 模型确认(Validation)

回答:模型是否足够好地代表了真实系统?

确认分两个层次:

描述性确认(In-sample):模型输出能否复现用于校准的数据特征?

  • 这是最低标准,仅通过 in-sample 不能证明模型有预测能力

预测性确认(Out-of-sample):模型能否预测未用于校准的数据?

确认指标

指标 定义 适用场景
NMSE 归一化均方误差 连续状态轨迹
模式匹配率 模拟模式与真实模式的重合度 空间/时空模式
预测区间覆盖率 真实值落入预测区间的比例 不确定性预测
因果链一致性 模拟的因果关系与领域知识是否一致 机制验证
极端事件复现率 极端事件的频率/强度匹配度 灾害/风险场景

语言级支持

// 确认声明
Validate 交通模型:
    数据集 校准集 = 2024年1月-6月卡口数据
    数据集 验证集 = 2024年7月-9月卡口数据
    指标 NMSE(宏观.平均流量) < 0.1
    指标 预测区间覆盖率(宏观.拥堵时长) ∈ [0.85, 0.95]
    指标 模式匹配率(拥堵空间分布) > 0.7
    未通过则 标记模型为"未确认",禁止用于决策推演

2.4 L4 不确定性量化(UQ)

回答:推演结果的可信度有多高?

元序的不确定性来源:

来源 说明 量化方式
参数不确定性 校准后的参数后验分布 ensemble运行(采样参数后验)
初始条件不确定性 初始状态的测量误差 初始状态分布采样
模型结构不确定性 规则选择/省略的不确定性 多模型对比、模型平均
数值不确定性 Tick步长、平滑过渡的离散误差 Δmax收敛性分析
外部输入不确定性 天气、事件等外生变量 外生输入场景集

语言级支持:State 置信区间

// State 字段支持声明不确定性
State 环境 [
    温度:摄氏度 = 0.3 ± 0.05,        // 均值±标准差
    目标温度:摄氏度 = 0.7 (确定)      // 确定性参数
]

// 推演结果自动携带不确定性标注
// 输出: 环境.温度 = 0.68 [0.62, 0.74] (95% CI)

Ensemble 运行

// Ensemble 声明:自动运行N次,每次采样不确定性源
Ensemble 交通推演:
    次数 = 500
    采样 参数后验(校准结果.json)
    采样 初始状态分布
    输出 均值轨迹 + 5%/95%分位轨迹 + 极端事件概率

敏感性分析

// 全局敏感性分析:哪些参数对结果影响最大
Sensitivity 交通模型:
    目标 宏观.平均流量
    参数 [路段.通行能力, 信号.周期长度, 天气.降雨强度]
    方法 Sobol (一阶+总效应)
    输出 tornado图 + 参数重要性排序

三、推演结果的可信度标注规范

元序强制要求所有推演输出携带可信度标注,禁止输出裸数字。

3.1 输出格式

推演结果:城市交通晚高峰
─────────────────────────────────────
宏观.平均车速 = 28.5 km/h [25.1, 31.8] (95% CI)
宏观.拥堵时长 = 4.2 h [3.5, 5.1] (95% CI)
极端拥堵概率 = 12% [8%, 18%]
─────────────────────────────────────
模型确认状态:已确认 (out-of-sample NMSE=0.08)
校准数据:2024年1-6月卡口数据
验证数据:2024年7-9月卡口数据
Ensemble次数:500
不确定性来源:参数(60%) + 初始条件(25%) + 外生输入(15%)

3.2 可信度等级

等级 条件 可用于
A 级 已out-of-sample确认 + ensemble + 敏感性分析 高风险决策(政策、灾害)
B 级 已in-sample校准 + ensemble 中风险决策(调度、规划)
C 级 仅in-sample校准,无ensemble 低风险探索、概念验证
D 级 未校准,纯理论推演 仅限教学/演示,禁止决策

未达到对应等级的推演结果,元序运行时自动在输出中标注警告。


四、与外部工具的协同

元序不重复造轮子,VVUQ 的重计算部分与成熟工具协同:

参数校准    → Stan / PyMC (贝叶斯后验推断)
敏感性分析  → SALib / Python (Sobol、Morris)
数据接入    → Python Pandas (真实数据清洗)
可视化      → Python Matplotlib / ECharts (结果呈现)
模型运行    → 元序 WorldScript (因果推演)

元序的角色是推演引擎+可信度标注层,校准和推断交给专业统计工具。


五、实现路线图

阶段 VVUQ 能力 对应里程碑
M1 L1实现验证(单元测试+确定性验证) ✅ 已完成(6项核心测试)
M2 State置信区间语法 + ensemble运行 进行中
M3 参数校准声明(ABC+矩匹配)+ 敏感性分析 规划中
M4 out-of-sample确认框架 + 可信度等级标注 规划中
M5 与Stan/PyMC集成 + 自动校准流水线 规划中

六、城市交通验证案例(目标)

作为元序的第一个完整 VVUQ 验证案例,城市交通模型需完成:

  1. L1:解释器全部测试通过,调度器确定性验证
  2. L2:用卡口数据校准路段通行能力、信号周期等参数(ABC方法,后验分布)
  3. L3:用未参与校准的数据做 out-of-sample 检验,NMSE<0.1
  4. L4:500次ensemble运行,输出置信区间,Sobol敏感性分析识别关键参数

产出:《18城市交通验证案例》,包含校准报告、确认报告、不确定性分析、与Python手写版本的对比。


七、元序 VVUQ 的差异化机会

对比 Modelica(工业级验证但无社会系统)、GAMA(有校准但无原生不确定性)、Vensim(有敏感性但无贝叶斯后验),元序的差异化在于:

  1. 不确定性是一等公民:State 原生支持置信区间,推演结果强制带标注
  2. 偏差流与确认联动:模型偏差不仅是技术指标,更是元序运行时的一等对象
  3. 中文声明式校准语法:领域专家可直接读写校准/确认声明,无需写Python脚本
  4. 可信度等级强制:未确认的模型自动降级,防止「漂亮数字」误导决策

这是元序相对同类工具的真正差异化——不是把容错当卖点,而是把可信度当基础设施。


文档版本: WorldScript VVUQ Framework v1.0
创建日期: 2026-09-03
关联文档: 《04元序规则》《05运行时架构》《09对比手册》《08实现路线图》
参考标准: ASME VVUQ Standards, ABM Empirical Validation Methodology

posted @ 2026-09-03 16:31  新哲  阅读(13)  评论(0)    收藏  举报