機(jī)器學(xué)習(xí)經(jīng)典算法:時(shí)間序列ARIMA模型


ARIMA模型應(yīng)用舉例:
根據(jù)過去股價(jià)預(yù)測(cè)未來股價(jià)
根據(jù)過去降水量預(yù)測(cè)未來數(shù)據(jù)


現(xiàn)實(shí)數(shù)據(jù)一般都是弱平穩(wěn)
“依賴性”舉例:明天降水量和今天的有關(guān)

雖然橫坐標(biāo)以年為單位標(biāo)記,但每?jī)赡辏ㄈ?5年和07年)之間是有24個(gè)月的數(shù)據(jù)的。
縱坐標(biāo):消費(fèi)者信心指數(shù)

對(duì)一階差分再進(jìn)行一次差分,得到一階差分和二階差分

一階差分平穩(wěn)了一些

二階差分更平穩(wěn)了
(ARIMA步驟的第一步就是進(jìn)行差分操作)

ARIMA=AR+I+MA
①AR:

p階自回歸過程:
階數(shù)表示時(shí)間間隔的多少
1階:表示今天和昨天的關(guān)系
2階:表示今天和前天的關(guān)系
階數(shù)的取值不能用肉眼看出來,后面會(huì)講兩個(gè)評(píng)估的方法

②MA:

AR+MA=ARMA

(當(dāng)前值=基準(zhǔn)值+過往值的加權(quán)平均+誤差+過往誤差的加權(quán)平均☆)
從自回歸移動(dòng)平均模型中看出,p(自回歸模型階數(shù))和q(移動(dòng)平均模型階數(shù))是我們需要指定其值的參數(shù),γi和θi是我們要求解的參數(shù)。
③ARIMA中的I:指差分操作,含有需要指定其值的參數(shù)d。
ARIMA模型總的需要指定其值的參數(shù)為(p,d,q)
一般一階差分就夠了,很少做更高階的差分

階數(shù):也叫滯后值


相關(guān)關(guān)系:[-1,1]
虛線:表示置信區(qū)間
橫軸:階數(shù)d 縱軸:ACF值

實(shí)現(xiàn)ARIMA的庫:statamodels

用函數(shù)plot_acf()和plot_acpf()繪圖
陰影表示置信區(qū)間
plot_acf()結(jié)果:

plot_acpf()結(jié)果:

d:觀察
p,q:通過plot_acf()和plot_pacf()的結(jié)果得到取值

對(duì)于AR模型,求p值看PACF圖像。由圖可知在2階后進(jìn)入置信區(qū)間(即截尾),所以該模型p值取2:

對(duì)于MA模型,求q值看ACF圖像。由圖可知也在2階后進(jìn)入置信區(qū)間(即截尾),所以該模型q值也取2:


☆A(yù)RIMA建模步驟:
①通過差分法將序列變得平穩(wěn),同時(shí)確定差分階數(shù)(次數(shù))d的值;
②通過函數(shù)plot_acf()和plot_pacf()繪制ACF(自相關(guān)函數(shù),表示同一序列在不同時(shí)間點(diǎn)上的取值之間的相關(guān)性)和PACF(偏自相關(guān)函數(shù),剔除了研究的兩個(gè)時(shí)間點(diǎn)之間的點(diǎn),對(duì)應(yīng)的取值的影響)的圖像,根據(jù)規(guī)則確定p和q的值;
③確定好d,p,q的值后, 直接使用statamodels調(diào)用ARIMA模型就可以了。
除了繪制ACF(自相關(guān)函數(shù))和PACF(偏自相關(guān)函數(shù)),也可以通過繪制散點(diǎn)圖,來可視化不同差分階數(shù)d下,不同時(shí)間點(diǎn)對(duì)應(yīng)值之間的相關(guān)性:

只看圖可能還不太精準(zhǔn),可以通過遍歷找到更精確的p和q的取值。
statamodels中有個(gè)SARIMAX函數(shù),只需輸入訓(xùn)練數(shù)據(jù)ts_train和p,d,q的值order(2,0,0),就可以用fit()函數(shù)擬合模型:

然后通過遍歷(從0到4),找到最優(yōu)的p和q的值:

判斷p和q取值好壞的是一個(gè)指標(biāo)AIC/BIC(都是越低越好):



qq圖:看是不是一條直線 是,殘差就符合正態(tài)分布