【視頻】ARIMA時間序列模型原理和R語言ARIMAX預測實現案例

2023-06-13     tecdat拓端

原標題:【視頻】ARIMA時間序列模型原理和R語言ARIMAX預測實現案例

全文連結:http://tecdat.cn/?p=32773

原文出處:拓端數據部落公眾號

分析師:Feier Li

ARIMA是可以擬合時間序列數據的模型,根據自身的過去值(即自身的滯後和滯後的預測誤差)「解釋」 給定的時間序列,因此可以使用方程式預測未來價值。任何具有模式且不是隨機白噪聲的「非季節性"時間序列都可以使用ARIMA模型進行建模。

模型識別

模型步驟

構造arima模型需要四個步驟:

  • 平穩性檢驗
  • 模型識別
  • 參數估計
  • 模型檢驗

平穩性檢驗

圖檢驗

  • 時序圖

趨勢特徵

周期特徵

以上均無

  • 自相關圖

單位根檢驗

若序列是平穩的,那麼該序列的所有特徵根都應該在單位圓內。 若序列存在特徵根在單位,上或單位圓外, 則該序列是非平穩序列。

差分平穩

差分通過從當前觀察值中減去先前的觀察值來執行求差。

模型識別

參數估計及模型檢驗

模型的顯著性檢驗

若殘差序列為非白噪聲序列,則意味著殘差序列還有殘留的相關信息未被提取,說明擬合模型不夠有效。

參數的顯著性檢驗

檢驗每一個參數是否顯著非零,若不顯著非零,即表示該參數所對應的自變量對因變量影響不明顯,可將其剔除。

總結

應用場景:

  • 對銷售數據進行分析,以預測未來的銷售狀況
  • 可以用於預測未來的氣候變化,用於研究環境問題
  • 可分析行業數據,以便預測行業的未來發展趨勢和發展方向。

優點:

  • 實現簡單、計算量小
  • 可以有效處理不平滑、不確定性較大的時間序列數據

缺點:

  • 模型容易受到異常值的影響
  • 本質上只能捕捉線性關係,而不能捕捉非線性關係。

R語言用ARIMA模型,ARIMAX模型預測冰淇淋消費時間序列數據

標準的ARIMA(移動平均自回歸模型)模型允許只根據預測變量的過去值進行預測。該模型假定一個變量的未來的值線性地取決於其過去的值,以及過去(隨機)影響的值。ARIMAX模型是ARIMA模型的一個擴展版本。它還包括其他獨立(預測)變量。該模型也被稱為向量ARIMA或動態回歸模型。

ARIMAX模型類似於多變量回歸模型,但允許利用回歸殘差中可能存在的自相關來提高預測的準確性。

本文練習提供了一個進行ARIMAX模型預測的練習。還檢查了回歸係數的統計學意義。

這些練習使用了冰淇淋消費數據。該數據集包含以下變量。

  • 美國的冰淇淋消費(人均)
  • 每周的平均家庭收入
  • 冰淇淋的價格
  • 平均溫度。

觀測數據的數量為30個。它們對應的是1951年3月18日至1953年7月11日這一時間段內的四周時間。

練習1

加載數據集,並繪製變量cons(冰淇淋消費)、temp(溫度)和收入。

ggplot(df, aes(x = X, y = income)) +

ylab("收入") +

xlab("時間") +

grid.arrange(p1, p2, p3, ncol=1, nrow=3)

練習 2

對冰淇淋消費數據估計ARIMA模型。然後將該模型作為輸入傳給預測函數,得到未來6個時期的預測數據。

auto.arima(cons)

fcast_cons <- forecast(fit_cons, h = 6)

練習3

繪製得到的預測圖。

練習4

找出擬合的ARIMA模型的平均絕對誤差(MASE)。

accuracy

練習5

為消費數據估計一個擴展的ARIMA模型,將溫度變量作為一個額外的回歸因子(使用auto.arima函數)。然後對未來6個時期進行預測(注意這個預測需要對期望溫度進行假設;假設未來6個時期的溫度將由以下向量表示:

fcast_temp <- c(70.5, 66, 60.5, 45.5, 36, 28))

繪製獲得的預測圖。

練習6

輸出獲得的預測摘要。找出溫度變量的係數,它的標準誤差,以及預測的MASE。將MASE與初始預測的MASE進行比較。

summary(fca)

溫度變量的係數是0.0028

該係數的標準誤差為0.0007

平均絕對比例誤差為0.7354048,小於初始模型的誤差(0.8200619)。

練習7

檢查溫度變量係數的統計意義。該係數在5%的水平上是否有統計學意義?

test(fit)

練習8

估計ARIMA模型的函數可以輸入更多的附加回歸因子,但只能以矩陣的形式輸入。創建一個有以下幾列的矩陣。

溫度變量的值。

收入變量的值。

滯後一期的收入變量的值。

滯後兩期的收入變量的值。

輸出該矩陣。

注意:最後三列可以通過在收入變量值的向量中添加兩個NA來創建,並將得到的向量作為嵌入函數的輸入(維度參數等於要創建的列數)。

vars <- cbind(temp, income)

print(vars)

練習9

使用獲得的矩陣來擬合三個擴展的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。

練習10

使用上一練習中發現的模型對未來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模型進行時間序列預測

文章來源: https://twgreatdaily.com/f6ca7b674fdb799d828dafb96eead68d.html