时间序列:ARIMA

1 ARIMA模型

1.1 ARIMA模型是什么:

全称差分自回归移动平均模型 (Autoregressive Integrated Moving Average Model)

  • 它其实可以拆分为:AR自回归模型、I差分、MA移动平均模型

  • 自回归模型(AR模型) ——》 自己的数据跟自己的数据进行一个相关性的回归分析!

  • 描述当前值与历史值之间的关系,用变量自身的历史事件数据对自身进行预测

  • 自回归模型必须满足平稳性的要求

  • 这里有个模型的参数p
    BXFpYd.png

  • 移动平均模型(MA模型)

  • 移动平均模型关注的是自回归模型中的误差项的累加

  • 移动平均法能有效地消除预测中的随机波动

  • 这里有个模型的参数q
    BXVMUU.png

  • 差分法

  • 时间序列在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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值