![]()
系列簡介
這是我們一系列原創(chuàng)技術(shù)貼,從易到難,每天學(xué)習(xí)一點。所有內(nèi)容均為疾控數(shù)據(jù)分析、科研論文相關(guān),或者說很多和現(xiàn)在的熱門監(jiān)測預(yù)警相關(guān),所以我們這個系列就叫“監(jiān)測預(yù)警基礎(chǔ)”。
今天是第41節(jié),從今天開始連續(xù)大概11講的內(nèi)容,我們細(xì)化,短篇化,徹底把ARIMA模型搞懂。
今天是學(xué)透ARIMA內(nèi)容11講的第2講的內(nèi)容,學(xué)習(xí)平穩(wěn)性與差分——ARIMA 的入門門檻。
上一篇我們講了疾控人學(xué) ARIMA 的 3 個核心場景,很多同行反饋終于知道這個模型能用到自己的哪些工作里了。
但真正上手建模,第一道門檻往往不是復(fù)雜的代碼,而是繞不開的「平穩(wěn)性」和「差分」:
好好的原始發(fā)病數(shù)據(jù),為什么不能直接建模?非要把數(shù)據(jù)弄 “平穩(wěn)”,到底是圖什么?差分來差分去,到底在做什么操作?
這一篇我們就徹底搞定這個 ARIMA 入門的第一道坎,全程用傳染病監(jiān)測數(shù)據(jù)舉例,看完就能懂。
![]()
其實在這個系列第一講,我們講的就是時間序列數(shù)據(jù),中間經(jīng)過這么多內(nèi)容,我們終于又講到這,→
ARIMA 是專門給時間序列數(shù)據(jù)建模的工具,而我們疾控日常工作里,絕大多數(shù)監(jiān)測數(shù)據(jù)都是標(biāo)準(zhǔn)的時間序列,比如每日報告的傳染病報告發(fā)病數(shù)。
它和我們平時做橫斷面研究的普通數(shù)據(jù)最核心的區(qū)別是:時間順序不能亂,前后期的數(shù)值存在天然關(guān)聯(lián)—— 本周的流感病例數(shù),一定和上周的病例數(shù)有關(guān)系,這也是我們能用過去預(yù)測未來的基礎(chǔ)。
我們都只知道ARIMA的中文全稱叫:差分整合自回歸移動平均模型,其中這個“自”,不是自動的意思,是自己的意思!![]()
很多教材會直接給定義:“平穩(wěn)序列的均值和方差均為常數(shù),沒有明顯趨勢和周期性”,這句話看著簡單,新手就是摸不著頭腦。
換成大白話講,平穩(wěn)就是數(shù)據(jù)的波動規(guī)律長期穩(wěn)定,不會隨時間發(fā)生本質(zhì)變化,滿足兩個核心特征:
均值恒定:數(shù)據(jù)長期圍繞一個固定的水平線上下波動,不會持續(xù)上漲、也不會持續(xù)下跌,沒有明顯的上升 / 下降趨勢;
方差恒定:數(shù)據(jù)波動的幅度基本穩(wěn)定,不會一段時間只在小范圍波動,一段時間突然暴漲暴跌。
我們用最常見的兩類傳染病數(shù)據(jù),一眼就能區(qū)分:
平穩(wěn)序列例子:散發(fā)期的手足口病周病例數(shù)。長期在 30-50 例之間小幅波動,沒有持續(xù)上升的趨勢,也沒有固定的大起大落,規(guī)律穩(wěn)定。
非平穩(wěn)序列例子:年度流感 ILI 監(jiān)測數(shù)據(jù)。每年冬天會出現(xiàn)明顯的流行高峰、夏天處于低谷(有強季節(jié)性),同時整體發(fā)病水平可能逐年上升或下降(有長期趨勢),波動規(guī)律一直在變。
但是拓展一下,平穩(wěn)也有嚴(yán)平穩(wěn)和寬平穩(wěn)這樣兩個概念區(qū)分。
簡單說,兩者都是用來形容「時間序列的統(tǒng)計規(guī)律會不會隨著時間推移而變化」,區(qū)別只是要求的嚴(yán)格程度天差地別。我們 ARIMA 建模里說的 “平穩(wěn)”,100% 指的是寬平穩(wěn),嚴(yán)平穩(wěn)是純理論概念,日常工作基本碰不到。
第一,嚴(yán)平穩(wěn)(嚴(yán)格平穩(wěn)):要求 100% 分毫不差的穩(wěn)定。這是最極致的平穩(wěn),要求所有統(tǒng)計特性全不隨時間變化—— 不管是均值、方差,還是分布形狀、極端值出現(xiàn)的概率,甚至更高階的統(tǒng)計規(guī)律,只要把時間整體平移(比如把 2022 年的數(shù)據(jù)整體挪到 2023 年),所有統(tǒng)計性質(zhì)完全一模一樣。
現(xiàn)實里幾乎不存在這種完美數(shù)據(jù),所以它只是統(tǒng)計學(xué)理論研究用,實際建模基本不用。
第二,寬平穩(wěn)(弱平穩(wěn)):只要求核心特性穩(wěn)定。放寬了要求,只約束 3 個最核心的統(tǒng)計特性,其他細(xì)節(jié)不做要求:首先是均值恒定,整個序列的平均水平不變,不會一直漲或者一直跌(比如病例數(shù)不會持續(xù)上升,整體圍繞一個固定水平波動)。其次是方差恒定,波動幅度穩(wěn)定,不會一段時間暴漲暴跌、一段時間又風(fēng)平浪靜。最后是自相關(guān)性只和間隔有關(guān),兩個時間點的相關(guān)性,只跟它們之間隔了多久(滯后階數(shù))有關(guān),跟具體在哪一年哪一周沒關(guān)系。比如間隔 2 周的病例相關(guān)性,2022 年的第 1-3 周,和 2024 年的第 10-12 周,相關(guān)性是一樣的。
記住,ARIMA 建模全程只需要關(guān)心寬平穩(wěn),我們后面要學(xué)的 ADF 檢驗、差分平穩(wěn)、模型前提假設(shè),全都是針對「寬平穩(wěn)」;嚴(yán)平穩(wěn)是純理論概念,不用花精力糾結(jié),疾控日常工作完全用不到。
![]()
這是 90% 的初學(xué)者都會卡住的問題:我直接用原始數(shù)據(jù)建模不行嗎?非要差分來差分去,把數(shù)據(jù)改得面目全非?
核心邏輯非常簡單:ARIMA 本質(zhì)是用「過去的穩(wěn)定規(guī)律」預(yù)測「未來」,只有規(guī)律不變,預(yù)測才靠譜。
舉個最直觀的例子:流感流行季從 10 月到 12 月,病例數(shù)一直呈直線上升趨勢,這是典型的非平穩(wěn)序列。如果你只用 10-11 月的上升規(guī)律去建模,去預(yù)測 1 月的發(fā)病情況,結(jié)果一定會嚴(yán)重偏高 —— 因為 1 月流感已經(jīng)進入下降期,規(guī)律已經(jīng)變了,相當(dāng)于刻舟求劍。
而平穩(wěn)化的過程,就是把數(shù)據(jù)里 “變化的部分”(長期趨勢、季節(jié)性周期)先剝離掉,剩下穩(wěn)定波動的核心部分,我們對這部分找規(guī)律建模,最后預(yù)測的時候再把趨勢和周期還原回去。這樣既保證了建模用的規(guī)律是穩(wěn)定的,又不會丟失原始數(shù)據(jù)的信息,最終的預(yù)測結(jié)果依然對應(yīng)真實的發(fā)病數(shù)(軟件會自動完成還原,不需要我們手動計算)。
![]()
這是我們今天要講的核心內(nèi)容,也是要學(xué)透ARIMA必須要掌握的一個概念。
差分是 ARIMA 里最常用的平穩(wěn)化方法,操作非常簡單:用兩期數(shù)據(jù)的差值,代替原始數(shù)據(jù),從而把趨勢、周期這些不穩(wěn)定的因素 “消掉”。
疾控場景里我們常用三類差分,分別對應(yīng)不同的數(shù)據(jù)特征:
1. 一階差分(d=1):消除線性趨勢
一階差分就是本期數(shù)值減去上一期數(shù)值,對應(yīng) ARIMA 里的參數(shù) d=1,它最擅長消除「勻速上升 / 下降的線性趨勢」。
舉個例子:假設(shè)某傳染病流行前期,病例數(shù)每周固定增加 200 例,也就是完美的線性上升趨勢:第 1 周 100 例,第 2 周 300 例,第 3 周 500 例,第 4 周 700 例……做一階差分后,所有差值都是 200,變成了一個恒定的常數(shù),自然就平穩(wěn)了。
在實際工作中,只要數(shù)據(jù)有持續(xù)的直線上升 / 下降趨勢,優(yōu)先做一階差分,絕大多數(shù)情況下都能解決趨勢問題。
2. 二階差分(d=2):消除曲線趨勢
二階差分就是對一階差分后的結(jié)果,再做一次差分,對應(yīng) ARIMA 里的參數(shù) d=2。它用來處理「增長 / 下降速度越來越快」的曲線(拋物線)趨勢。
比如傳染病暴發(fā)初期,病例數(shù)指數(shù)級增長,一階差分后差值還是在上升,這時候再做一次二階差分,基本就能平穩(wěn)。
這里給大家一個疾控建模的實用經(jīng)驗:絕大多數(shù)傳染病監(jiān)測數(shù)據(jù),1 階差分就足夠平穩(wěn),最多用到 2 階。差分次數(shù)不是越多越好,過度差分會丟失數(shù)據(jù)本身的有效信息,反而會降低模型預(yù)測精度。
3. 季節(jié)差分(k 步差分):消除周期性波動
這是疾控場景里最常用的差分類型。我們遇到的流感、手足口、諾如等傳染病,幾乎都有固定的年度流行周期,這種周期性靠普通的一階、二階差分消不掉,就要用季節(jié)差分:本期數(shù)值 - 上一個周期的同期數(shù)值。
比如月度數(shù)據(jù),周期是 12 個月,就做 12 步季節(jié)差分:今年 12 月病例 - 去年 12 月病例;比如周度數(shù)據(jù),周期是 52 周,就做 52 步季節(jié)差分:本周病例 - 去年同一周的病例。補充小提示:后面我們要講的季節(jié)性 SARIMA 模型里,參數(shù) D 就是季節(jié)差分的階數(shù),絕大多數(shù)場景下 D=1 就足夠。
做完季節(jié)差分后,數(shù)據(jù)的年度季節(jié)性高峰低谷就會被消掉,剩下的就是剔除了周期的波動部分,再配合普通差分處理趨勢,就能得到平穩(wěn)序列。
![]()
1. 肉眼判斷法:先畫時序圖
拿到數(shù)據(jù)的第一步,永遠(yuǎn)是先畫原始數(shù)據(jù)的時序圖。
有沒有上升 / 下降趨勢、有沒有固定的季節(jié)性周期,肉眼基本就能判斷個大概。這一步也能幫我們核對數(shù)據(jù)是否符合業(yè)務(wù)認(rèn)知,比如流感數(shù)據(jù)是不是冬季高峰,避免數(shù)據(jù)導(dǎo)入錯誤。
新手最容易犯的錯誤,就是上來直接做統(tǒng)計檢驗,跳過看圖的步驟,最后模型出了問題都不知道根源在哪。
2. ADF 單位根檢驗:客觀金標(biāo)準(zhǔn)
肉眼判斷有主觀性,最終確認(rèn)平穩(wěn)性,我們需用ADF 單位根檢驗
你不需要搞懂 “單位根” 是什么統(tǒng)計學(xué)概念,也不用記檢驗公式,只需要記住結(jié)果解讀規(guī)則:
若檢驗的P值 ≤ 0.05:拒絕 “序列不平穩(wěn)” 的原假設(shè),認(rèn)為序列平穩(wěn),不需要再差分;若檢驗的P值 > 0.05:不能拒絕原假設(shè),認(rèn)為序列不平穩(wěn),需要繼續(xù)做差分,差分后再重新檢驗。
后續(xù)實操篇里,我們會教大家用 R 里的adfTest()函數(shù)一鍵完成檢驗,只需要看 P 值就行。
![]()
第一,寧少勿多,避免過度差分。普通差分優(yōu)先試 1 階,最多 2 階;季節(jié)差分優(yōu)先試 1 階。差分不是任務(wù),平穩(wěn)才是目的,過度差分會讓數(shù)據(jù)的有效信息大量流失,反而讓模型預(yù)測失準(zhǔn)。
第二,先消季節(jié),再消趨勢。對于既有季節(jié)性又有趨勢的傳染病數(shù)據(jù),優(yōu)先做季節(jié)差分消除周期,再看剩下的序列有沒有趨勢,決定要不要做普通差分,更符合傳染病數(shù)據(jù)的特征。
第三,結(jié)果要貼合業(yè)務(wù)認(rèn)知。差分后的結(jié)果要符合傳染病流行規(guī)律,比如做完差分后完全看不出任何流行波動的痕跡,大概率是差分過度了,不要只盯著檢驗 P 值硬套。
搞定了平穩(wěn)性和差分,我們就邁過了 ARIMA 的第一道門檻。
下一篇我們來講 ARIMA 定階的核心鑰匙:自相關(guān)系數(shù)(ACF)和偏自相關(guān)系數(shù)(PACF)。
很多人覺得這兩個概念繞,其實只要搞懂它們的區(qū)別,就能自己判斷 AR 和 MA 的階數(shù),不用全靠自動函數(shù) “盲跑” 模型。
我們下一篇見。
參考:
《時間序列分析-基于R》. [M] .王燕.中國人民大學(xué)出版社出版
傳染病預(yù)測預(yù)警技術(shù)及實踐案例分析. [M]. 楊鵬, 王小莉. 人民衛(wèi)生出版社
![]()
![]()
編輯:普通疾控人 | 審核:詩酒趁年華
文章來源 | 原創(chuàng)
說明 | 轉(zhuǎn)載只為分享,如有侵權(quán)聯(lián)系刪除
?版權(quán)聲明 | 部分信息和圖片來自公開網(wǎng)絡(luò)
轉(zhuǎn)載請注明
再次轉(zhuǎn)載請注明出處
![]()
科普健康 | 宣傳疾控
本號為多位疾控機構(gòu)從業(yè)者運營
重點關(guān)注國內(nèi)外健康事件
致力于疾控科普
在做好科普服務(wù)大眾的同時
做好疾控機構(gòu)的宣傳
讓更多的人了解疾控,擁抱健康
歡迎加「小編」微信(cdcjkr126com)
本文具體說明
本文為原創(chuàng)內(nèi)容,文章為個人理解所學(xué),不涉及疫情信息及內(nèi)部保密數(shù)據(jù),發(fā)表的目的為自我總結(jié)及給有需求的人士學(xué)習(xí)使用。如有不妥之處,歡迎聯(lián)系小編修改、刪除。
更多精彩視頻,盡在“CDC疾控人”視頻號
![]()
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
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.