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

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

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

二階差分:

d) ARIMA = AR+MA

ARIMA模型使用步驟
- 獲取時(shí)間序列數(shù)據(jù)
- 觀測(cè)數(shù)據(jù)是否為平穩(wěn)的,否則進(jìn)行差分,化為平穩(wěn)的時(shí)序數(shù)據(jù),確定d
- 通過觀察自相關(guān)系數(shù)ACF與偏自相關(guān)系數(shù)PACF確定q和p

- 得到p,d,q后使用ARIMA(p,d,q)進(jìn)行訓(xùn)練預(yù)測(cè)
Python調(diào)用ARIMA
#差分處理 diff_series = diff_series.diff(1)#一階 diff_series2 = diff_series.diff(1)#二階 #ACF與PACF #從scipy導(dǎo)入包 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()#訓(xùn)練 print(arima) pred = arima.predict(start='',end='')#預(yù)測(cè)
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- python實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)回歸預(yù)測(cè)模型
- Python PaddleOCR模型訓(xùn)練及使用超詳細(xì)教程
- Python中利用LSTM模型進(jìn)行時(shí)間序列預(yù)測(cè)分析的實(shí)現(xiàn)
- Python使用Ollama實(shí)現(xiàn)私有大模型知識(shí)庫(kù)
- python 機(jī)器學(xué)習(xí)之支持向量機(jī)非線性回歸SVR模型
- 用Python給文本創(chuàng)立向量空間模型的教程
- python使用tensorflow保存、加載和使用模型的方法
- python構(gòu)建指數(shù)平滑預(yù)測(cè)模型示例
- Python深度學(xué)習(xí)之Unet?語義分割模型(Keras)
- 深入淺析Python 中的sklearn模型選擇
- Python深度學(xué)習(xí)時(shí)序預(yù)測(cè):從數(shù)據(jù)預(yù)處理到DGCRN/Informer模型對(duì)比
相關(guān)文章
基于Python開發(fā)實(shí)現(xiàn)網(wǎng)絡(luò)流量分析工具詳解
網(wǎng)絡(luò)流量分析工具是一個(gè)典型的Python全棧項(xiàng)目,本文將詳細(xì)介紹如何使用Python從零開始構(gòu)建這樣一個(gè)完整的項(xiàng)目,下面小編就為大家簡(jiǎn)單介紹一下吧2025-11-11
Python2.X/Python3.X中urllib庫(kù)區(qū)別講解
本篇文章通過對(duì)比給大家詳細(xì)講解了在Python2和Python3中urllib庫(kù)區(qū)別以及用法講解,有需要的朋友跟著學(xué)習(xí)下吧。2017-12-12
python連接FTP服務(wù)器的實(shí)現(xiàn)方法
本文主要介紹了python連接FTP服務(wù)器的實(shí)現(xiàn)方法,主要使用ftp操作進(jìn)行連接FTP服務(wù)器、獲取當(dāng)前目錄文件清單、上傳文件等操作,具有一定的參考價(jià)值,感興趣的可以了解一下2022-06-06
基于python tkinter的點(diǎn)名小程序功能的實(shí)例代碼
這篇文章主要介紹了基于python tkinter的點(diǎn)名小程序,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
Python大批量寫入數(shù)據(jù)(百萬級(jí)別)的方法
這篇文章主要給大家介紹了關(guān)于Python大批量寫入數(shù)據(jù)(百萬級(jí)別)的相關(guān)資料,在日常處理數(shù)據(jù)的過程中,我們都有批量寫入數(shù)據(jù)的需求,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考下2023-07-07
python中自帶的三個(gè)裝飾器的實(shí)現(xiàn)
這篇文章主要介紹了python中自帶的三個(gè)裝飾器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Python和Pycharm 環(huán)境部署詳細(xì)步驟
Python環(huán)境搭建過程很多朋友都操作過,本次我們將向大家介紹Python和Pycharm 環(huán)境部署的流程,文章通過圖文的形式給大家展示一目了然一看就懂,需要的朋友參考下吧2021-06-06

