Python時間序列處理之ARIMA模型的使用講解
ARIMA模型
ARIMA模型的全稱是自回歸移動平均模型,是用來預測時間序列的一種常用的統(tǒng)計模型,一般記作ARIMA(p,d,q)。
ARIMA的適應情況
ARIMA模型相對來說比較簡單易用。在應用ARIMA模型時,要保證以下幾點:
- 時間序列數(shù)據(jù)是相對穩(wěn)定的,總體基本不存在一定的上升或者下降趨勢,如果不穩(wěn)定可以通過差分的方式來使其變穩(wěn)定。
- 非線性關系處理不好,只能處理線性關系
判斷時序數(shù)據(jù)穩(wěn)定
基本判斷方法:穩(wěn)定的數(shù)據(jù),總體上是沒有上升和下降的趨勢的,是沒有周期性的,方差趨向于一個穩(wěn)定的值。
ARIMA數(shù)學表達
ARIMA(p,d,q),其中p是數(shù)據(jù)本身的滯后數(shù),是AR模型即自回歸模型中的參數(shù)。d是時間序列數(shù)據(jù)需要幾次差分才能得到穩(wěn)定的數(shù)據(jù)。q是預測誤差的滯后數(shù),是MA模型即滑動平均模型中的參數(shù)。
a) p參數(shù)與AR模型
AR模型描述的是當前值與歷史值之間的關系,滯后p階的AR模型可以表示為:

其中u是常數(shù),et代表誤差。
b) q參數(shù)與MA模型
MA模型描述的是當前值與自回歸部分的誤差累計的關系,滯后q階的MA模型可以表示為:

其中u是常數(shù),et代表誤差。
c) d參數(shù)與差分
一階差分:

二階差分:

d) ARIMA = AR+MA

ARIMA模型使用步驟
- 獲取時間序列數(shù)據(jù)
- 觀測數(shù)據(jù)是否為平穩(wěn)的,否則進行差分,化為平穩(wěn)的時序數(shù)據(jù),確定d
- 通過觀察自相關系數(shù)ACF與偏自相關系數(shù)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是頻率,根據(jù)數(shù)據(jù)填寫 arima = model.fit()#訓練 print(arima) pred = arima.predict(start='',end='')#預測
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
相關文章
詳解python實現(xiàn)數(shù)據(jù)歸一化處理的方式:(0,1)標準化
這篇文章主要介紹了詳解python實現(xiàn)數(shù)據(jù)歸一化處理的方式:(0,1)標準化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07
python使用redis實現(xiàn)消息隊列(異步)的實現(xiàn)完整例程
本文主要介紹了python使用redis實現(xiàn)消息隊列(異步)的實現(xiàn)完整例程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01
基于numpy.random.randn()與rand()的區(qū)別詳解
下面小編就為大家分享一篇基于numpy.random.randn()與rand()的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
在前女友婚禮上,用Python破解了現(xiàn)場的WIFI還把名稱改成了
今日重點:① python暴力拿下WiFi密碼,②python拿下路由器管理頁面,文中有非常詳細的代碼示例,干貨滿滿,,需要的朋友可以參考下2021-05-05

