时间序列 model的codes
- Time Series Forecasting with ARIMA , SARIMA and SARIMAX , 【blog code】
这篇文章写的很好,把AR、MA、ARMA模型的相关衍生模型都进行了介绍,并给出了对应的code,以及模型预测和模型诊断。
所用的包主要是pmdarima, 【pmdarima】document,我看到官方文档中也有提及到交叉验证,这个很有意思。
import
from datetime import datetime
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
%matplotlib inline
from matplotlib.pylab import rcParams
from statsmodels.tsa.stattools import adfuller
!pip install pmdarima --quiet
import pmdarima as pm
博客作者提出可以计算 Rolling Statistics, 这样更能可以反映出数据集的趋势特征
#Determine rolling statistics
df["rolling_avg"] = df["#Passengers"].rolling(window=12).mean() #window size 12 denotes 12 months, giving rolling mean at yearly level
df["rolling_std"] = df["#Passengers"].rolling(window=12).std()
#Plot rolling statistics
plt.figure(figsize=(15,7))
plt.plot(df["#Passengers"], color='#379BDB', label='Original')
plt.plot(df["rolling_avg"], color='#D22A0D', label='Rolling Mean')
plt.plot(df["rolling_std"], color='#142039', label='Rolling Std')
plt.legend(loc='best')
plt.title('Rolling Mean & Standard Deviation')
plt.show(block=False)