美文网首页
时间序列分析

时间序列分析

作者: 格物致知Lee | 来源:发表于2019-02-10 14:07 被阅读0次

    本文的主题是关于时间序列建立ARIMA模型的相关理论解释以及运用Python进行实际建模的详细过程。

    1.自回归模型(AutoRegressive model)

      AR模型是统计上一种处理时间序列的方法,即用同一变量在之前各个时期,x_{1} x_{t-1} 来预测x_{t} 的表现,并假设它们为线性关系。例如用日期20180701\iff 20180801之间每日的PM_{2.5} 浓度预测20180802当日的PM_{2.5} 浓度。因为这是从回归分析中的线性回归发展而来,只是不用x预测y,而是用x预测x
自己,所以叫做自回归。

    数学定义:

    其中:c是常数项,\varepsilon  _{t} 为随机误差,\varphi _{i} 为相关系数

    解释为:X的当期值等于数个往期值的线性组合+常数+随机误差。

    2.移动平均模型(Moving Average model)

      MA模型是指x_{t} 只取决于符合白噪声(E(x) = 0,Var(x) = \sigma ^2 \neq 0)的随机误差过程。移动平均模型描述的是自回归部分的误差累计。

    数学定义:

    其中 :μ 是序列的均值,θ1,..., θq 是参数,εt , εt-1,..., εt−q 都是 白噪声

    3. ARMA(p,q)模型(AutoRegressive Moving Average model)

    ARMA(p,q)模型是AR模型与MA模型的混合,通常的时间序列X_{t} 的当期值取决于X的p个往期值和q个白噪声分布的往期值,也就是说ARMA(p,q)模型中包含了p个自回归项和q个移动平均项。

    数学定义:

    4.自相关函数(Autocorrelation Function)

    ACF是指一个序列x_{t} 自身在不同时间点的互相关,通俗的讲它就是两次观察之间的相似度对它们之间的时间差的函数。例如:

    数学定义:

    其中:K为滞后

    自相关函数图像(自相关图):

    5.偏自相关函数(Partial Correlation Function)

    偏自相关函数图像(偏自相关图):

    6.时间序列建模

    基本流程如图所示:

    6.1 时间序列的平稳性检验

    如果时间序列x_{t} 在某一常数附件波动且波动范围有限,即有常数均值和常数方差,并且延迟K期的序列变量的自相关系数是相等的或者说延迟K期的序列变量之间的影响程度是一样的,则称x_{t} 为平稳序列。平稳性检验的方法有:

    6.1.1 时序图检验

    平稳序列的时序图显示x_{t} 的序列值始终在一个常数附近随机波动,而且波动的范围有界,如果有明显的递增,递减的趋势或周期性则通常不是平稳序列。

    6.1.2 自相关图检验

    平稳序列的自相关系数p_{k} (延迟k期)会比较快的衰减趋向于0,并在0附近小幅度随机波动,而非平稳序列的自相关系数衰减比较慢。

    6.1.3单位根检验(Augmented Dickey-Fuller test)

    ADF检验的原假设是存在单位根,只要这个统计值是小于1%水平下的数字就可以极显著的拒绝原假设,认为数据平稳。注意,ADF值一般是负的,也有正的,但是它只有小于1%水平下的才能认为是及其显著的拒绝原假设。对于ADF结果在1% 以上 5%以下的结果,也不能说不平稳,关键看检验要求是什么样子的。

    python中的 statsmodels.tsa.stattools.adfuller 模块可进行adf校验

    如何确定该序列能否平稳呢?主要看:1%、%5、%10不同程度拒绝原假设的统计值和ADF Test result的比较,ADF Test result同时小于1%、5%、10%即说明非常好地拒绝该假设,本数据中,adf结果为-9, 小于三个level的统计值。P-value是否非常接近0.本数据中,P-value 为 2e-15,接近0,说明该序列为平稳序列。

    6.2 白噪声检验

    白噪声也称为纯随机序列,它的序列值之间没有任何关系,可以停止对该序列的分析。

    即(E(x) = 0,Var(x) = \sigma ^2  \neq 0

    python中的 statsmodels.stats.diagnostic import acorr_ljungbox 模块可以进行白噪声校验

    Ljung–Box检验的原假设是序列为白噪声序列,只要这个统计值是小于5%水平下的数字就可以极显著的拒绝原假设,认为非白噪声序列。

    6.3 时间序列建模

    6.3.1 AR,MA,ARMA模型的选择:

    6.3.2 参数选择

    通过ACF,PACF图像选择ARIMA模型的p,q阶数不是很高效,所以不过多赘述,有兴趣的小伙伴可以留言交流。在实际建模过程中主要通过赤池信息准则(Akaike Information Criterion,AIC)和贝叶斯信息准则(Bayesian Information Criterion,BIC)来进行p,q的选择。

    数学定义:

    其中:k是模型个数,L是似然函数

    从一组可供选择的模型中选择最佳模型时,通常选择AIC最小的模型。留意上述公式当模型复杂度提高(k增大)时,似然函数L也会增大,在没有惩罚向时选择AIC最小的模型容易造成过拟合现象,于是就有了BIC

    数学定义:

    其中:k是模型可是,n是样本数,L是似然函数

    在选择最小BIC模型的过程中,kln(n)惩罚项在维数过大且训练样本数据相对较少的情况下,可以有效避免出现维度灾难现象。

    以上为时间序列建立ARIMA模型的相关理论知识,如果有需要用python建立时间序列模型进行预测的小伙伴的可以上访问我的github:

    https://github.com/Rocky1ee/time-series/blob/master/ARIMA%20Model.ipynb

    小伙伴们如果觉得文章还行的请点个赞呦!!同时觉得文章哪里有问题的可以评论一下  谢谢你!

    相关文章

      网友评论

          本文标题:时间序列分析

          本文链接:https://www.haomeiwen.com/subject/mbbpsqtx.html