目前来讲,其实我们的数据可以分为两种,横截面数据和时间序列数据。这个也很容易理解,因为随着时间的推移,数据本身也会发生变化,如果我们只拿某一时刻的数据出来做分析,就是横截面数据,我们最常接触的众多机器学习算法实际上分析的都是这种数据,因为在其情景下,不需要时间这个特殊的维度。但是另外一种时间序列数据,加入了一种非常特殊的维度,也就是时间,描述的是某一个维度随着时间的变化而变化的情况,时间序列分析常用来做金融二级市场的分析或者其他时间预测性的分析,例如分析趋势等等。
时间序列预处理
我们在拿到一份时间序列数据的时候,同样地,首先也是要对数据做预处理。其目的有两个:
- 检查数据是否是纯随机数据
- 检查数据是否为平稳的
下面将对其进行一一介绍:
随机性检验
进行随机性检验的目的很简单,就是因为纯随机数据没有分析的价值。假设我们研究前一时刻的数据和现在时刻有什么关联的时候,如果是纯随机数据的话,这个相关性就是0。当然在实际情况下,肯定不是完全是0,但是会很接近。
随机数据又称为白噪声数据,随机性检查也会被称为白噪声检验。我们可以通过LB检验(Ljung-Box Test)来检查数据的随机性,通过该检验,我们会得到一个p值,如果p值大于显著性水平,则说明需要接受序列是随机的原假设,那么可以停止分析了。
平稳性检验
如果一份时序数据是平稳的,那么它们的:
- 均值是一个与时间没有关联的常数
也就是说,随着时间的推移,