欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

建模随手记3(1)---时间序列分析

程序员文章站 2024-03-11 10:45:55
...

参考了许多文章,先放到前边。

https://zhuanlan.zhihu.com/p/54799648
https://zhuanlan.zhihu.com/p/38320827
https://zhuanlan.zhihu.com/p/38322638
https://zhuanlan.zhihu.com/p/38322333
https://zhuanlan.zhihu.com/p/38321845
https://yifdu.github.io/2019/04/18/%E6%97%B6%E9%97%B4%E5%BA%8F%E5%88%97%E7%9B%B8%E5%85%B3%E7%AE%97%E6%B3%95%E4%B8%8E%E5%88%86%E6%9E%90%E6%AD%A5%E9%AA%A4/
https://zhuanlan.zhihu.com/p/50170152
http://xtf615.com/2017/03/08/Python%E5%AE%9E%E7%8E%B0%E6%97%B6%E9%97%B4%E5%BA%8F%E5%88%97%E5%88%86%E6%9E%90/
https://zhuanlan.zhihu.com/p/35128342

除此之外还有好多文章,引用到在添加吧。


看了两天的资料,终于对时间序列分析有了微小的认识。在我看来,时间序列分析就是对一段时间的数据进行预测的一种方法,其中对在金融方面应用较多,我查的许多文章都以GDP、股票为例。

在模型求解之前要先记录一些在模型中涉及到的重要概念,之后举例构建模型。

平稳性

主要参考:

https://zhuanlan.zhihu.com/p/50170152
https://zhuanlan.zhihu.com/p/38320827

平稳性主要分为两种,分别为严平稳和弱平稳,在研究时间序列时我们更加专注弱平稳,他要求两个条件:
如果一个时间序列 {rtr_{t}} 满足一下条件,则称为弱平稳:

  1. 对于所有的时刻 tt ,有 E[rt]=μE[r_{t}]=\mu,其中取 μ\mu 是一个常数
  2. 对于所有的时刻 tt 和任意间隔 kkrtr_{t}rtkr_{t-k}的协方差σ(rt,rtk)=γk\sigma(r_{t},r_{t-k})=\gamma_{k},其中γk\gamma_{k}和时间无关,它仅仅依赖间隔kk。特别的,当 k=0k=0 时,这个特征意味着 σ(rt,rt)\sigma(r_{t},r_{t}) 不随时间变化,等于一个与时间 tt 无关的常数 γ0\gamma_{0},这称为方差平稳性。

讲上面两个条件翻译下就是,首先对于时间序列中的元素都是以某一个值为中心变化的,后一句分为两部分,不同间隔的协方差不是时间的函数,意味着变化的拥挤程度不随时间变化(也就是拥挤聚类),对于方差为常数意思是要求序列变化的幅度和时间无关。

自相关性

主要参考:

https://zhuanlan.zhihu.com/p/38320827

自相关性是用来观察某一时刻数据 rtr_{t} 和一定时间间隔 kk 的时刻数据 rtkr_{t-k} 之间的线性依赖关系。

定义:rtr_{t}rtkr_{t-k} 的相关系数称为 rtr_{t} 的 间隔为 kk 的自相关系数。

在弱平稳的假设下,由于协方差与时间无关,而仅仅与间隔有关,之后我们会通过观察相关图来判断我们的模型使用,因为通过相关图我们可以观察该序列在任何间隔有无统计上的显著自相关性。

白噪声(随机噪声)

主要参考

https://zhuanlan.zhihu.com/p/38321845

白噪声有一个重要的特性 - - - 序列不相关。满足平稳性要求,那么当我们的模型构建好之后,可以获得残差的时间序列,如果残差序列接近一个白噪声,也就是说残差序列没有自相关性,那么我们的模型拟合效果很好,如果残差序列还存在显著的自相关性,说明在拟合过程中我们还有因素没有考虑。
因此在构建完模型之后需要利用白噪声进行残差检验。

自回归模型(AR)

主要参考:

https://zhuanlan.zhihu.com/p/38322333

自回归模型预测是通过参考预测点之前的元素来获得预测值的,也就是说在模型中的变量使时间序列本身,以下是一个 pp 阶自回归模型。

rt=α1rt1+α2rt2+...+αprtp+wt r_{t}=\alpha_{1}r_{t-1}+\alpha_{2}r_{t-2}+...+\alpha_{p}r_{t-p}+w_{t}
pp 阶的意思使模型使用当前时刻 tt 之前的 pp 个观测值作为自变量对 rtr_{t} 进行预测,因此该模型可以理解为使用 tt 时刻前 pp 个元素的线性组合以及一个随机误差 wtw_{t} 来预测下一个元素的值。

滑动平均模型(MA)

滑动平均(moving average)模型是另一个常见的线性时间序列模型。在自回归模型中,我们将收益率 rtr_{t} 看作是给定阶数 qq 下历史收益率序列的线性组合。与自回归模型不同,滑动平均模型将收益率 rtr_{t} 看作是历史白噪声的线性组合。

数学上,满足如下关系的时间序列 rtr_{t} 被称为一个 qq 阶的滑动平均模型(为了简化表达式,我们假设漂移率项为 0,即该模型不考虑截距项),记为 MA(q)MA(q) 模型:
rt=wt+β1wt1+β2wt2+...+βqwtq r_{t}=w_{t}+\beta_{1}w_{t-1}+\beta_{2}w_{t-2}+...+\beta_{q}w_{t-q}

自回归平滑模型(ARMA)

该模型就是将一个 pp 阶的AR模型和一个 qq 阶的MA模型结合起来,所得到的一个新的线性表达。更为复杂,参数更多。

rt=wt+β1wt1+β2wt2+...+βqwtq+α1rt1+α2rt2+...+αprtp+wt r_{t}=w_{t}+\beta_{1}w_{t-1}+\beta_{2}w_{t-2}+...+\beta_{q}w_{t-q}+\alpha_{1}r_{t-1}+\alpha_{2}r_{t-2}+...+\alpha_{p}r_{t-p}+w_{t}


以上三个模型均需要确定阶数,有AIC和BIC两种方法,这里不再讲解原理,之后编码会有体现。

相关标签: 随手记