ARIMA——從案列出發,讓你徹底懂得時間序列模型
解讀導航:文章脈絡會先以圖問結合的方式,讓你理解ARIMA的基本概念和術語,然後以預測下月商品銷售額為例項,帶你親臨建立時間序列模型的步驟和方法,之後介紹一種很有前瞻性的方法Prophet,最後總結時間序列模型的要點、技巧和注意事項。
一、用圖形理解概念
ARIMA模型的全稱叫做自迴歸移動平均模型(ARIMA, Autoregressive Integrated Moving Average Model),又稱為Box-Jenkins模型。也記作ARIMA(p,d,q),是統計模型(statistic model)中最常見的一種用來進行時間序列預測的模型。
ARIMA模型其實是由AR、I、MA三者中的一個或多個組成的,p、q、d分別為對應成員的各自滯後的引數。故模型可以表示為:
其中AR是自迴歸模型,即在序列中的下一個值的誤差(平均值的差值)是前n個值中的誤差的函式。p代表預測模型中採用的時序資料本身的滯後數(lags) ,也叫做AR/Auto-Regressive項 ,一般觀察PACF圖決定P值大小。
MA為移動平均模型,在序列中的下一個值是前n個值的平均值的函式。q代表預測模型中採用的預測誤差的滯後數(lags),也叫做MA/Moving Average項
d為時間序列成為平穩時所做的差分次數。代表時序資料需要進行幾階差分化,才是穩定的。
說到這裡就需要解釋下差分了: 假設y表示t時刻的Y的差分。
二、 ARIMA建模基本步驟:
- 獲取被觀測系統時間序列資料;
- 對資料繪圖,觀測是否為平穩時間序列;對於非平穩時間序列要先進行d階差分運算,化為平穩時間序列;
- 經過第二步處理,已經得到平穩時間序列。要對平穩時間序列分別求得其自相關係數ACF 和偏自相關係數PACF,通過對自相關圖和偏自相關圖的分析,得到最佳的階層 p 和階數 q
- 由以上得到的d、q、p,得到ARIMA模型。然後開始對得到的模型進行模型檢驗。
三、例項
我們使用kaggle比賽的資料,沿著建模步驟,逐漸建立對商品銷售額建立時間序列模型(因為這裡主講時間序列,EDA、F-E就忽略了)
1、原資料經過處理後得到的銷售總額時間序列視覺化如圖:
2、平穩性檢驗
平穩性是指序列上的時間不變性。時間序列中任意兩個點之間的距離是穩定的,而且沒有方向性(向前/向後)。即穩定的資料是沒有趨勢(trend),沒有周期性(seasonality)的; 即它的均值,在時間軸上擁有常量的振幅,並且它的方差,在時間軸上是趨於同一個穩定的值的。
平穩週期要求:均值平穩;方差收斂;協方差具有周期性(如下三幅對比圖)
檢查平穩性的方法有:ADF、KPSS、PP (Phillips-Perron test)
、
我們使用Dickey-Fuller Test進行假設檢驗,原資料p值大於百分之五,故需要將原資料平穩化
經過差分轉換後(銷售商品大都具有明顯的“季節性”,故多次嘗試後,滯後選擇12個月),滿足了序列的平穩性
3、通過自相關、偏自相關圖,確定p、q值
常見ACF、PACF圖情況的解讀彙總表
ACF 圖狀態 | 指示模型 |
指數、衰減到0 | 自迴歸模型。利用部分自相關圖識別自迴歸模型的階數 p |
正、負交替,衰減到零自迴歸模型。 | 使用部分自相關圖幫助確定模型的階數 p |
一個或多個尖峰,基本在零上平穩下來 | 移動平均模型,模型的階數 q為圖中位置為零的點。 |
從某個滯後開始衰減 | 混合自迴歸和移動平均(ARMA)模型。 |
全零或接近零 | 資料本質上是隨機的。 |
峰值在固定區間 | 包括季節性自迴歸項。 |
沒有衰減到0 | 序列是不穩定的 |
通過系統性的尋找方法,我們找到了平穩性轉換後的資料的時間序列模型的p、q值
4、使用模型預測
四、Prophet
最近由Facebook上開放的原始碼,這是一個非常有前途的工具。如果你有經驗和時間,通過仔細調參,可以找到比較好的模型引數,不過對於經驗不足且時間不足的人而言,Prophet提供了一個非常方便快捷的解決方案。
Prophet核心是一個加性迴歸模型,有四個主要組成部分:
1、分段線性或Logistic增長曲線趨勢。Prophet通過從資料中選擇轉換點自動檢測趨勢的變化。
2、使用傅立葉級數建模的年季節分量。
3、每週使用虛擬變數的季節性成分。
4、使用者提供重要節日列表。
有興趣的可以看下:
五、總結
ARIMA模型,是指將非平穩時間序列轉化為平穩時間序列,然後將因變數僅對它的滯後值以及隨機誤差項的現值和滯後值進行迴歸所建立的模型。ARIMA模型根據原序列是否平穩以及迴歸中所含部分的不同,包括移動平均過程(MA)、自迴歸過程(AR)、自迴歸移動平均過程(ARMA)以及ARIMA過程。
ARIMA模型優點: 模型十分簡單,只需要內生變數而不需要藉助其他外生變數。
ARIMA模型缺點:
1.要求時序資料是穩定的(stationary),或者是通過差分化(differencing)後是穩定的。
2.本質上只能捕捉線性關係,而不能捕捉非線性關係。
注意,採用ARIMA模型預測時序資料,必須是穩定的,如果不穩定的資料,是無法捕捉到規律的。比如股票資料用ARIMA無法預測的原因就是股票資料是非穩定的,常常受政策和新聞的影響而波動。
六、差分的輔助理解
1.ARIMA(0,1,0)
2、ARIMA(1,0,0)