Heim >Backend-Entwicklung >Python-Tutorial >Erfahren Sie, wie Sie ARIMA-Modelle mit dem Statistikmodellmodul von Python anpassen

Erfahren Sie, wie Sie ARIMA-Modelle mit dem Statistikmodellmodul von Python anpassen

coldplay.xixi
coldplay.xixinach vorne
2021-01-28 09:58:423889Durchsuche

Erfahren Sie, wie Sie ARIMA-Modelle mit dem Statistikmodellmodul von Python anpassen

Kostenlose Lernempfehlung: Python-Video-Tutorial

Notwendige Pakete und Module importieren

from scipy import statsimport pandas as pdimport matplotlib.pyplot as pltimport statsmodels.api as smfrom statsmodels.tsa.arima.model import ARIMAfrom statsmodels.graphics.tsaplots import plot_predict
plt.rcParams['font.sans-serif']=['simhei']#用于正常显示中文标签plt.rcParams['axes.unicode_minus']=False#用于正常显示负号

1. Lesen Sie die Daten und zeichnen Sie das Diagramm

data=pd.read_csv('数据/客运量.csv',index_col=0)data.index = pd.Index(sm.tsa.datetools.dates_from_range('1949', '2008'))#将时间列改为专门时间格式,方便后期操作data.plot(figsize=(12,8),marker='o',color='black',ylabel='客运量')#画图

#Dabei verwendete Passagierfluss-Zeitreihendaten Artikel: https://download.csdn.net/download/weixin_45590329/14143811
#Das Zeitreihenliniendiagramm sieht wie folgt aus: Offensichtlich weisen die Daten einen steigenden Trend auf. Es wird zunächst davon ausgegangen, dass die Daten nicht stabil sind 2. Stationaritätstest

sm.tsa.adfuller(data,regression='c')sm.tsa.adfuller(data,regression='nc')sm.tsa.adfuller(data,regression='ct')
Führen Sie drei ADF-Einheitswurzeltests durch, wie in einigen Ergebnissen gezeigt, und stellen Sie fest, dass die Reihe nicht stationär ist

3. Führen Sie eine Differenzverarbeitung erster Ordnung für die Daten durch

diff=data.diff(1)diff.dropna(inplace=True)diff.plot(figsize=(12,8),marker='o',color='black')#画图
Machen Erstellen Sie nach der Differenz erster Ordnung der Daten ein Liniendiagramm und beurteilen Sie zunächst, dass es stationär ist.

4. Führen Sie einen Stationaritätstest für die Differenzdaten erster Ordnung durch ist stationär

5. Bestimmen Sie die ARIMA-Reihenfolge (p, d, q) Modell

6. Parameterschätzung

sm.tsa.adfuller(diff,regression='c')sm.tsa.adfuller(diff,regression='nc')sm.tsa.adfuller(diff,regression='ct')
7. Modelltest

fig = plt.figure(figsize=(12,8))ax1 = fig.add_subplot(211)fig = sm.graphics.tsa.plot_acf(diff.values.squeeze(), lags=12, ax=ax1)#自相关系数图1阶截尾,决定MA(1)ax2 = fig.add_subplot(212)fig = sm.graphics.tsa.plot_pacf(diff, lags=12, ax=ax2)#偏相关系数图1阶截尾,决定AR(1)

8. Vorhersage

model = ARIMA(data, order=(1, 1, 1)).fit()#拟合模型model.summary()#统计信息汇总#系数检验params=model.params#系数tvalues=model.tvalues#系数t值bse=model.bse#系数标准误pvalues=model.pvalues#系数p值#绘制残差序列折线图resid=model.resid#残差序列fig = plt.figure(figsize=(12,8))ax = fig.add_subplot(111)ax = model.resid.plot(ax=ax)#计算模型拟合值fit=model.predict(exog=data[['TLHYL']])

Python-Tutorial

(Video)

Das obige ist der detaillierte Inhalt vonErfahren Sie, wie Sie ARIMA-Modelle mit dem Statistikmodellmodul von Python anpassen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen