【視頻】ARIMA時(shí)間序列模型原理和R語(yǔ)言ARIMAX預(yù)測(cè)實(shí)現(xiàn)案例
全文鏈接:http://tecdat.cn/?p=32773
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
分析師:Feier Li
ARIMA是可以擬合時(shí)間序列數(shù)據(jù)的模型,根據(jù)自身的過去值(即自身的滯后和滯后的預(yù)測(cè)誤差)“解釋” 給定的時(shí)間序列,因此可以使用方程式預(yù)測(cè)未來價(jià)值。任何具有模式且不是隨機(jī)白噪聲的“非季節(jié)性"時(shí)間序列都可以使用ARIMA模型進(jìn)行建模。
模型識(shí)別
模型步驟
構(gòu)造arima模型需要四個(gè)步驟:
平穩(wěn)性檢驗(yàn)
模型識(shí)別
參數(shù)估計(jì)
模型檢驗(yàn)
平穩(wěn)性檢驗(yàn)
圖檢驗(yàn)
時(shí)序圖
趨勢(shì)特征
●周期特征
●以上均無
自相關(guān)圖
單位根檢驗(yàn)
若序列是平穩(wěn)的,那么該序列的所有特征根都應(yīng)該在單位圓內(nèi)。 若序列存在特征根在單位,上或單位圓外, 則該序列是非平穩(wěn)序列。
差分平穩(wěn)
差分通過從當(dāng)前觀察值中減去先前的觀察值來執(zhí)行求差。
模型識(shí)別
參數(shù)估計(jì)及模型檢驗(yàn)
模型的顯著性檢驗(yàn)
若殘差序列為非白噪聲序列,則意味著殘差序列還有殘留的相關(guān)信息未被提取,說明擬合模型不夠有效。
參數(shù)的顯著性檢驗(yàn)
檢驗(yàn)每一個(gè)參數(shù)是否顯著非零,若不顯著非零,即表示該參數(shù)所對(duì)應(yīng)的自變量對(duì)因變量影響不明顯,可將其剔除。
總結(jié)
應(yīng)用場(chǎng)景:
對(duì)銷售數(shù)據(jù)進(jìn)行分析,以預(yù)測(cè)未來的銷售狀況
可以用于預(yù)測(cè)未來的氣候變化,用于研究環(huán)境問題
可分析行業(yè)數(shù)據(jù),以便預(yù)測(cè)行業(yè)的未來發(fā)展趨勢(shì)和發(fā)展方向。
優(yōu)點(diǎn):
實(shí)現(xiàn)簡(jiǎn)單、計(jì)算量小
可以有效處理不平滑、不確定性較大的時(shí)間序列數(shù)據(jù)
缺點(diǎn):
模型容易受到異常值的影響
本質(zhì)上只能捕捉線性關(guān)系,而不能捕捉非線性關(guān)系。
R語(yǔ)言用ARIMA模型,ARIMAX模型預(yù)測(cè)冰淇淋消費(fèi)時(shí)間序列數(shù)據(jù)
標(biāo)準(zhǔn)的ARIMA(移動(dòng)平均自回歸模型)模型允許只根據(jù)預(yù)測(cè)變量的過去值進(jìn)行預(yù)測(cè)。該模型假定一個(gè)變量的未來的值線性地取決于其過去的值,以及過去(隨機(jī))影響的值。ARIMAX模型是ARIMA模型的一個(gè)擴(kuò)展版本。它還包括其他獨(dú)立(預(yù)測(cè))變量。該模型也被稱為向量ARIMA或動(dòng)態(tài)回歸模型。
ARIMAX模型類似于多變量回歸模型,但允許利用回歸殘差中可能存在的自相關(guān)來提高預(yù)測(cè)的準(zhǔn)確性。
本文練習(xí)提供了一個(gè)進(jìn)行ARIMAX模型預(yù)測(cè)的練習(xí)。還檢查了回歸系數(shù)的統(tǒng)計(jì)學(xué)意義。
這些練習(xí)使用了冰淇淋消費(fèi)數(shù)據(jù)。該數(shù)據(jù)集包含以下變量。
美國(guó)的冰淇淋消費(fèi)(人均)
每周的平均家庭收入
冰淇淋的價(jià)格
平均溫度。
觀測(cè)數(shù)據(jù)的數(shù)量為30個(gè)。它們對(duì)應(yīng)的是1951年3月18日至1953年7月11日這一時(shí)間段內(nèi)的四周時(shí)間。
練習(xí)1
加載數(shù)據(jù)集,并繪制變量cons(冰淇淋消費(fèi))、temp(溫度)和收入。
ggplot(df, aes(x = X, y = income)) + ?ylab("收入") + ?xlab("時(shí)間") +grid.arrange(p1, p2, p3, ncol=1, nrow=3)
練習(xí)?2?
對(duì)冰淇淋消費(fèi)數(shù)據(jù)估計(jì)ARIMA模型。然后將該模型作為輸入傳給預(yù)測(cè)函數(shù),得到未來6個(gè)時(shí)期的預(yù)測(cè)數(shù)據(jù)。
auto.arima(cons)
fcast_cons <- forecast(fit_cons, h = 6)
練習(xí)3
繪制得到的預(yù)測(cè)圖。
練習(xí)4
找出擬合的ARIMA模型的平均絕對(duì)誤差(MASE)。
accuracy
練習(xí)5
為消費(fèi)數(shù)據(jù)估計(jì)一個(gè)擴(kuò)展的ARIMA模型,將溫度變量作為一個(gè)額外的回歸因子(使用auto.arima函數(shù))。然后對(duì)未來6個(gè)時(shí)期進(jìn)行預(yù)測(cè)(注意這個(gè)預(yù)測(cè)需要對(duì)期望溫度進(jìn)行假設(shè);假設(shè)未來6個(gè)時(shí)期的溫度將由以下向量表示:
fcast_temp <- c(70.5, 66, 60.5, 45.5, 36, 28))
繪制獲得的預(yù)測(cè)圖。
練習(xí)6
輸出獲得的預(yù)測(cè)摘要。找出溫度變量的系數(shù),它的標(biāo)準(zhǔn)誤差,以及預(yù)測(cè)的MASE。將MASE與初始預(yù)測(cè)的MASE進(jìn)行比較。
summary(fca)
?
溫度變量的系數(shù)是0.0028
該系數(shù)的標(biāo)準(zhǔn)誤差為0.0007
平均絕對(duì)比例誤差為0.7354048,小于初始模型的誤差(0.8200619)。
?
練習(xí)7
檢查溫度變量系數(shù)的統(tǒng)計(jì)意義。該系數(shù)在5%的水平上是否有統(tǒng)計(jì)學(xué)意義?
test(fit)
練習(xí)8
估計(jì)ARIMA模型的函數(shù)可以輸入更多的附加回歸因子,但只能以矩陣的形式輸入。創(chuàng)建一個(gè)有以下幾列的矩陣。
溫度變量的值。
收入變量的值。
滯后一期的收入變量的值。
滯后兩期的收入變量的值。
輸出該矩陣。
注意:最后三列可以通過在收入變量值的向量中添加兩個(gè)NA來創(chuàng)建,并將得到的向量作為嵌入函數(shù)的輸入(維度參數(shù)等于要?jiǎng)?chuàng)建的列數(shù))。
vars <- cbind(temp, income)print(vars)
?
練習(xí)9
使用獲得的矩陣來擬合三個(gè)擴(kuò)展的ARIMA模型,使用以下變量作為額外的回歸因子。
溫度、收入。
溫度、收入的滯后期為0、1。
溫度,滯后期為0、1、2的收入。
檢查每個(gè)模型的摘要,并找到信息準(zhǔn)則(AIC)值最低的模型。
注意AIC不能用于比較具有不同階數(shù)的ARIMA模型,因?yàn)橛^察值的數(shù)量不同。例如,非差分模型ARIMA(p,0,q)的AIC值不能與差分模型ARIMA(p,1,q)的相應(yīng)值進(jìn)行比較。
auto.arima(cons, xreg = var)print(fit0$aic)
?可以使用AIC,因?yàn)楦髂P偷膮?shù)階數(shù)相同(0)。
AIC值最低的模型是第一個(gè)模型。
它的AIC等于-113.3。
?
練習(xí)10
使用上一練習(xí)中發(fā)現(xiàn)的模型對(duì)未來6個(gè)時(shí)期進(jìn)行預(yù)測(cè),并繪制預(yù)測(cè)圖。預(yù)測(cè)需要一個(gè)未來6個(gè)時(shí)期的期望溫度和收入的矩陣;使用temp變量和以下期望收入值創(chuàng)建矩陣:91, 91, 93, 96, 96, 96。
找出該模型的平均絕對(duì)比例誤差,并與本練習(xí)集中前兩個(gè)模型的誤差進(jìn)行比較。
帶有兩個(gè)外部回歸因子的模型具有最低的?平均絕對(duì)比例誤差(0.528)
關(guān)于分析師
在此對(duì)Feier Li對(duì)本文所作的貢獻(xiàn)表示誠(chéng)摯感謝,她完成了數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)學(xué)位,專注機(jī)器學(xué)習(xí)領(lǐng)域。擅長(zhǎng)Python、SPSS。
最受歡迎的見解
1.在python中使用lstm和pytorch進(jìn)行時(shí)間序列預(yù)測(cè)
2.python中利用長(zhǎng)短期記憶模型lstm進(jìn)行時(shí)間序列預(yù)測(cè)分析
3.使用r語(yǔ)言進(jìn)行時(shí)間序列(arima,指數(shù)平滑)分析
4.r語(yǔ)言多元copula-garch-模型時(shí)間序列預(yù)測(cè)
5.r語(yǔ)言copulas和金融時(shí)間序列案例
6.使用r語(yǔ)言隨機(jī)波動(dòng)模型sv處理時(shí)間序列中的隨機(jī)波動(dòng)
7.r語(yǔ)言時(shí)間序列tar閾值自回歸模型
8.r語(yǔ)言k-shape時(shí)間序列聚類方法對(duì)股票價(jià)格時(shí)間序列聚類
9.python3用arima模型進(jìn)行時(shí)間序列預(yù)測(cè)