ARIMA是可以擬合時間序列數據的模型,根據自身的過去值(即自身的滯後和滯後的預測誤差)「解釋」 給定的時間序列,因此可以使用方程式預測未來價值。任何具有模式且不是隨機白噪聲的「非季節性"時間序列都可以使用ARIMA模型進行建模。
構造arima模型需要四個步驟:
圖檢驗
趨勢特徵
周期特徵
以上均無
單位根檢驗
若序列是平穩的,那麼該序列的所有特徵根都應該在單位圓內。 若序列存在特徵根在單位,上或單位圓外, 則該序列是非平穩序列。
差分通過從當前觀察值中減去先前的觀察值來執行求差。
模型的顯著性檢驗
若殘差序列為非白噪聲序列,則意味著殘差序列還有殘留的相關信息未被提取,說明擬合模型不夠有效。
參數的顯著性檢驗
檢驗每一個參數是否顯著非零,若不顯著非零,即表示該參數所對應的自變量對因變量影響不明顯,可將其剔除。
應用場景:
優點:
缺點:
標準的ARIMA(移動平均自回歸模型)模型允許只根據預測變量的過去值進行預測。該模型假定一個變量的未來的值線性地取決於其過去的值,以及過去(隨機)影響的值。ARIMAX模型是ARIMA模型的一個擴展版本。它還包括其他獨立(預測)變量。該模型也被稱為向量ARIMA或動態回歸模型。
ARIMAX模型類似於多變量回歸模型,但允許利用回歸殘差中可能存在的自相關來提高預測的準確性。
本文練習提供了一個進行ARIMAX模型預測的練習。還檢查了回歸係數的統計學意義。
這些練習使用了冰淇淋消費數據。該數據集包含以下變量。
觀測數據的數量為30個。它們對應的是1951年3月18日至1953年7月11日這一時間段內的四周時間。
加載數據集,並繪製變量cons(冰淇淋消費)、temp(溫度)和收入。
ggplot(df, aes(x = X, y = income)) +
ylab("收入") +
xlab("時間") +
grid.arrange(p1, p2, p3, ncol=1, nrow=3)
對冰淇淋消費數據估計ARIMA模型。然後將該模型作為輸入傳給預測函數,得到未來6個時期的預測數據。
auto.arima(cons)
fcast_cons <- forecast(fit_cons, h = 6)
繪製得到的預測圖。
找出擬合的ARIMA模型的平均絕對誤差(MASE)。
accuracy
為消費數據估計一個擴展的ARIMA模型,將溫度變量作為一個額外的回歸因子(使用auto.arima函數)。然後對未來6個時期進行預測(注意這個預測需要對期望溫度進行假設;假設未來6個時期的溫度將由以下向量表示:
fcast_temp <- c(70.5, 66, 60.5, 45.5, 36, 28))
繪製獲得的預測圖。
輸出獲得的預測摘要。找出溫度變量的係數,它的標準誤差,以及預測的MASE。將MASE與初始預測的MASE進行比較。
summary(fca)
溫度變量的係數是0.0028
該係數的標準誤差為0.0007
平均絕對比例誤差為0.7354048,小於初始模型的誤差(0.8200619)。
檢查溫度變量係數的統計意義。該係數在5%的水平上是否有統計學意義?
test(fit)
估計ARIMA模型的函數可以輸入更多的附加回歸因子,但只能以矩陣的形式輸入。創建一個有以下幾列的矩陣。
溫度變量的值。
收入變量的值。
滯後一期的收入變量的值。
滯後兩期的收入變量的值。
輸出該矩陣。
注意:最後三列可以通過在收入變量值的向量中添加兩個NA來創建,並將得到的向量作為嵌入函數的輸入(維度參數等於要創建的列數)。
vars <- cbind(temp, income)
print(vars)
使用獲得的矩陣來擬合三個擴展的ARIMA模型,使用以下變量作為額外的回歸因子。
溫度、收入。
溫度、收入的滯後期為0、1。
溫度,滯後期為0、1、2的收入。
檢查每個模型的摘要,並找到信息準則(AIC)值最低的模型。
注意AIC不能用於比較具有不同階數的ARIMA模型,因為觀察值的數量不同。例如,非差分模型ARIMA(p,0,q)的AIC值不能與差分模型ARIMA(p,1,q)的相應值進行比較。
auto.arima(cons, xreg = var)
print(fit0$aic)
可以使用AIC,因為各模型的參數階數相同(0)。
AIC值最低的模型是第一個模型。
它的AIC等於-113.3。
使用上一練習中發現的模型對未來6個時期進行預測,並繪製預測圖。預測需要一個未來6個時期的期望溫度和收入的矩陣;使用temp變量和以下期望收入值創建矩陣:91, 91, 93, 96, 96, 96。
找出該模型的平均絕對比例誤差,並與本練習集中前兩個模型的誤差進行比較。
帶有兩個外部回歸因子的模型具有最低的 平均絕對比例誤差(0.528)
在此對Feier Li對本文所作的貢獻表示誠摯感謝,她完成了數據科學與大數據技術學位,專注機器學習領域。擅長Python、SPSS。
最受歡迎的見解
1.在python中使用lstm和pytorch進行時間序列預測
2.python中利用長短期記憶模型lstm進行時間序列預測分析
3.使用r語言進行時間序列(arima,指數平滑)分析
4.r語言多元copula-garch-模型時間序列預測
5.r語言copulas和金融時間序列案例
6.使用r語言隨機波動模型sv處理時間序列中的隨機波動
7.r語言時間序列tar閾值自回歸模型
8.r語言k-shape時間序列聚類方法對股票價格時間序列聚類
9.python3用arima模型進行時間序列預測