系列简介
这是我们一系列原创技术贴,从易到难,每天学习一点。所有内容均为疾控数据分析、科研论文相关,或者说很多和现在的热门监测预警相关,所以我们这个系列就叫“监测预警基础”。
今天是第41节,从今天开始连续大概11讲的内容,我们细化,短篇化,彻底把ARIMA模型搞懂。
今天是学透ARIMA内容11讲的第2讲的内容,学习平稳性与差分——ARIMA 的入门门槛。
上一篇我们讲了疾控人学 ARIMA 的 3 个核心场景,很多同行反馈终于知道这个模型能用到自己的哪些工作里了。
但真正上手建模,第一道门槛往往不是复杂的代码,而是绕不开的「平稳性」和「差分」:
好好的原始发病数据,为什么不能直接建模?非要把数据弄 “平稳”,到底是图什么?差分来差分去,到底在做什么操作?
这一篇我们就彻底搞定这个 ARIMA 入门的第一道坎,全程用传染病监测数据举例,看完就能懂。
其实在这个系列第一讲,我们讲的就是时间序列数据,中间经过这么多内容,我们终于又讲到这,→
ARIMA 是专门给时间序列数据建模的工具,而我们疾控日常工作里,绝大多数监测数据都是标准的时间序列,比如每日报告的传染病报告发病数。
它和我们平时做横断面研究的普通数据最核心的区别是:时间顺序不能乱,前后期的数值存在天然关联—— 本周的流感病例数,一定和上周的病例数有关系,这也是我们能用过去预测未来的基础。
我们都只知道ARIMA的中文全称叫:差分整合自回归移动平均模型,其中这个“自”,不是自动的意思,是自己的意思!
很多教材会直接给定义:“平稳序列的均值和方差均为常数,没有明显趋势和周期性”,这句话看着简单,新手就是摸不着头脑。
换成大白话讲,平稳就是数据的波动规律长期稳定,不会随时间发生本质变化,满足两个核心特征:
均值恒定:数据长期围绕一个固定的水平线上下波动,不会持续上涨、也不会持续下跌,没有明显的上升 / 下降趋势;
方差恒定:数据波动的幅度基本稳定,不会一段时间只在小范围波动,一段时间突然暴涨暴跌。
我们用最常见的两类传染病数据,一眼就能区分:
平稳序列例子:散发期的手足口病周病例数。长期在 30-50 例之间小幅波动,没有持续上升的趋势,也没有固定的大起大落,规律稳定。
非平稳序列例子:年度流感 ILI 监测数据。每年冬天会出现明显的流行高峰、夏天处于低谷(有强季节性),同时整体发病水平可能逐年上升或下降(有长期趋势),波动规律一直在变。
但是拓展一下,平稳也有严平稳和宽平稳这样两个概念区分。
简单说,两者都是用来形容「时间序列的统计规律会不会随着时间推移而变化」,区别只是要求的严格程度天差地别。我们 ARIMA 建模里说的 “平稳”,100% 指的是宽平稳,严平稳是纯理论概念,日常工作基本碰不到。
第一,严平稳(严格平稳):要求 100% 分毫不差的稳定。这是最极致的平稳,要求所有统计特性全不随时间变化—— 不管是均值、方差,还是分布形状、极端值出现的概率,甚至更高阶的统计规律,只要把时间整体平移(比如把 2022 年的数据整体挪到 2023 年),所有统计性质完全一模一样。
现实里几乎不存在这种完美数据,所以它只是统计学理论研究用,实际建模基本不用。
第二,宽平稳(弱平稳):只要求核心特性稳定。放宽了要求,只约束 3 个最核心的统计特性,其他细节不做要求:首先是均值恒定,整个序列的平均水平不变,不会一直涨或者一直跌(比如病例数不会持续上升,整体围绕一个固定水平波动)。其次是方差恒定,波动幅度稳定,不会一段时间暴涨暴跌、一段时间又风平浪静。最后是自相关性只和间隔有关,两个时间点的相关性,只跟它们之间隔了多久(滞后阶数)有关,跟具体在哪一年哪一周没关系。比如间隔 2 周的病例相关性,2022 年的第 1-3 周,和 2024 年的第 10-12 周,相关性是一样的。
记住,ARIMA 建模全程只需要关心宽平稳,我们后面要学的 ADF 检验、差分平稳、模型前提假设,全都是针对「宽平稳」;严平稳是纯理论概念,不用花精力纠结,疾控日常工作完全用不到。
这是 90% 的初学者都会卡住的问题:我直接用原始数据建模不行吗?非要差分来差分去,把数据改得面目全非?
核心逻辑非常简单:ARIMA 本质是用「过去的稳定规律」预测「未来」,只有规律不变,预测才靠谱。
举个最直观的例子:流感流行季从 10 月到 12 月,病例数一直呈直线上升趋势,这是典型的非平稳序列。如果你只用 10-11 月的上升规律去建模,去预测 1 月的发病情况,结果一定会严重偏高 —— 因为 1 月流感已经进入下降期,规律已经变了,相当于刻舟求剑。
而平稳化的过程,就是把数据里 “变化的部分”(长期趋势、季节性周期)先剥离掉,剩下稳定波动的核心部分,我们对这部分找规律建模,最后预测的时候再把趋势和周期还原回去。这样既保证了建模用的规律是稳定的,又不会丢失原始数据的信息,最终的预测结果依然对应真实的发病数(软件会自动完成还原,不需要我们手动计算)。
这是我们今天要讲的核心内容,也是要学透ARIMA必须要掌握的一个概念。
差分是 ARIMA 里最常用的平稳化方法,操作非常简单:用两期数据的差值,代替原始数据,从而把趋势、周期这些不稳定的因素 “消掉”。
疾控场景里我们常用三类差分,分别对应不同的数据特征:
1. 一阶差分(d=1):消除线性趋势
一阶差分就是本期数值减去上一期数值,对应 ARIMA 里的参数 d=1,它最擅长消除「匀速上升 / 下降的线性趋势」。
举个例子:假设某传染病流行前期,病例数每周固定增加 200 例,也就是完美的线性上升趋势:第 1 周 100 例,第 2 周 300 例,第 3 周 500 例,第 4 周 700 例……做一阶差分后,所有差值都是 200,变成了一个恒定的常数,自然就平稳了。
在实际工作中,只要数据有持续的直线上升 / 下降趋势,优先做一阶差分,绝大多数情况下都能解决趋势问题。
2. 二阶差分(d=2):消除曲线趋势
二阶差分就是对一阶差分后的结果,再做一次差分,对应 ARIMA 里的参数 d=2。它用来处理「增长 / 下降速度越来越快」的曲线(抛物线)趋势。
比如传染病暴发初期,病例数指数级增长,一阶差分后差值还是在上升,这时候再做一次二阶差分,基本就能平稳。
这里给大家一个疾控建模的实用经验:绝大多数传染病监测数据,1 阶差分就足够平稳,最多用到 2 阶。差分次数不是越多越好,过度差分会丢失数据本身的有效信息,反而会降低模型预测精度。
3. 季节差分(k 步差分):消除周期性波动
这是疾控场景里最常用的差分类型。我们遇到的流感、手足口、诺如等传染病,几乎都有固定的年度流行周期,这种周期性靠普通的一阶、二阶差分消不掉,就要用季节差分:本期数值 - 上一个周期的同期数值。
比如月度数据,周期是 12 个月,就做 12 步季节差分:今年 12 月病例 - 去年 12 月病例;比如周度数据,周期是 52 周,就做 52 步季节差分:本周病例 - 去年同一周的病例。补充小提示:后面我们要讲的季节性 SARIMA 模型里,参数 D 就是季节差分的阶数,绝大多数场景下 D=1 就足够。
做完季节差分后,数据的年度季节性高峰低谷就会被消掉,剩下的就是剔除了周期的波动部分,再配合普通差分处理趋势,就能得到平稳序列。
1. 肉眼判断法:先画时序图
拿到数据的第一步,永远是先画原始数据的时序图。
有没有上升 / 下降趋势、有没有固定的季节性周期,肉眼基本就能判断个大概。这一步也能帮我们核对数据是否符合业务认知,比如流感数据是不是冬季高峰,避免数据导入错误。
新手最容易犯的错误,就是上来直接做统计检验,跳过看图的步骤,最后模型出了问题都不知道根源在哪。
2. ADF 单位根检验:客观金标准
肉眼判断有主观性,最终确认平稳性,我们需用ADF 单位根检验
你不需要搞懂 “单位根” 是什么统计学概念,也不用记检验公式,只需要记住结果解读规则:
若检验的P值 ≤ 0.05:拒绝 “序列不平稳” 的原假设,认为序列平稳,不需要再差分;若检验的P值 > 0.05:不能拒绝原假设,认为序列不平稳,需要继续做差分,差分后再重新检验。
后续实操篇里,我们会教大家用 R 里的adfTest()函数一键完成检验,只需要看 P 值就行。
第一,宁少勿多,避免过度差分。普通差分优先试 1 阶,最多 2 阶;季节差分优先试 1 阶。差分不是任务,平稳才是目的,过度差分会让数据的有效信息大量流失,反而让模型预测失准。
第二,先消季节,再消趋势。对于既有季节性又有趋势的传染病数据,优先做季节差分消除周期,再看剩下的序列有没有趋势,决定要不要做普通差分,更符合传染病数据的特征。
第三,结果要贴合业务认知。差分后的结果要符合传染病流行规律,比如做完差分后完全看不出任何流行波动的痕迹,大概率是差分过度了,不要只盯着检验 P 值硬套。
搞定了平稳性和差分,我们就迈过了 ARIMA 的第一道门槛。
下一篇我们来讲 ARIMA 定阶的核心钥匙:自相关系数(ACF)和偏自相关系数(PACF)。
很多人觉得这两个概念绕,其实只要搞懂它们的区别,就能自己判断 AR 和 MA 的阶数,不用全靠自动函数 “盲跑” 模型。
我们下一篇见。
参考:
《时间序列分析-基于R》. [M] .王燕.中国人民大学出版社出版
传染病预测预警技术及实践案例分析. [M]. 杨鹏, 王小莉. 人民卫生出版社
编辑:普通疾控人 | 审核:诗酒趁年华
文章来源 | 原创
说明 | 转载只为分享,如有侵权联系删除
©版权声明 | 部分信息和图片来自公开网络
转载请注明
再次转载请注明出处
科普健康 | 宣传疾控
本号为多位疾控机构从业者运营
重点关注国内外健康事件
致力于疾控科普
在做好科普服务大众的同时
做好疾控机构的宣传
让更多的人了解疾控,拥抱健康
欢迎加「小编」微信(cdcjkr126com)
本文具体说明
本文为原创内容,文章为个人理解所学,不涉及疫情信息及内部保密数据,发表的目的为自我总结及给有需求的人士学习使用。如有不妥之处,欢迎联系小编修改、删除。
更多精彩视频,尽在“CDC疾控人”视频号
热门跟贴