Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

预测评估

北京大学光华管理学院

预测评估不是在模型训练结束后补做的一张表,而是预测系统的设计原则。只有先说明如何评价,我们才知道应该优化什么、比较什么,以及一个预测结果是否足以支持决策。

预测评估最容易出错的地方,是在设计模型时已经知道了未来。如果模型或研究者看到了测试期真实值,再回头调整特征、参数或提示词,评价结果就被污染了。时间序列预测尤其如此,因为时间顺序本身就是信息边界:站在今天预测明天,不能使用明天之后才会知道的事实。

本章从现代预测观点出发,强调从点预测转向概率预测,并说明两类评价方式:一类是在历史数据中构造“过去的未来”来回测模型;另一类是真正提前提交预测,等未来发生后再评价。前者更高效,后者更可信,但也更耗时。

学习目标

完成本章后,你应该能够:

预测值是随机变量

在预测发生时,目标变量 yty_t 尚未被观察到。下个月销售额、明日用电负荷、未来一周客流量,都可能有一系列取值。我们掌握的信息记为 II,真正要描述的是 ytIy_t \mid I:给定当前所有已知信息条件(information condition)时,未来值可能落在哪里。

这组可能取值及其概率构成预测分布(forecast distribution)。点预测只是从预测分布中取出一个代表值,通常是均值或中位数。概率预测则保留更多信息,例如区间、分位数(quantile)或完整分布。

换句话说,未来值在被观察之前是相对于当前信息集的随机变量(random variable);一旦发生并被记录,它才变成固定事实。信息集变化时,预测分布也会变化。今天只知道历史销量,明天又知道促销政策、天气预报或竞争对手价格,ytIy_t \mid I 的分布就应该更新。预测不是脱离信息条件地报一个数字,而是说明“在我们目前知道这些信息时,未来可能怎样”。

这个观点很重要。业务决策并不只关心“最可能是多少”,还关心“最坏可能有多坏”“超过某个阈值的概率多大”“需要准备多少安全库存”。如果只输出一个数字,很多风险信息会被压扁。

因此,预测评价不是只评价模型是否猜中一个数,而是评价它是否能支持行动。库存、产能、航班、免签政策、医疗资源和金融风险,都需要把未来的不确定性转化成当前可以执行的选择。

点预测

点预测给出一个确定值,记作 y^t\hat{y}_t。它直观、易沟通,也便于用误差指标比较模型。短期、稳定、风险较低的场景中,点预测往往足够。例如一个成熟产品明天的常规销量,或者稳定门店下周的补货需求,都可以先用点预测作为基准。

点预测的局限同样明显。它不告诉我们预测可能错多少,也不告诉我们不同错误方向的概率。如果库存系统只知道“明天预计卖 1200 件”,却不知道 1000 到 1500 件的概率范围,就很难设定安全库存。

我们把点预测比作一顶“帽子”:y^t\hat{y}_t 是帽子上露出来的一个数字,帽子下面其实藏着完整的不确定性分布。只看帽子上的数字,沟通很方便,却容易忘记未来可能落在中心值两侧,也可能出现小概率但高损失的尾部情形。

点预测适合建立共同语言,也适合做第一轮模型筛选。但如果决策本身依赖风险范围,点预测只能作为入口,不能作为完整答案。

概率预测

概率预测输出未来值的可能范围和概率。它回答的不是“明天一定卖多少”,而是“明天销量落在不同区间的概率分别是多少”。对于库存、能源、金融、医疗资源配置等场景,这种信息比单个点更接近决策需求。评价这类分布预测时,严格适当评分规则提供了重要原则:模型应因诚实表达自己的预测分布而得到激励 Gneiting & Raftery, 2007

概率预测可以有不同表达层次。最完整的是给出整条预测分布,说明 yt+1y_{t+1} 可能取哪些值以及概率如何分布;更简洁的做法是给出若干分位数或预测区间,例如 95% 区间只需要中位数、2.5% 分位点和 97.5% 分位点。还有一些场景只关心分布的一部分,例如左尾损失、超过库存阈值的概率或低于收入目标的概率。

Chronos 练习给了一个很实用的分位数例子。如果设置 quantile_levels = [0.1, 0.9],模型输出的是 10% 分位数和 90% 分位数,中间覆盖的是 80% 预测区间,而不是 90% 区间。要得到更宽的区间,应选择更低和更高的分位数;要得到更窄的区间,则选择更接近中位数的分位数。报告预测区间时,必须明确分位数水平和覆盖率,不能只画阴影区域。

在库存管理中,概率预测可以支持服务水平、期望缺货和持有成本计算。在电力系统中,概率负荷预测可以帮助配置备用容量并降低调度风险。在宏观和政策场景中,概率分布能呈现不确定性,避免把一个目标值误读成确定承诺。

从点预测转向概率预测,既是技术问题,也是组织认知问题。很多管理者习惯听一个确定答案,但高质量预测往往应该明确表达不确定性。

食品成本、库存和服务水平等例子说明,点预测给出一个代表值,概率预测给出可能范围。当错误方向的成本不同,或者极端情形会造成较大损失时,预测分布比单个数字更有用。

例如,校医院准备退烧药时,点预测可能告诉我们下周平均需求是 6000 盒;概率预测进一步告诉我们,为了达到 95% 的服务水平,可能需要准备 7500 盒。前者回答“中心位置”,后者才直接连接到备货决策。家庭买退烧药、学校食堂备菜、ATM 放现金和仓库补库存都是同一类问题:只看一个平均值容易低估极端需求,按预测区间和服务水平决策才更接近真实成本。

能源预测进一步说明概率预测为什么重要。风电和太阳能的输出受天气影响很大,平均发电量不足以保证电网稳定。一个风电企业如果承诺未来几天供电,却遇到无风天气,就可能不得不用高价火电补足缺口;高耗电制造企业如果遭遇突然断电,生产损失可能极高。此时企业关心的不是“平均能发多少电”,而是不同时间段电力缺口的概率、缺口规模和备用容量安排。

概率预测为什么难以落地

概率预测的困难不只在技术,也在组织认知。很多管理者更习惯听确定指令:“明天到底卖多少件?”如果销售员说“明天有 70% 的概率卖 1000 到 1500 件”,听起来像是不敢承担责任;另一个人拍胸脯说“保证卖 2000 件”,反而可能更容易被相信。

这种偏好会让组织把计划、目标和预测混在一起。计划可以写“增长 5% 左右”,目标可以要求“尽力达到 2000 件”,但预测应该说明不确定性:中心值是多少,区间有多宽,低于关键阈值的概率多大。一个成熟的管理者在听到点预测时,应继续追问:方差是多少?下行风险在哪里?如果预测错了,成本由谁承担?

预测步长与可评价性

预测步长不是技术细节,而是评价设计的一部分。短期预测通常拥有更多可用信息,长期预测则更容易遇到机制变化。预测一个学生明天或下周的学习状态,和在一年级时预测十二年后的高考结果,是完全不同的信息问题。前者可以使用近期成绩、作业和课堂表现;后者几乎没有足够稳定信号。

远期预测还会触发反馈效应。青少年近视率如果从 1983-2023 年的历史趋势直接外推到 2050 年,可能得到过度悲观甚至荒谬的结果;但正因为这种风险被看见,学校、家庭和政策也会改变户外活动、照明、作业和用眼习惯。预测本身可能影响未来行为,所以评价长期预测时不能只看历史曲线是否拟合得漂亮。

因此,一个评估报告应按步长拆开误差。T+1T+1 准确不代表 T+12T+12 准确,短期补货模型也不一定适合年度预算。真正严肃的比较要说明模型在哪些步长上有效,在哪些步长上只是延长了过去趋势。

点预测误差

点预测评估的基本对象是误差:

et=yty^te_t = y_t - \hat{y}_t

其中 yty_t 是真实值,y^t\hat{y}_t 是预测值。误差指标的作用,是把一组误差汇总成可以比较、解释和优化的数字。

常用指标包括:

没有一个指标适合所有问题。库存、能源和金融场景中,大误差、方向性偏差和相对误差的重要性不同,指标选择必须回到业务损失。

本章只保留这些指标的功能性解释。下一章会在 notebook 层面计算 ME、MAE、RMSE、MAPE、sMAPE 等点预测指标,并展示如何把误差表转化为模型比较。

真实未来无法提前评价

预测评估的根本困难在于:真正关心的未来还没有发生。如果今天要预测下一季度销售额,我们暂时没有 yty_t,也就不能直接计算误差。

机器学习中的随机训练集和测试集划分,在时间序列中通常不适用。时间顺序承载了因果和信息结构。如果把未来样本打乱放进训练集,再评价过去的样本,模型就使用了本不该知道的信息。

因此,时间序列评估依赖“过去的未来”。我们在历史数据中选择某个切分点,用切分点以前的数据训练模型,再预测切分点之后的一段历史。那段历史对模型来说是未来,但对评估者来说真实值已经可见。

这也是评估不能直接针对“今天刚做出的未来预测”的原因。真正的未来在预测发生时还没有真实值,所以只能在历史中构造一个当时不可见、现在已知的未来。

数据泄露是评价失真的核心风险。如果一个预测任务声称站在 2023 年春天预测未来两年旅游恢复,却在建模时使用了 2024 年或 2025 年已经发生的数据,那么误差再低也不能说明模型真的有预测能力。它只是把已经知道的未来重新包装成了模型结果。

最严格的评价方式是真正的实时评价:现在提交预测,等未来发生后再比较。旅游恢复预测竞赛就是这种设计。多个团队在同一时间提交中国到主要目的地国家的出境游恢复预测,之后等真实客流数据可得再统一评价。这类设计耗时,但信息边界最干净,也能检验模型、专家假设和外部信号整合是否真的经得起未来检验。恢复预测需要综合航班、住宿、海外活动、签证、交通流量和地缘政治等信号,而不是只把疫情前趋势向后外推。

时间序列交叉验证

时间序列交叉验证(time series cross-validation)常见两种窗口设计。

滚动窗口保持训练窗口长度相对固定,每次向前移动。它适合数据生成机制可能变化、旧数据参考价值有限的场景。

扩展窗口(expanding window)从较早时间开始训练,每一折增加更多历史数据。它适合历史信息持续有用、样本越多越稳定的场景。

每一折都应明确三件事:

如果业务真正关心未来 60 天,就不要只评价 T+1T+1。多步预测误差通常随步长增加而累积,应分步长汇总,也可以报告整体平均表现。

旅游预测竞赛的例子说明,公平比较需要共同的数据、共同的预测步长和共同的误差指标。多个国家、多个时间段或多个模型放在一起比较时,必须保证每个模型看到的信息边界一致,否则误差排名没有意义。

可以把时间序列交叉验证理解为三层时间:

名称含义评价中的角色
历史的历史切分点之前的数据训练模型允许看到的信息
历史的未来切分点之后、现在已经发生的数据测试模型预测能力
真正的未来当前时点之后尚未发生的数据最终业务目标

回测的逻辑是假设历史中的规律会延续到真正未来。这个假设在很多稳定业务中有效,但不能自动成立。

衬衫销量例子可以帮助理解这个过程。假设我们手里有过去五六十天每天卖出的衬衫数量,今天想预测未来六天。评估时可以先把历史末端的六天暂时“遮住”,只用更早的蓝色历史训练模型,再预测这六天已经发生但对模型隐藏的浅色区间。接着把切分点向前或向后滚动,重复多次。这样得到的不是一次漂亮曲线,而是一组不同预测起点下的误差证据。

当历史评估会失效

历史回测的弱点在于,它默认未来与过去仍然相关。当结构突变发生时,这个假设会变得脆弱。

新冠后的出境游恢复就是典型例子。疫情前,中国到加拿大、日本、美国等目的地的客流有趋势和季节性;在疫情冲击后,序列断崖式下跌,历史规律被打断。一个模型如果只在疫情前数据上回测,可能表现很好,但这并不保证它能预测疫情后的恢复路径。

这种场景下,评价要多问几个问题:

复苏预测的难点不只是误差计算,而是评价对象本身变了。我们不再只是外推一条平稳的历史曲线,而是在判断系统什么时候恢复、恢复到什么水平、以什么路径恢复。此时,评价必须同时检查基准预测、当前信号、专家假设和最终真实结果。

复苏预测的 RISE 拆解

中国出境旅游复苏预测可以作为结构突变场景的完整案例。2023 年春天,如果要预测未来一到两年中国到 20 个主要目的地国家的出境游客量,疫情前的季节性和趋势仍然有参考价值,但疫情期间的断崖式下跌已经切断了普通历史外推。直接用疫情前模型往后延长,或者只把 2023 年初几个月的恢复斜率线性外推,都可能误导决策。

我们把一种实用思路概括为 RISE。它不是一个单一黑箱模型,而是一套复苏预测拆解方式:

这个案例还用到了分层预测、预测调和和组合预测。中国到美国、加拿大、日本、韩国等目的地既可以逐国预测,也可以先预测区域或总体,再向下分配。预测调和保证各层级之间一致,组合预测则把不同基准模型、恢复曲线、外部信号和恢复系数合成一个更稳健的结果。RISE 方法把这种复苏预测拆解为初始预测、终端预测和恢复曲线预测三部分,用来处理疫情后旅游需求的结构突变 Li & Ruan, 2026

评价方式也要改变。真正严格的做法是在 2023 年提交预测,等到 2025 年 3 月左右真实数据积累后再统一比较点预测和区间预测。这个设计耗时,但它守住了信息边界:参赛者提交预测时不知道未来两年会发生什么,因此评价更接近真实预测能力。

评价结果如何用于决策

评价结果至少要回答四个问题。

第一,模型是否优于简单基准。例如季节性朴素预测、上一期预测或移动平均。不能超过简单基准的复杂模型,很难获得业务信任。

第二,模型在哪些预测步长上表现好。一个模型可能 T+1T+1 很好,但 T+12T+12 很差。

第三,模型误差是否有系统性方向。长期高估会造成库存积压,长期低估会造成缺货或产能不足。

第四,模型最坏情况是否可接受。平均误差低不代表极端错误少,尤其在能源、金融和公共服务场景中。

还要问第五个问题:错误是否发生在真正重要的地方。旅游恢复预测中,如果一个小目的地误差较大,但总体客流和主要目的地预测准确,政策影响可能有限;如果加拿大、美国、日本、韩国等主要目的地严重偏误,航线、签证、营销和外交政策都会受到影响。

评价结果最终要转化成决策语言。模型 A 的 MAE 比模型 B 低 5%,是否足以支付更高 API 成本?某模型短期准确但长期偏差大,是否适合库存补货而不适合年度预算?这些问题比单纯排名更接近业务。

公平比较

无论是课程实验、企业模型选型,还是预测竞赛,公平比较都需要共同规则。预测准确性比较本身也有统计检验传统,例如 Diebold-Mariano 思路提醒我们,模型差异不能只靠一次误差表的视觉印象判断 Diebold & Mariano, 1995。至少应保持:

大模型预测尤其需要明确这些规则。一个模型如果可以联网搜索,而另一个模型不能;一个团队可以在测试集公布后改 prompt,而另一个团队不能,那么比较结果就不再反映预测能力。评价设计必须先定义信息边界,再计算误差。

小结

预测评估的核心不是找一个最好看的指标,而是把预测问题放回时间和决策之中。点预测适合清晰沟通,概率预测适合风险决策;历史回测提供必要证据,但不能完全替代实时评价和未来监控。

一个可信的预测评价至少要守住三条底线:不泄露未来信息;比较规则公平一致;评价指标服务于真实决策。一个可用的预测系统,应当同时报告误差大小、偏差方向、步长表现、不确定性和适用边界。

练习

  1. 为一个零售补货问题选择两个误差指标,并说明为什么。

  2. 设计一个 10 折时间序列交叉验证方案,明确训练窗口、测试窗口和预测步长。

  3. 找一个 MAPE 不适用的业务场景,并提出替代指标。

  4. 解释为什么随机划分训练集和测试集会破坏时间序列评估。

  5. 将同一模型的 T+1T+1T+3T+3T+7T+7 误差分开报告,并讨论差异。

  6. 找一个存在数据泄露的预测评价设计,说明未来信息是如何进入模型的。

  7. 设计一个旅游恢复预测竞赛,明确提交时间、数据边界、预测步长和评价指标。

  8. 解释为什么新冠后旅游恢复不能只依赖疫情前回测结果判断模型好坏。

  9. 为两个 AI 预测模型设计公平比较规则,说明是否允许联网、外部数据和人工修正。

  10. 选择蛇毒血清、放射性碘治疗或另一种低频高损失医疗物资,设计一个评价方案,至少包含服务水平、缺货损失和过期浪费三个指标。

参考文献

References
  1. Gneiting, T., & Raftery, A. E. (2007). Strictly Proper Scoring Rules, Prediction, and Estimation. Journal of the American Statistical Association, 102(477), 359–378. 10.1198/016214506000001437
  2. Li, F., & Ruan, T. (2026). Recovery-Informed Forecasting Strategy Enhancement. Annals of Tourism Research, 118, 104164. 10.1016/j.annals.2026.104164
  3. Diebold, F. X., & Mariano, R. S. (1995). Comparing Predictive Accuracy. Journal of Business & Economic Statistics, 13(3), 253–263. 10.1198/073500102753410444