网易首页 > 网易号 > 正文 申请入驻

监测预警基础46-这次学透 ARIMA之第7讲:模型诊断与效果评价

0
分享至


系列简介

这是我们一系列原创技术贴,从易到难,每天学习一点。所有内容均为疾控数据分析、科研论文相关,或者说很多和现在的热门监测预警相关,所以我们这个系列就叫“监测预警基础”。

今天是第46节,这算是我们一个小专题吧,大概11讲,我们细化,短篇化,彻底把ARIMA模型搞懂。

今天是学透ARIMA专题第7讲的内容,上一节R语言实操完之后如何诊断和评价这个模型?

上一篇我们跟着代码跑通了手足口病数据的第一个 ARIMA 模型,很多同行反馈:代码复制过去能跑出结果,但不知道这个模型合不合格、能不能直接用来做预测和预警。

这是新手最容易踩的坑:拟合完模型就直接用,完全跳过了诊断环节。ARIMA 不是参数填进去就一定靠谱,残差有没有提取干净、预测精度够不够,直接决定了你的预测结果能不能用于监测研判、论文写作。

这一篇我们就把 ARIMA 模型的诊断全流程讲透,全程对应疾控监测场景,看完就能判断自己的模型能不能用,出了问题也知道从哪排查。


我们建模的核心目的是用过去的规律预测未来,而模型诊断,本质就是验证两件事:

第一,模型有没有把数据里的有效规律全部提取干净;

第二,模型的预测精度,能不能满足我们的工作需要。

放在我们疾控工作里,这件事的重要性更突出:如果模型没把发病的季节性、延续性提取干净,残差里还藏着没被捕捉的规律,那用它算出来的 95% 预警阈值就会不准,要么频繁误报,要么漏报暴发风险;

如果只看模型对历史数据的拟合效果,不验证外推预测的准确性,很容易出现 “历史拟合完美,未来预测完全跑偏” 的过拟合问题,直接影响防控决策的可靠性。

一句话总结:没经过诊断的 ARIMA 模型,就像没经过验证的检测试剂,结果可信与否都不知道,根本没法用。


其实白噪声检验我们在上一节就说到过,在此我们再系统讲一讲:

残差诊断是 ARIMA 模型合格的第一道门槛,也是教材里明确要求的必做步骤。我们先把两个基础概念用大白话讲透。

第一,先搞懂:残差和白噪声是什么

残差就是真实病例数 - 模型拟合值,也就是模型没捕捉到的那部分波动。白噪声就是完全随机、没有任何规律的波动,比如零星的偶发病例、偶然的报告偏差,没有可提取的预测价值。

残差白噪声检验的核心逻辑非常简单:如果残差是白噪声,说明序列里所有有用的流行规律都已经被模型提取完了,模型是合格的;如果残差不是白噪声,说明残差里还藏着没被捕捉的规律,模型拟合不充分,需要调整优化。

第二,怎么诊断?3 张图看懂模型是否合格
R 语言里用tsdiag(模型名)一行代码就能生成 3 张诊断图,我们逐张讲怎么看,完全不用记公式。
第一张图:标准化残差时序图


这个图第一是看残差是不是围绕 0 随机波动,没有明显的上升 / 下降趋势,也没有固定的周期性高峰低谷;第二是看波动幅度是不是整体稳定,没有某一段时间突然暴涨暴跌。如果都满足,说明残差的均值和方差基本稳定,符合平稳白噪声的基础特征。

第二张图:残差的 ACF 自相关图


这是最核心的一张图,判断标准非常明确:除了滞后 0 阶(自己和自己的相关)之外,有滞后阶数的柱子都落在两条虚线(95% 置信区间)以内,没有显著的自相关性。如果有很多柱子超出虚线,说明残差里还有可提取的自相关规律,模型拟合不充分。

第三张图:Ljung-Box 检验的 P 值图


这是白噪声检验的统计验证,判断标准:图里所有的点(不同滞后阶数对应的 P 值)全部都在 0.05 的虚线以上,也就是所有 P 值都 > 0.05。P 值 > 0.05,就接受 “残差相互独立、是白噪声” 的原假设,模型通过检验。
第三,精准验证:单独做白噪声检验
想看具体的 P 值,用Box.test()函数单独做 Ljung-Box 检验,代码和解读如下:

Box.test(residuals(final_model), type = "Ljung-Box", lag = 10)


结果解读:

P 值 > 0.05:通过白噪声检验,残差无自相关,模型信息提取充分;

P 值 ≤ 0.05:未通过检验,残差存在自相关,需要调整模型。


通过白噪声检验,只能说明模型拟合是合格的,但不代表预测精度够高。要判断模型能不能用,必须量化评价预测效果。

第一,先分清:拟合效果 ≠ 预测效果

新手最容易犯的错误,就是只看模型对历史数据的拟合效果。我们必须把数据拆成两部分分别评价:

训练集:用来建模的历史数据,对应的是「拟合效果」,反映模型对历史规律的还原能力;

测试集:留出来不用来建模的最新数据,对应的是「预测效果」,反映模型对未知数据的外推能力,才是评价模型好不好的核心标准。

就像我们做考题,训练集是课后练习题,拟合效果好只是练习题做得好;测试集是期末考试,预测效果好才是真的学会了。

第二,两个核心评价指标,疾控人这么看
forecast包里的accuracy()函数可以一键输出所有评价指标,我们只需要重点关注两个最常用的,当然本文后面我们也会对着运行结果再具体说一说。
首先是RMSE(均方根误差):预测值和真实值的平均偏差,单位和原始数据一致(比如病例数的 RMSE 单位就是 “例”)。数值越小说明预测的平均偏差越小;适合同一组数据的不同模型之间对比,数值越小的模型越好。
其次是MAPE(平均绝对百分比误差):预测误差的百分比,是疾控场景最常用的评价指标,因为它不受数据量级影响,不同疾病、不同地区的模型都可以横向对比。数值越小表示预测精度越高;
疾控场景通用参考标准:MAPE < 10%:预测效果优秀,可直接用于预警、趋势研判 10% ≤ MAPE < 20%:预测效果良好,可用于参考

MAPE ≥ 20%:预测误差偏大,需要优化模型


问题 1:残差未通过白噪声检验(有自相关)
这大概率是模型阶数不够,规律没提取干净,按这个顺序排查:
首先调整 p、q 阶数:适当增加 AR 或 MA 的阶数,比如原来用 ARIMA (1,1,0),可以试试 ARIMA (2,1,0)、ARIMA (1,1,1),再重新检验;其次重新检查平稳性:确认差分阶数 d 是否足够,序列有没有完全平稳;第三考虑季节性因素:如果是流感、手足口这类有明确年度周期的传染病,基础 ARIMA 没法捕捉季节性规律,残差大概率通不过检验,需要换成下一篇要讲的 SARIMA 季节性模型。
问题 2:训练集拟合很好,但测试集预测误差很大
这就是典型的过拟合,模型把历史数据的随机波动也当成规律学进去了,外推就失效了,常见原因和解决方法:
首先是模型阶数太高:p 和 q 不要设太大,疾控数据绝大多数场景 p、q 都在 0-3 之间,阶数越高越容易过拟合;其次可能是测试集有特殊突发因素:比如测试集时间段刚好有新冠疫情、大规模防控政策、暴发疫情等异常事件,这些是历史数据里没有的,模型预测不到,属于正常情况,可以结合业务解读补充说明。


首先是我们在上一节的基础上增加第8步和第9步:

       inset = 0.02)

我们主要看看上面评价的运行结果怎么看


训练集拟合效果:用「模型对历史数据的拟合值」和「训练集真实病例数」计算误差,衡量模型对历史规律的还原能力;

测试集预测效果:用「模型对未来的预测值」和「测试集真实病例数」计算误差,衡量模型对未知数据的外推预测能力,是判断模型好不好的核心标准。

每个指标详细讲解

第一,ME:Mean Error 平均误差:所有(预测值 - 真实值)的算术平均值,反映预测整体的偏差方向。

  • 数值为正:模型整体高估了病例数;

  • 数值为负:模型整体低估了病例数;

  • 越接近 0,整体系统性偏差越小。

结合运行结果:训练集 ME≈0.6,几乎为 0,说明对历史数据的拟合没有整体偏高 / 偏低的系统性偏差;测试集 ME≈480,为正值,说明模型对未来 20 周的预测整体高估了约 480 例。

第二,RMSE:Root Mean Squared Error 均方根误差:误差平方的平均值再开根号,反映预测值和真实值的平均偏差幅度,单位和原始数据一致(这里是「例」)。数值越小,预测偏差越小;对极端大误差惩罚很重(某一期预测差很多,RMSE 会明显升高)。对于我们来说,同一份数据的不同模型之间横向对比,RMSE 更小的模型精度更高。

结合运行结果:训练集 RMSE≈98 例,历史拟合的平均偏差不到 100 例;测试集 RMSE≈730 例,外推预测的平均偏差明显变大,符合「预测越远误差越大」的规律。

第三,MAE:Mean Absolute Error 平均绝对误差:所有误差绝对值的平均值,同样反映平均偏差幅度,单位也是「例」。数值越小越好;和 RMSE 相比更稳健,不受个别极端大误差的影响,更能反映常规情况的误差水平。
结合运行结果:训练集 MAE≈64 例,测试集 MAE≈505 例。
第四,MPE:Mean Percentage Error 平均百分比误差:每一期的(预测值 - 真实值)/ 真实值 的平均值,用百分比体现偏差的方向和相对幅度。

  • 正值:整体高估;负值:整体低估;

  • 正负误差会互相抵消,只能看系统性偏差的相对比例,不能反映整体误差大小。

结合运行结果:训练集 MPE≈-47%,看起来整体低估,和 ME 接近 0 的结果不一致,核心原因是手足口病低谷期病例数只有几十例,很小的绝对误差就会被放大成很大的百分比误差,拉低了整体 MPE,属于低发病数据的正常现象。

第五,MAPE:Mean Absolute Percentage Error 平均绝对百分比误差:每一期 | 预测值 - 真实值 |/ 真实值 的平均值,是疾控场景最常用的预测精度指标,不受数据量级影响,不同疾病、不同地区的模型都可以横向对比。解读规则:数值越小,预测精度越高,疾控通用参考标准:

  • MAPE < 10%:预测效果优秀,可直接用于预警阈值计算;

  • 10% ≤ MAPE < 20%:预测效果良好,可用于趋势参考;

  • MAPE ≥ 20%:预测偏差偏大,需要优化模型。

结合运行结果:训练集 MAPE≈63%,测试集≈50.7%,误差都偏大,核心原因是你现在用的是无季节性的基础 ARIMA,没有捕捉手足口病的年度流行周期,高峰低谷预测错位,这也恰恰是后续 SARIMA 季节性模型要解决的问题。

第六,ACF1:First-order Autocorrelation of Errors 误差一阶自相关系数:预测误差的一阶滞后自相关系数,衡量相邻两期的误差之间有没有关联性。解读规则:绝对值越接近 0 越好。

  • 接近 0:说明残差没有明显自相关性,模型已经把序列的有效规律提取干净了;

  • 绝对值偏大(比如 > 0.5):说明误差有连续偏高 / 连续偏低的规律,模型拟合不充分,还有没提取的信息。

结合运行结果:训练集 ACF1≈-0.01,几乎为 0,符合白噪声特征,历史数据的规律提取充分;测试集 ACF1≈0.88,非常高,说明预测误差是连续系统性的(连续好几期都偏高 / 都偏低),本质是模型没捕捉到季节性规律,外推时出现了趋势错位。

第七,Theil's U 泰尔 U 系数:相对效率指标,用来对比你的模型和「朴素预测模型(直接用上一期的数值预测下一期)」的效果好坏。

  • U = 1:你的模型效果和 “用上期值预测本期” 的朴素方法完全一样,没有提升;

  • U < 1:模型比朴素预测效果好,数值越小提升越明显;

  • U > 1:模型预测效果还不如直接用上一周的病例数预估本周,模型有效性差。

结合运行结果:训练集和测试集的 U 值都大于 2,说明基础 ARIMA 模型的预测效果不如最简单的朴素预测,进一步验证了:没有加入季节性的基础 ARIMA,完全不适合手足口病这类强季节性传染病数据,必须用 SARIMA 季节性模型才能得到可靠的预测结果。

跑通基础 ARIMA、做完诊断,你会发现:对手足口、流感这类有强年度季节性的传染病,基础 ARIMA 的预测效果总是差一点,因为它没法捕捉固定的年度周期规律。

下一篇我们就讲疾控场景最常用的进阶模型 ——SARIMA 季节性 ARIMA 模型,专门适配传染病的周期性流行特征,也是绝大多数传染病预测论文里的标配模型。我们会讲清 7 个参数的含义,以及一键自动拟合的代码,跟着操作就能跑出更精准的季节性预测模型。

参考:

《时间序列分析-基于R》. [M] .王燕.中国人民大学出版社出版

传染病预测预警技术及实践案例分析. [M]. 杨鹏, 王小莉. 人民卫生出版社



编辑:普通疾控人 | 审核:诗酒趁年华

文章来源 | 原创

说明 | 转载只为分享,如有侵权联系删除

©版权声明 | 部分信息和图片来自公开网络

转载请注明

再次转载请注明出处


科普健康 | 宣传疾控

本号为多位疾控机构从业者运营

重点关注国内外健康事件

致力于疾控科普

在做好科普服务大众的同时

做好疾控机构的宣传

让更多的人了解疾控,拥抱健康

欢迎加「小编」微信(cdcjkr126com)

本文具体说明

本文为原创内容,文章为个人理解所学,不涉及疫情信息及内部保密数据,发表的目的为自我总结及给有需求的人士学习使用。如有不妥之处,欢迎联系小编修改、删除。

更多精彩视频,尽在“CDC疾控人”视频号


特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
香积寺之战:“史盲的鉴别神器”,别再被网上骗了

香积寺之战:“史盲的鉴别神器”,别再被网上骗了

小豫讲故事
2026-10-06 06:00:14
点“经”之笔丨读懂一座小城总能站在前列的密码

点“经”之笔丨读懂一座小城总能站在前列的密码

北青网-北京青年报
2026-10-07 12:54:04
2026年诺贝尔化学奖揭晓,2名科学家获奖

2026年诺贝尔化学奖揭晓,2名科学家获奖

上观新闻
2026-10-07 17:57:20
四川曾有老虎,为什么没吃大熊猫?护林员说:80%的人不知道,老虎就算“饿疯了”,也不会将大熊猫当作美餐

四川曾有老虎,为什么没吃大熊猫?护林员说:80%的人不知道,老虎就算“饿疯了”,也不会将大熊猫当作美餐

回京历史梦
2026-10-04 02:50:05
iPhone 17降价,这波是真的香吗?

iPhone 17降价,这波是真的香吗?

小柱解说游戏
2026-10-07 00:14:25
殡葬师提醒:亲人刚咽气的10分钟内,必须做对的4件事

殡葬师提醒:亲人刚咽气的10分钟内,必须做对的4件事

宝哥精彩赛事
2026-10-01 21:27:18
这下好了!消息传来,胡塞兵败如山倒,不听中国劝的后果出现了

这下好了!消息传来,胡塞兵败如山倒,不听中国劝的后果出现了

观锐器
2026-10-06 15:43:47
芜湖方特回应“近身热舞、低龄放行”:深表歉意,全面整改

芜湖方特回应“近身热舞、低龄放行”:深表歉意,全面整改

澎湃新闻
2026-10-05 15:22:27
10款大五座SUV将在四季度排队上市!网友:太疯狂了

10款大五座SUV将在四季度排队上市!网友:太疯狂了

汽车网评
2026-10-07 19:20:51
医生提醒:查出颈动脉斑块多年未脑梗的人,基本日常坚持4个习惯

医生提醒:查出颈动脉斑块多年未脑梗的人,基本日常坚持4个习惯

刘哥谈体育
2026-10-07 13:07:13
练了5年引体向上,今天才发现,9成的人大拇指都放错了位置

练了5年引体向上,今天才发现,9成的人大拇指都放错了位置

荷兰豆爱健康
2026-10-07 16:25:58
原来他是邓紫棋老公,小她2岁是香港富三代,与关之琳关系不一般

原来他是邓紫棋老公,小她2岁是香港富三代,与关之琳关系不一般

娱说瑜悦
2026-10-06 18:58:48
WTT大满贯赛:大爆冷!世界第4被淘汰,1:3无缘八强,张本松岛3:1

WTT大满贯赛:大爆冷!世界第4被淘汰,1:3无缘八强,张本松岛3:1

国乒二三事
2026-10-07 06:41:29
足协管不了国足主帅!徐亮这话比0比1更扎心:国足到底谁在管?

足协管不了国足主帅!徐亮这话比0比1更扎心:国足到底谁在管?

透视到底
2026-10-07 20:05:15
我国在编警察有多少人?

我国在编警察有多少人?

网观天下
2026-10-07 12:44:45
全世界都还没反应过来,中国果断出手,全球猝不及防目瞪口呆

全世界都还没反应过来,中国果断出手,全球猝不及防目瞪口呆

凡知
2026-09-04 12:50:30
全程堵死!10月6日返程大崩溃,高速寸步难行,网友:堵到绝望

全程堵死!10月6日返程大崩溃,高速寸步难行,网友:堵到绝望

小虎新车推荐员
2026-10-07 15:33:22
吓一跳!电和天然气烧水,差距居然能擦出一个月菜钱!

吓一跳!电和天然气烧水,差距居然能擦出一个月菜钱!

阿离家居
2026-09-24 02:00:05
2-0领先遭拖入抢五!决胜局8-10落后逆转 张本智和霸气模仿艾弗森

2-0领先遭拖入抢五!决胜局8-10落后逆转 张本智和霸气模仿艾弗森

颜小白的篮球梦
2026-10-07 14:45:21
10月5日惊魂一幕!福建漳州天成山隧道事故,大量车主乘客紧急弃车逃生,“龟速行驶”成舆论焦点

10月5日惊魂一幕!福建漳州天成山隧道事故,大量车主乘客紧急弃车逃生,“龟速行驶”成舆论焦点

火山詩话
2026-10-06 14:53:45
2026-10-07 20:44:49
CDC疾控人 incentive-icons
CDC疾控人
关注疾控,科普健康
250文章数 8关注度
往期回顾 全部

科技要闻

诺贝尔化学奖揭晓,两位科学家摘得大奖

头条要闻

缅北木姐地图上密密麻麻全是电诈窝点 中方跨境"拔钉"

头条要闻

缅北木姐地图上密密麻麻全是电诈窝点 中方跨境"拔钉"

体育要闻

从骑马舞到开口全中文 德约在北京不止七冠

娱乐要闻

蔡康永风波再升级!这次谁也救不了他

财经要闻

谷歌签下科技史上最大核能协议

汽车要闻

智能化再提升 2027款东风标致、东风雪铁龙新车更人性化了

态度原创

时尚
游戏
数码
旅游
房产

刘雯的松弛感卫衣穿搭,太值得借鉴了

海外PS5 Pro售价飙升逼近万元!多方确认 太抢手了

数码要闻

准系统6689元:铭凡MS-03迷你主机酷睿Ultra 9 386H版本开售

旅游要闻

[视频]入境游持续升温 外国游客深度体验多彩中国

房产要闻

保利大爆发,冲到榜一!海南楼市前三季度,热销榜出炉!

无障碍浏览 进入关怀版