时间序列ARIMA
1 ARIMA模型
1.1 ARIMA模型是什么:
全称差分自回归移动平均模型 (Autoregressive Integrated Moving Average Model)
-
它其实可以拆分为:AR自回归模型、I差分、MA移动平均模型
-
自回归模型(AR模型) ——》 自己的数据跟自己的数据进行一个相关性的回归分析!
-
描述当前值与历史值之间的关系,用变量自身的历史事件数据对自身进行预测
-
自回归模型必须满足平稳性的要求
-
移动平均模型(MA模型)
-
移动平均模型关注的是自回归模型中的误差项的累加
-
移动平均法能有效地消除预测中的随机波动
-
差分法
-
时间序列在t与t-1时刻的差值
-
差分参数d
-
能够使时间序列变得平稳
-
原时间序列
-
一阶差分
-
二阶差分
- 总结
- ARIMA(p,d,q),原理:将非平稳序列转化为平稳序列,然后将因变量仅对它的滞后值以及随机误差项的现值和滞后值进行回归所建立的模型。
1.2 ARIMA模型建模流程
-
白噪声检验(纯随机性检验)
-
什么是纯随机序列?
-
答:如果一个序列是纯随机序列,那么序列值之间没有任何关系,且序列没有规律可循。
-
用途:
-
建模之前,检验数据是否满足白噪声检验,非白噪声才能进一步建模
-
建模后,检验残差是否满足白噪声检验,通过检验,建模才能成立
2 ARIMA模型的应用
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
from matplotlib.pylab import style #自定义图表风格
style.use('ggplot')
# 解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Simhei']
# 解决坐标轴刻度负号乱码
plt.rcParams['axes.unicode_minus'] = False
#pip install statsmodels
from statsmodels.graphics.tsaplots import plot_acf,plot_pacf #自相关图、偏自相关图
from statsmodels.tsa.stattools import adfuller as ADF #平稳性检验
from statsmodels.stats.diagnostic import acorr_ljungbox #白噪声检验
## 白噪声检验的
# import statsmodels.api as sm #D-W检验,一阶自相关检验
# from statsmodels.graphics.api import qqplot #画QQ图,检验一组数据是否服从正态分布
from statsmodels.tsa.arima_model import ARIMA
2.1导入数据
sale=pd.read_excel('./arima_data.xls',index_col='日期')
sale.head()
销量 | |
---|---|
日期 | |
2015-01-0 |