ARIMA模型群是最经典的统计学时序模型,也是最经典的、适用于单变量时间序列数据的模型。
AR(自回归)模型
基本思想与假设
基本思想:
1.一个时间点上的标签值一定是由之前时间点上的标签值所决定的
基本假设:
1.不同时间点之前的标签值之间强相关
2.俩个时间点之间相隔越远,相互之间的影响越弱
数学公式
朴实无华
其中𝑦𝑡表示在时间点𝑡时的标签(训练时这里使用真实标签,预测时这里输出预测标签),𝑦𝑡−1则表示在时间点𝑡的前一个时间点𝑡−1时的标签值。我们可以根据不同的场景规定𝑡与𝑡−1之间具体的时间间隔大小,但在同一个时间序列中,𝑡与𝑡−1之间的间隔一定是等同于𝑡−𝑛与𝑡−(𝑛−1)之间的间隔的。在该公式中,不同的系数𝛽乘在每一个时间点的数值之前,表示不同历史时间点的真实标签值以不同的方式影响着当前/未来时间点𝑡的真实标签值。该公式与多元线性回归的方程非常类似。
需要注意的是,该公式中包含两个常数项:𝑐和𝑧𝑡。其中,𝑐是线性方程中惯例存在的常数项(可以为0),而𝑧𝑡则代表当前时间点下无法被捕捉到的某些影响,也就是白噪音。在统计学/数据挖掘领域中,白噪音相当于是随机变量,独立于任何已经获取的样本或标签数据,因此在时间序列中,白噪音代表着当下时间点可能发生的一切影响标签数值的偶然事件,也常常用𝜖𝑡或者𝑒𝑡来表示。
白噪声序列在不同的场景下有着不同的定义,时间序列预测中,在最严格的条件下,均值为0,方差为特定𝜎2,服从正态分布内部的序列才是白噪声序列
由于c和zt都是常数,因此俩个也可以合并在一起形成
我们又称上述公式为p阶自回归模型,记为AR(p)
模型训练
利用最小二乘法,极大似然估计这些估计参数的方法都可以,跟多元线性回归那部分没什么区别
模型求解
求解有一丢丢区别,不断的将预测值作为自变量代入方程预测后面日期的值(所以第一次预测的不准就寄了,后面越来越偏)
MA(移动平均)模型
基本思想与假设
基本思想:
承认时间点上的标签值收到过去的影响,但是这个影响不是过去的标签值,而是过去的一系列偶然事件,他认为如果没有这些偶然事件,那么标签值就应该是个常数,有了这些偶然事件,标签值才会变化波动
基本假设:
1.时间序列的长期趋势与时间序列的短期波动受不同因素的影响
2.不同时间点上的标签值是关联的,但各种偶然事件在不同时间点上产生的影响是相互独立的
数学公式
(同样朴实无华)
公式中的𝑦𝑡表示在时间点𝑡时的标签值,𝜇表示当前时间序列标签的均值,𝜖𝑡则表示在时间点𝑡时、不可预料、不可估计的偶然事件的影响,𝜖𝑡−1则代表在时间点𝑡−1时不可预料的、不可估计的偶然事件的影响。
由于偶然事件是无法被预料的、偶然事件带来的影响也是无法被预估的,因此MA模型使用预测标签与真实标签之间的差异就来代表“无法被预料、无法被估计、无法被模型捕捉的偶然事件的影响”。MA模型相信这些影响累加起来共同影响下一个时间点的标签值,因此𝑦𝑡等于所有𝜖的线性组合。
模型训练
不能跟之前一样上来直接最小二乘法了,因为你根本求不出你的预测值,你右边式子的参数没一个是知道的(既不知道均值,也不知道前几天偶然事件对前几天影响,也不知道前几天偶然事件对今天的影响)
结合最小二乘法和优化算法进行求解参数
1.先初始化全部𝜖,利用该天的真实值-全部标签值的均值作为𝜖的初始值,𝜖0给0.05
2.定义目标函数:将残差平方和作为目标函数
3.利用梯度下降等优化算法使得目标函数最小化,找到最适合的参数
模型求解
ARIMA模型
AR模型相信历史决定未来因此很大程度上忽略了现实情况的复杂性,也忽略了真正影响标签的银子带来的不可预料的影响,MA模型相信时间序列一直相对稳定,波动是由偶然因素造成的,但现实种的时间序列怎么可能一直维持稳定,基于此,ARIMA模型将俩者进行综合
基本思想与假设
一个时间点上的标签值既受到过去一段时间内的标签值影响,也受到过去一段时间内偶然事件的影响,标签值是围绕着时间的大趋势波动的,趋势是受到历史标签影响的,波动是受到一段时间内的偶然事件影响的,大趋势本身不一定稳定
数学公式
前半段AR,后半段MA,ARIMA(p,d,q)p,q含义与原始的相同,d是ARIMA模型需要的差分的阶数,
差分
差分运算要考虑到差分的阶数(多次执行一阶差分)和差分的滞后(隔几个减),现实生活种,差分一般阶数不会太高,ARIMA模型种,超参数d最常用的取值0,1,2
带滞后的差分也被叫做多步差分,例如滞后为2就叫做2步差分
多步差分有什么意义(消除周期性的波动)(如果周期是一周,那么我们滞后7),消除周期性的波动有什么意义,使数据更加平稳,舍去部分信息,提炼出剩下的信息供模型使用
ARIMIA模型就是1步差分,多步差分就是SARIMA模型了
ARIMA模型平稳性要求
输入ARIMA模型的时间序列数据必须是平稳的,
在统计学上,平稳时间序列的定义:在一段时间序列种,无论时间如何变换,该序列的标签值的统计特性不变,如均值,方差,协方差等(要求好严格)
为什么有这么一个要求,因为只有在平稳的数据上,过去的规律才可以被推广到任意未来的时间段中去使用,奠定了我们训练模型预测未来的基础
如何判断是否平稳:
1.可以通过大致绘制图像来辨别数据是否满足统计学上要求的稳定性,
2.可以对时序数据进行统计后绘制直方图,计算不同时间区间中的均值和方差,并观察这些均值和方差是否存在明显差异,如果差异大,那么大概率不平稳
3.做统计检验:在时间序列上完成DF,ADF,PP等单位根检验
模型阶数确定
通过ACF和PACF图来判断,PACF用于确定AR模型的p值,ACF用于确定MA模型的q值
自相关系数ACF:衡量了当前时间点上的观测值和任意历史时间点的观测值之间的相关性大小
偏自相关系数PACF:衡量了当前时间点上的观测值与任意历史时间点的观测值之间的直接相关性大小
相关性和直接相关性有什么不同?
举个例子,day1,day2,day3这三天,day1的值是如何影响到day3的,我们之前提到过,时间序列的基本原则是过去影响未来,因此,day1既可以是直接影响到day3,也可以是day1通过影响到day2,然后day2将这种影响传递给day3,也可以是俩者都有,
因此PACF只关心day1直接影响到day3这种情况,ACF不关心你是怎么影响的,只要你影响了,ACF就关心,关心的是多种影响方式带来的综合效应
做滞后运算然后计算PACF和ACF
然后根据PACF和ACF图来判断阶数,如何判断,选出显著的ACF和PACF的阶数
ACF和PACF图的三种常见的形态
拖尾
说明此时原始序列中的样本严格遵循久远的历史对未来的影响更弱,更近的历史对未来的影响更强,像这种时间序列是可以用较为简单的模型来建模的
截尾
断崖式下跌,说明只有非常少的日子会对未来有影响,因此p,q也会很小
既不拖尾也不截尾
不能从ACF和PACF中提取什么了,需要使用复杂的模型
ACF计算最常见的就是直接拿pearson相关系数来用
超参数p,q,d的确定
acf拖尾,pacf截尾:AR模型,pacf截尾的滞后阶数就是超参数p值
pacf拖尾,acf截尾:MA模型,acf截尾的滞后阶数就是超参数q值
如果都不拖尾,无论图像是否截尾,那么时间序列都适用ARIMA模型,此时acf图像和pacf图像不能帮我们判断出p,q取值了
如果用ARIMA模型,如何确定p,q值,最好的方法,一个个试,从p=1,q=1开始试,直到模型通过检验或达到我们的要求,一般试到5,d呢,d一般为0,1,2,3
在选择d时,我们往往从1,2,3阶中选择方差最小,差分后数据噪音程度较低的阶数,尽量避免过差分
时间序列的评估指标
1.回归类型的评估指标
2.AIC赤池信息准则,BIC,HQIC
AIC计算公式如下
L可以被认为是当前模型的积极性评估指标(模型越好,评估指标越高),大部分我们使用的是极大似然估计结果MLE,k则代表该模型中需要被估计的参数量
AIC是一个越小越好的指标,可以判断模型的效率和质量
只能用于多个模型比较才能判断好不好
时序交叉验证保证泛化能力,如果数据量小,无法完成交叉验证,那当前模型的整体泛化能力是值得怀疑的,但如何你能通过统计学中各种复杂的检验,那模型的泛化能力还是认可的
ARIMA模型运用流程
1.绘制时序图像,观察是否存在异常值,理解图像的形状和趋势
2.让数据的方差稳定下来(BOX-COX正态化)(可不做,除非数据很诡异,数据呈现一个混乱趋势)
3.手动决定阶数/库自动确定阶数,库自动确定阶数的话直接跳到4,如果是手动确定阶数的话
3.1.使用单位根检验确定数据的平稳性,如果数据不稳定使用差分直到数据通过单位根检验
3.2.绘制ACF/PACF图确定超参数值
3.3.设置多组超参数,使用图像/AIC/系数显著性等指标选出最佳模型
4.对最终输出模型的残差序列r做混成检验,并绘制残差r的图像,确定残差分布与白噪音接近
如果检验通过,则输出,检验不通过,重新确定超参数(检验始终过不了的话,那么我们假装不知道这一步)