时间序列分析框架

来源:互联网 发布:成语接龙作弊软件 编辑:程序博客网 时间:2024/05/18 00:47

目前来讲,其实我们的数据可以分为两种,横截面数据和时间序列数据。这个也很容易理解,因为随着时间的推移,数据本身也会发生变化,如果我们只拿某一时刻的数据出来做分析,就是横截面数据,我们最常接触的众多机器学习算法实际上分析的都是这种数据,因为在其情景下,不需要时间这个特殊的维度。但是另外一种时间序列数据,加入了一种非常特殊的维度,也就是时间,描述的是某一个维度随着时间的变化而变化的情况,时间序列分析常用来做金融二级市场的分析或者其他时间预测性的分析,例如分析趋势等等。

时间序列预处理

我们在拿到一份时间序列数据的时候,同样地,首先也是要对数据做预处理。其目的有两个:

  • 检查数据是否是纯随机数据
  • 检查数据是否为平稳的

下面将对其进行一一介绍:

随机性检验

进行随机性检验的目的很简单,就是因为纯随机数据没有分析的价值。假设我们研究前一时刻的数据和现在时刻有什么关联的时候,如果是纯随机数据的话,这个相关性就是0。当然在实际情况下,肯定不是完全是0,但是会很接近。

随机数据又称为白噪声数据,随机性检查也会被称为白噪声检验。我们可以通过LB检验(Ljung-Box Test)来检查数据的随机性,通过该检验,我们会得到一个p值,如果p值大于显著性水平,则说明需要接受序列是随机的原假设,那么可以停止分析了。

平稳性检验

如果一份时序数据是平稳的,那么它们的:

  • 均值是一个与时间没有关联的常数

也就是说,随着时间的推移,它们的均值是保持不变的,数据在时间推移的过程中围绕着它的均值上下波动

  • 方差是一个与时间没有关联的常数

方差提现的是波动的情况,如果方差也与时间没有关联的话,那么就意味着数据在围绕均值上下波动的范围是一致的

  • 协方差只与时间间隔有关,与时间无关

意思是数据随着时间波动的前后两个波峰或者波谷之间的距离是相等的,他们的距离就是时间的间隔

时间序列模型建立的前提就是数据是平稳的,如果不平稳的话,我们就需要做一些工作去除掉时序数据中的一些东西使其变得平稳。

关于平稳性的检查目前常用的方法有三个:

  1. 时序图检验
  2. 自相关图检验
  3. 单位根检验

其中我个人偏好单位根检验,因为能够得出具体数字结果的检验方法总是比视觉上看图更为可靠一些。单位根检验的主要方法为ADF检验,其原假设为数据序列有单位根(非平稳的)。

差分

如果我们在平稳性检验中得出数据是非平稳的这样的结论,那么我们就需要差分来消除在时序数据中的季节性趋势,时序趋势等等趋势性数据。我们采用特定时间点和其前一个时间的结果的差值来消除趋势的影响。分别对季节性和趋势进行建模,并将其从原始的时序数据中分离出来,分离后得到残差,再对残差进行平稳性检验看是否变成了平稳性数据。

时序模型拟合

自回归过程(Auto Regression):当前值是过去p个值的加权和,加上一个扰动项

移动平均过程(Moving Average):前q个干扰项的加权和,加上一个同期的干扰项

一个是从本身,另一个是从残差来对数据进行不同角度的预测。

将这个两个过程合并起来就是ARMA,自回归移动平均过程。

  1. ARMA过程达到了一种特定的统计均衡状态,特征不随着时间的变化而变化
  2. 对于一个MA过程,MA的多项式的所有根的绝对值大于1

接下来需要找到三个参数:

  • AR的参数p,也就是跟过去的p个时间的数据自相关
  • 差分的参数d
  • MA的参数q,跟过去q个时间的残差有关

我们会有很多种参数的组合,这时可以利用BIC或者AIC来对其进行判断。

原创粉丝点击