Python時間序列處理之ARIMA模型的使用講解

今天小編就爲大家分享一篇關於Python時間序列處理之ARIMA模型的使用講解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

ARIMA模型

ARIMA模型的全稱是自迴歸移動平均模型,是用來預測時間序列的一種常用的統計模型,一般記作ARIMA(p,d,q)。

ARIMA的適應情況

ARIMA模型相對來說比較簡單易用。在應用ARIMA模型時,要保證以下幾點:

  • 時間序列數據是相對穩定的,總體基本不存在一定的上升或者下降趨勢,如果不穩定可以通過差分的方式來使其變穩定。
  • 非線性關係處理不好,只能處理線性關係

判斷時序數據穩定

基本判斷方法:穩定的數據,總體上是沒有上升和下降的趨勢的,是沒有週期性的,方差趨向於一個穩定的值。

ARIMA數學表達

ARIMA(p,d,q),其中p是數據本身的滯後數,是AR模型即自迴歸模型中的參數。d是時間序列數據需要幾次差分才能得到穩定的數據。q是預測誤差的滯後數,是MA模型即滑動平均模型中的參數。

a) p參數與AR模型

AR模型描述的是當前值與歷史值之間的關係,滯後p階的AR模型可以表示爲:

其中u是常數,et代表誤差。

b) q參數與MA模型

MA模型描述的是當前值與自迴歸部分的誤差累計的關係,滯後q階的MA模型可以表示爲:

其中u是常數,et代表誤差。

c) d參數與差分

一階差分:

二階差分:

d) ARIMA = AR+MA

ARIMA模型使用步驟

  • 獲取時間序列數據
  • 觀測數據是否爲平穩的,否則進行差分,化爲平穩的時序數據,確定d
  • 通過觀察自相關係數ACF與偏自相關係數PACF確定q和p

  • 得到p,d,q後使用ARIMA(p,d,q)進行訓練預測

Python調用ARIMA

#差分處理
diff_series = diff_series.diff(1)#一階
diff_series2 = diff_series.diff(1)#二階
#ACF與PACF
#從scipy導入包
from scipy import stats
import statsmodels.api as sm
#畫出acf和pacf
sm.graphics.tsa.plot_acf(diff_series)
sm.graphics.tsa.plot_pacf(diff_series)
#arima模型
from statsmodels.tsa.arima_model import ARIMA
model = ARIMA(train_data,order=(p,d,q),freq='')#freq是頻率,根據數據填寫
arima = model.fit()#訓練
print(arima)
pred = arima.predict(start='',end='')#預測

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章