Model Confidence Set(MCS):比较预测模型,而不强行选出赢家
了解 Model Confidence Set 如何通过序贯检验和处理依赖数据的 bootstrap,保留现有证据无法区分的预测模型。
本指南内容Model Confidence Set 回答什么问题?
简短摘要
Model Confidence Set(MCS)比较一组预先定义的预测程序,并返回在所选损失函数下尚未被证明较差的候选模型。如果样本无法区分它们,可能会保留多个模型;结果取决于候选集合、预测设计、损失函数和推断程序。
Model Confidence Set 回答什么问题?
假设有多种程序预测下一交易日的波动率。它们的误差并不相同,但样本可能过短或噪声过大,无法判断哪种程序的期望损失最低。选择平均损失最小的程序会强行选出赢家,即使差异可能只是抽样波动。MCS 给出集合式答案:在指定的绩效标准下,哪些候选仍与“最佳”这一判断在统计上相容?
MCS 从候选集合 \(\mathcal M_0\)、一种损失或其他标准以及置信水平开始。它反复检验仍在考虑的候选是否具有相同的预测能力。如果检验拒绝,剔除规则会移除相对较差的候选,然后在缩小后的集合上继续检验。剩余候选构成 MCS。Hansen、Lunde 和 Nason 将该程序提出为指定候选集合中最佳模型的置信集,类似于数据不够精确时参数置信区间可以包含多个值(2011年论文)。
“最佳”只在本次比较范围内成立:相对于纳入的候选、目标、预测期、每个预测时点可用的信息以及评分标准。MCS 不要求任何候选就是真实的数据生成过程,也可以保留多个期望表现同样最佳的候选。它不是“保留的模型正确”的后验概率。
预先固定候选集合和预测问题
计算损失前,先定义 \(\mathcal M_0\)。候选可以是一个估计模型及其估计与预测更新规则,也可以是未用统计模型描述的预测程序。例如,如果波动率分布、滚动窗口、参数更新和预测期都可能变化,那么只说“GARCH”并没有完整定义候选;每种设定都可能构成不同候选。
每个候选都应使用当时可获得的信息,在相同预测起点和期限上预测同一目标。如果一个模型预测一天方差,另一个预测五天波动率,原始损失就不能公平地直接比较。使用共同评估样本,明确对齐缺失观测,并记录数据版本、初始估计窗口、递归或滚动计划以及修订输入的处理方式。时间上重叠的预测可能使相邻预测起点的损失共享观测值。
在查看结果前选择评价标准。平方误差、绝对误差或针对决策的损失可能对点预测给出不同排序。方差预测可能需要适合含噪 proxy 的波动率损失;分位数预测则需要 quantile score,而不是均方误差。一种损失下的良好 MCS 不代表另一种损失下也良好。如果在查看同一评估结果后缩小了候选列表,正式集合就以未报告的筛选为条件,不再代表完整搜索。
将共同预测转为配对损失差
令 \(y_{t+h}\) 表示预测起点 \(t\) 对应的实现目标,\(\hat y_{i,t+h|t}\) 表示候选 \(i\) 的预测。对于预先选定的损失函数 \(L\),在每个共同起点计算各候选的损失:
\[ L_{i,t}=L(y_{t+h},\hat y_{i,t+h|t}) \]
假设损失越低越好。对候选 \(i\) 和 \(j\),定义配对差:
\[ d_{ij,t}=L_{i,t}-L_{j,t}, \qquad \bar d_{ij}=\frac{1}{P}\sum_{t=1}^{P}d_{ij,t} \]
其中 \(P\) 是共同预测起点数量。按此符号约定,\(\bar d_{ij}\) 为正表示样本中候选 \(i\) 的平均损失高于 \(j\);为负则有利于 \(i\)。配对很重要,因为两个候选面对的是相同的实现结果。共同市场冲击可能同时提高两者损失,而差值能够隔离相对表现。
当前集合 \(\mathcal M\) 的预测能力相等零假设可写作:
\[ H_{0,\mathcal M}:\quad \mu_{ij}=E[d_{ij,t}]=0 \quad \text{对所有 } i,j\in\mathcal M \]
这是关于当前集合的联合陈述,而不是一组互不相关、逐一查看的配对检验。原始 MCS 框架使用联合等价检验和剔除规则来处理模型搜索。它并不要求预测在每个日期都完全相同。
检验当前集合并定义剔除规则
MCS 程序交替执行集合层面的检验和剔除步骤。从 \(\mathcal M=\mathcal M_0\) 开始,在选定的 \(\alpha\) 水平检验预测能力是否相等。如果不拒绝零假设,就停止并报告当前集合;如果拒绝,则按预先指定的规则移除一个候选,并在较小集合上重复检验。在程序假设成立时,剩余集合就是 \((1-\alpha)\) MCS。
论文介绍了两个常见统计量。Range 统计量寻找最大的标准化配对损失差:
\[ T_{R,\mathcal M}=\max_{i,j\in\mathcal M}|t_{ij}|, \qquad t_{ij}=\frac{\bar d_{ij}}{\widehat{\mathrm{se}}(\bar d_{ij})} \]
对应的剔除规则会移除相对于其他候选标准化劣势最大的模型。另一个统计量将每个候选与当前集合的平均表现比较:
\[ T_{\max,\mathcal M}=\max_{i\in\mathcal M}t_{i\cdot}, \qquad d_{i\cdot,t}=\frac{1}{|\mathcal M|}\sum_{j\in\mathcal M}d_{ij,t} \]
这里,\(t_{i\cdot}\) 对 \(d_{i\cdot,t}\) 的均值进行标准化;对应规则会移除相对集合平均标准化超额损失最大的候选。统计量和剔除规则是一对,应作为同一程序预先选定并报告,不要在看到哪种能产生更小集合后再混用。MCS 论文解释了拒绝检验为何必须与识别剔除对象的规则相一致(Hansen、Lunde 和 Nason)。
在 bootstrap 中保留时间依赖
最大统计量的分布取决于候选损失差的联合变动。若把每个模型或日期都当作独立观测,可能破坏两种依赖:相邻损失可能存在序列相关,同一天不同候选的损失则是配对的。因此,MCS bootstrap 需要保留相关的联合时间序列结构,以近似集合层面统计量的零分布。
一种方法是对候选损失或差值向量中对齐的时间区块进行重抽样。Stationary bootstrap 的区块长度是随机的,重抽样序列可以从随机选定的日期重新开始。Politis 和 Romano 为弱依赖平稳观测提出了这种方法(1994年论文)。MCS 作者介绍了 block bootstrap 的实现,并在附录中把 stationary bootstrap 列为替代方案。分别重抽样每个模型的损失序列会破坏同日配对关系,进而改变比较结果。
平均区块长度、bootstrap 变体、在能力相等零假设下的中心化方式、重复次数和预测期限都会影响不确定性估计。较长且重叠的预测期通常会延长损失差的依赖,但不存在适用于所有目标和样本的通用区块长度。请说明设计,并检查合理改变依赖设置后结论是否变化。Bootstrap 输出是在其假设下的近似,不能修复前视偏差、重复使用的 holdout、非平稳评分行为或不完整的候选集合。
计算一个四模型的假设比较
假设 A、B、C、D 四种程序在 120 个共同日度起点上预测同一个波动率目标。以平方百分点为示例单位,它们的平均平方误差损失分别为 1.20、1.23、1.45、1.90。平均值把 A 排在第一、D 排在最后,但单纯排序并未说明抽样不确定性。
A 相对 B 的平均配对损失差为 \(1.20-1.23=-0.03\)。如果考虑依赖后的标准误为 \(0.04\),对应配对统计量是 \(-0.03/0.04=-0.75\)。这个单一差值没有显示 A 与 B 存在明确的统计差异。MCS 不止于此:集合统计量会考虑四个候选之间的联合差异。
举例来说,假设对完整的 120 起点损失序列进行 block-bootstrap MCS,使用 \(T_R\)、\(\alpha=0.05\) 和一致的最差候选剔除规则。假设完整集合的 p-value 为 0.018,剔除 D 后,\(\{A,B,C\}\) 的 p-value 为 0.11。由于 0.11 大于 0.05,程序停止并将 \(\{A,B,C\}\) 作为假设的 95% MCS。尽管 C 的平均损失高于 A,它仍然保留:这个假设的联合检验尚未证明 C 较差。
这些 p-value 是为了演示步骤而编造的,不能从四个平均损失或 A–B 差值还原。真实结果需要每个预测起点的完整损失序列、候选预测、bootstrap 设计和剔除顺序。保存这些输入并报告完整步骤,让读者看到每次拒绝时移除了哪个候选。 <!-- learn:illustration -->

谨慎解释保留集合
在 95% 置信水平下,满足正则条件和检验假设时,MCS 的设计目标是以至少所述的渐近覆盖率包含指定集合中的最佳候选。这并不意味着每个保留模型有 95% 的概率是最佳模型。置信陈述涉及重复抽样下程序的覆盖率,而不是模型标签的后验分布。
未能拒绝预测能力相等,并不能证明候选的期望损失完全相同。如果评估期较短、损失差波动较大或多个候选非常接近,检验的功效可能有限。较大的保留集合可能诚实地反映数据无法区分不同方案。集合中的模型也可能绝对表现都很差,因为 MCS 是互相比较候选,而非与必须达到的外部标准比较。
集合范围受限于纳入 \(\mathcal M_0\) 的候选。如果遗漏了真正更好的预测程序,MCS 不可能发现它。如果在查看相同评估期后提前剔除模型,名义覆盖率不会计入这次未记录的搜索。应说明候选生成和筛选过程。当多个候选共享最佳期望损失时,保留多个符合该方法的设计,并非无法选择。
区分 MCS、配对检验和基准检验
Diebold–Mariano 检验关注两个预测程序之间的配对损失差。MCS 会反复检验一个集合,并报告通过联合剔除程序的候选。运行许多 DM 检验后保留不显著的配对,并不自动等同于 MCS;联合 bootstrap 和一致的剔除规则都很重要。
Clark–West 检验用于范围更窄的平方误差比较:一个预测模型嵌套受限基准模型,且估计噪声影响原始差值。MCS 不要求候选模型嵌套,也可使用用户指定的损失函数,但仍需要共同的预测设计。
White 的 Reality Check 和 Hansen 的 Superior Predictive Ability 检验,询问搜索过的候选家族中是否至少有一个成员胜过指定基准。MCS 不依赖基准,而是描述相对占优候选的集合。这些程序都要求准确记录搜索和依赖结构,但检验的零假设不同。参见 Reality Check 与 SPA 指南及 White (2000)、Hansen (2005) 的原始论文。
报告设计,并将预测排名与交易价值分开
可复现的 MCS 报告应列出每个候选程序、共同目标与期限、预测起点和信息规则、估计计划、评估日期、缺失数据处理、损失公式以及优劣方向。还应给出显著性水平、检验统计量和剔除规则、bootstrap 类型、区块长度、中心化方法、重复次数、每一步的 p-value 和最终成员。平均损失可以提供背景,但不能用排名表代替联合推断。
评估波动率时,说明观测 proxy 的构造方式以及它是否含噪或经过修订。多步预测要披露目标窗口重叠和依赖处理方法。如果损失函数、样本期或 bootstrap 设置的合理变化会影响成员构成,也应展示敏感性。若不报告被剔除候选和程序细节,单个很小的 p-value 不足以复现结果。
MCS 根据一个标准为预测程序排序。它不证明因果结构、不识别数据生成模型,也不证明保留的预测能带来盈利交易。将预测转为持仓还涉及阈值、仓位、换手、执行时点、价差、费用、滑点、融资、借贷和风险限制。应在适当的后续数据上单独评估固定的决策规则,并另行报告净交易结果。对于不完美 proxy 下的波动率评分,参见 QLIKE 与平方误差损失指南。
常见问题
Q1MCS 会选出唯一的最佳模型吗?
不一定。数据能够区分某个候选时,可能只剩一个;如果样本不能证明哪个较差,也可能保留多个。要从中选一个投入使用,需要另设决策规则。
Q2MCS 中的模型有 95% 概率正确吗?
没有。置信水平描述在方法假设下,指定候选家族中的最佳候选在重复抽样中的覆盖率;它不是模型为真的后验概率。
Q3MCS 能用于波动率预测以外的比较吗?
可以。只要定义有意义的共同标准和合适的抽样设计,就能比较预测、计量模型或其他候选。结果仍取决于所选候选集合和损失函数。
Q4MCS 会自动考虑我试过的所有模型吗?
只有在实际搜索被反映到候选家族和评估程序中时才会。未记录的筛选或反复使用评估数据,不会因为事后运行 MCS 而得到修正。
资料来源与延伸阅读
报告问题
我们会准备一封包含本文链接的邮件。发送后,Mark 才会收到你的反馈
快速检查
读完指南后,用 3 道题检查一下
问题 01
Model Confidence Set 报告什么?
选择答案即可查看解释
期权术语表
清楚解释从看涨、看跌和期权链到 IV、希腊字母、未平仓量与最大痛点等核心期权术语
浏览期权术语表