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

coldplay.xixi
Freigeben: 2021-06-24 19:39:08
nach vorne
3847 Leute haben es durchsucht

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#用于正常显示负号
Nach dem Login kopieren

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='客运量')#画图
Nach dem Login kopieren

#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')
Nach dem Login kopieren
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')#画图
Nach dem Login kopieren
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')
Nach dem Login kopieren
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)
Nach dem Login kopieren

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']])
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage