如何深入理解时间序列分析中的平稳性

2024-05-11 04:11

1. 如何深入理解时间序列分析中的平稳性

声明:本文中所有引用部分,如非特别说明,皆引自Time Series Analysis with Applications in R.

接触时间序列分析才半年,尽力回答。如果回答有误,欢迎指出。

对第一个问题,我们把它拆分成以下两个问题:

Why stationary?(为何要平稳?)
Why weak stationary?(为何弱平稳?)

Why stationary?(为何要平稳?)
每一个统计学问题,我们都需要对其先做一些基本假设。如在一元线性回归中(),我们要假设:①不相关且非随机(是固定值或当做已知)②独立同分布服从正态分布(均值为0,方差恒定)。

在时间序列分析中,我们考虑了很多合理且可以简化问题的假设。而其中最重要的假设就是平稳。
The basic idea of stationarity is that the probability laws that govern the behavior of the process do not change over time.
平稳的基本思想是:时间序列的行为并不随时间改变。
正因此,我们定义了两种平稳:
Strict stationarity: A time series {} is said to be strictly stationary if the joint distribution of ,, · · ·, is the same as that of,, · · · ,for all choices of natural number n, all choices of time points ,, · · · ,  and all choices of time lag k.
强平稳过程:对于所有可能的n,所有可能的,, · · · , 和所有可能的k,当,, · · ·,的联合分布与,, · · · ,相同时,我们称其强平稳。
Weak stationarity: A time series {} is said to be weakly (second-order, or co-variance) stationary if:
① the mean function  is constant over time, and
② γ(t, t − k) = γ(0, k) for all times t and lags k.
弱平稳过程:当①均值函数是常数函数且②协方差函数仅与时间差相关,我们才称其为弱平稳。
此时我们转到第二个问题:Why weak stationary?(为何弱平稳?)
我们先来说说两种平稳的差别:

两种平稳过程并没有包含关系,即弱平稳不一定是强平稳,强平稳也不一定是弱平稳。
一方面,虽然看上去强平稳的要求好像比弱平稳强,但强平稳并不一定是弱平稳,因为其矩不一定存在。
例子:{}独立服从柯西分布。{}是强平稳,但由于柯西分布期望与方差不存在,所以不是弱平稳。(之所以不存在是因为其并非绝对可积。)
另一方面,弱平稳也不一定是强平稳,因为二阶矩性质并不能确定分布的性质。
例子:,,互相独立。这是弱平稳却不是强平稳。

知道了这些造成差别的根本原因后,我们也可以写出两者的一些联系:

一阶矩和二阶矩存在时,强平稳过程是弱平稳过程。(条件可简化为二阶矩存在,因为)
当联合分布服从多元正态分布时,两平稳过程等价。(多元正态分布的二阶矩可确定分布性质)

而为什么用弱平稳而非强平稳,主要原因是:强平稳条件太强,无论是从理论上还是实际上。
理论上,证明一个时间序列是强平稳的一般很难。正如定义所说,我们要比较,对于所有可能的n,所有可能的,, · · · , 和所有可能的k,当,, · · ·,的联合分布与,, · · · ,相同。当分布很复杂的时候,不仅很难比较所有可能性,也可能很难写出其联合分布函数。
实际上,对于数据,我们也只能估算出它们均值和二阶矩,我们没法知道它们的分布。所以我们在以后的模型构建和预测上都是在用ACF,这些性质都和弱项和性质有关。而且,教我时间序列教授说过:"General linear process(weak stationarity, linearity, causality) covers about 10% of the real data." ,如果考虑的是强平稳,我觉得可能连5%都没有了。

对第二个问题:
教授有天在审本科毕业论文,看到一个写金融的,用平稳时间序列去估计股票走势(真不知这老兄怎么想的)。当时教授就说:“金融领域很多东西之所以难以估计,就是因为其经常突变,根本就不是平稳的。”
果不其然,论文最后实践阶段,对于股票选择的正确率在40%。连期望50%都不到(任意一点以后要么涨要么跌)。

暑假里自己用了一些时间序列的方法企图开发程序性交易程序。
刚开始收益率还好,越往后就越...后面直接亏损了...(软件是金字塔,第二列是利润率)

亏损的图当时没截,现在也没法补了,程序都删了。
所以应该和平稳没关系吧,毕竟我的做法也没假设是平稳的。如果平稳我就不会之后不盈利了。
(吐槽)自己果然不适合做股票、期货什么的...太高端理解不能...

以上

如何深入理解时间序列分析中的平稳性

2. 如何深入理解时间序列分析中的平稳性

平稳不只是对很多实际过程的「简化」,还是我们的「追求」,是一条时间序列里面长期稳定不变的某些规律,是基本模型。

当面对不平稳的过程的时候,我们首先会想着去把这样的过程变换成平稳的,找出里面相对更不随时间变化的、更「平稳」的那些东西来,更平稳的序列有更低的 Order of integration 。当然,找出这些不变的(或者相对更平稳的)东西来之后,并不代表就一定可以获得真正意义上的预测能力。

举两个例子:

股票绝对价格的涨跌显然不能满足正态分布,Bachelier (1900) 当时就犯了这样的错误。当序列被 Osborne 处理过之后:,开始关注相对变化,这个序列才变得更「平稳」了。

反复做差分变换 ,直到时间序列变得「平稳」为止,做的差分变换的次数即为 Order of integration 。一条时间序列整体随时间变化的趋势消除,因而可以关注一些在整体变化之外的那些涨落,序列也因此变得相对更「平稳」。关于差分变换直至「平稳」的一个好例子就是「抑制了房价」「抑制了房价的增长」「抑制了房价增长的势头」「抑制了房价过快增长的势头」——经过多次差分变换,直到最终「抑制……增长」,得到了一条平稳的时间序列。

关于强平稳和弱平稳的差别:

强平稳是事实上的平稳(同分布);

弱平稳是统计量在观测意义上的平稳(均值、方差)。


第二个问题,均衡跟稳定没有关系。

国家规定了某个商品的价格,这情况完全不均衡,但是巨稳定。
一般均衡达到稳定,跟时间序列的稳定性还是两码事,例如矩可能不存在;又例如我选择的时间序列的时间间隔尺度远小于市场发生响应达到稳定的均衡的时间尺度,得到的序列还是可能是不稳定的。

3. 如何深入理解时间序列分析中的平稳性

通过对时间序列分析的整体感觉整体关照,自然可以做出这样的理论表述。
从时间序列分析自身的内涵可以这样认为,时间序列分析具有平稳性。
时间序列分析的一种平稳随机序列作为其基础,由此可以认为平稳性是时间序列分析重要特点。
从时间序列分析的原理承认事物发展的延续性同时考虑事物发展的随机性,是在两者之间取得平衡以实现其平稳性。

如何深入理解时间序列分析中的平稳性

4. 时序分析

我们用机器学习模型通过对历史数据来学习拟合,从而来对未来进行预测。这次分享我们主要以传统
  
 主要从这三个方面来展开对时序分析
  
 时序分析是一个比较有特点研究领域,这个领域始于对金融业,例如股市趋势预测、投资风险评估。后来有渗透到其他领域,对未来市场预测、动态定价、用电量预测以及在生物医药也有其一席之地。
  
   
  
 数学定义一般都是比较简短、严谨和抽象的语言来描述一个概念。按时间序列排序的一组随机数变量.
     
   表示一个随机事件的时间序列,简记为  
  
 在时序预测中,每一个数据也就是我们看到的数值其实都是一个随机变量的观察值,随机变量服从一定分布。其实我们看到值也可以称为观察值其实是时间随机序列的一个实现,或者叫做实例,所有我们看到历史数据就是随机时间序列一组样本。
  
 其实我们通过分析来把握这个随机时序的性质
  
 因为我们知道每一个点都是服从整体分布。只要我们通过数据得到这些随机时序的性质,也就是掌握随机变量的模样。其实就是一个数理统计过程,也有点类似机器学习中生成模型。
  
 其实上面就简述了时间序列任务总体方案
  
 有了整体方案,我们一步一步按照这些步骤去去做,然后把需要填填上就完成时序预测。
  
 上面内容一看任务的关键步骤就是时间序列分析,那么什么是时间序列分析呢?一句话时间序列分析就是对时间序列进行统计分析。
  
 那么具体分析方法有那些呢?主要有两种,分别是描述性时序分析和统计时序分析。
                                          
 时间序列分析理论中有两种平稳性定义
  
 所谓严就是说严平稳的所有统计性质都不随时间的变化而变化。这是严平稳性质也是严平稳的定义.
   以后我们对于一些概念都可以尝试用数学语言描述一下,
     
  
 也称协方差平稳(covariance stationary)、二阶平稳(second-order stationary)或宽平稳(wide-sense stationary),弱平稳时间序列的一阶矩和二阶矩不随时间的变化而变化。
  
 判断时间序列的平稳性有助随后选择模型,那么的平稳性是时间序列一个重要性质,可以用来给时间序列进行分类。
  
 我们会谈谈严平稳和弱平稳之间的关系,满足严平稳的序列具有弱平稳性,但是严平稳并不能全部涵盖弱平稳。为什么说严平稳并不能全部涵盖弱平稳?这是因为柯西分布是严平稳时间序列,但是不存在二阶矩或一阶矩,所以柯西分布就是不满足弱平稳的严平稳。
  
 当时间序列为正态分布序列,则由二阶矩描述了正态分布的所有统计性质,此时弱平稳的正态序列也是严平稳。
  
 因为在实际中多数时间序列都是弱平稳,所以今天我们也要重点谈谈弱平稳。
  
 如果时间序列  的二阶矩有限
     
   我们看随着时间变化,时间序列的均值是一个常数。
     
   方差同均值一样也是常数,方差是二阶矩
     
   协方差也是二阶矩,不同时刻的点是否有规律性,因为弱平稳的协方差或者准确地说自协方差是一个时间间隔的函数。当时间间隔协方差是相当的,当间隔不相同的时候对应协方差就不相同,当 s 变化     就会变化
  
 其实我们就是在找  和  之间的关系,这里用    s 表示不同的时间间隔,例如  
  
 那么也就是说弱平稳时间序列的自协方差只与时滞 s 有关,与时间的起始位置 t 无关。
  
 自协方差  简记为仅与时滞s 相关的一元函数形式   当   时,   就等同于方差
     
   平稳时间序列的自相关系数也可以简记为与时滞 s 相关的一元函数形式  
     
  
   
  
 如果一个模型生成时间序列是平稳的,那么就说明该模型是平稳,否则就是非平稳的
  
 这里有一段话大家可以理解一下,AR、MA和ARMA模型都是常用的平稳序列的拟合模型,但并非所有的AR、MA和ARMA模型都是平稳的。
  
 好我们回到线性差分方程,我们重点说一下差分方程两种表达方式,其中我们先说一下什么是滞后算子。
   假设已知时间序列   和    有如下关系
     
   其实就是我们不用  来表示  是的y 而表达成为   就是我们在程序中看到 lag 也有用 B 表示的,以此类推
     
   所以用滞后算子表达出多项式
     
  
   
  
 典型的 p 阶线性差分方程为
     
                                          
 今天我们主要说时间序列的一些推导公式,之前看些资料,其中关于时间序列中常用AR模型、MA模型背后推导说的比较深,不易于理解。最近看了一些资料,适当地总结一些。
  
 时间序列虽然简单、但是要是想真正弄懂也需要花费一些功夫,将序列分解为一下形式。
     
  
 这通过加法模型将这些项来表示时间序列,其中趋势项和季节项我们是可以通过模型来拟合,因为他们都是有规律可循的,需要我们能够通过模型学出来
  
   
   GPD 就是一个趋势模型,而且是随着时间而不断成指数增长。
  
 超市的人流,具有周期性,每周的人流在周末人流要相对于周一到周五人要多一些。每天人流下午要相对于上午人流要多一些。
  
   
   那么也就是说明我们对    ,我们之前讨论过时间序列是一个随机过程,也就是   的联合分布,通常我们研究一个联合分布是一个比较复制的问题。
   这是我们在统计模型时候,最早的NPL 分析用到链式法则来表示联合概率一种
     
   学习过概都知道条件概率,时序每一个时刻随机变量都是和他之前的随机时间点的概率是相关。这就是联合概率,要计算这个联合概率是需要相当大的计算量。
  
   
  
   
   当 a 小于 1 说明模型是稳定,反之说明模型是不稳定,为什么会有这样结论。我们可以结合小球的落地原理来项这个问题。
   其实我们非齐次项差分方程
     
   下面是差分方程通解
     
     
   其中 B 也即是滞后算子L,这里用 B 来表示,这里还是再演示一下吧
     
     
   接下来计算特征解,提取左边  
     
     
  
   
     
   可以表示无限变量只和形式,这个大家应该不会陌生,而且   类似  ,所以替换替换等比数列之和。
     
  
   
  
   
  
 重点相关性研究  和  可以用  计算出来。AR序列相关性是随着负指数衰减,MA(q) 模型是有限相关性,
      有限时间序列相关  
  
 根据均方差最小原则,来进行预测
     
   也就是我们讨论的AR模型,那么AR模型就可以用于时间序列分析
     
  
    这样时间序列步长间隔相同间分布是一致,这样时间序列才是平稳的时间序列。线性filter
  
   
   这是研究时间序列另一种模型,通过频域来研究时间序列

5. 如何深入理解时间序列分析中的平稳性

声明:本文中所有引用部分,如非特别说明,皆引自Time Series Analysis with Applications in R.

接触时间序列分析才半年,尽力回答。如果回答有误,欢迎指出。

对第一个问题,我们把它拆分成以下两个问题:

Why stationary?(为何要平稳?)
Why weak stationary?(为何弱平稳?)

Why stationary?(为何要平稳?)
每一个统计学问题,我们都需要对其先做一些基本假设。如在一元线性回归中(),我们要假设:①不相关且非随机(是固定值或当做已知)②独立同分布服从正态分布(均值为0,方差恒定)。

在时间序列分析中,我们考虑了很多合理且可以简化问题的假设。而其中最重要的假设就是平稳。
The basic idea of stationarity is that the probability laws that govern the behavior of the process do not change over time.
平稳的基本思想是:时间序列的行为并不随时间改变。
正因此,我们定义了两种平稳:
Strict stationarity: A time series {} is said to be strictly stationary if the joint distribution of ,, · · ·, is the same as that of,, · · · ,for all choices of natural number n, all choices of time points ,, · · · ,  and all choices of time lag k.
强平稳过程:对于所有可能的n,所有可能的,, · · · , 和所有可能的k,当,, · · ·,的联合分布与,, · · · ,相同时,我们称其强平稳。
Weak stationarity: A time series {} is said to be weakly (second-order, or co-variance) stationary if:
① the mean function  is constant over time, and
② γ(t, t − k) = γ(0, k) for all times t and lags k.
弱平稳过程:当①均值函数是常数函数且②协方差函数仅与时间差相关,我们才称其为弱平稳。
此时我们转到第二个问题:Why weak stationary?(为何弱平稳?)
我们先来说说两种平稳的差别:

两种平稳过程并没有包含关系,即弱平稳不一定是强平稳,强平稳也不一定是弱平稳。
一方面,虽然看上去强平稳的要求好像比弱平稳强,但强平稳并不一定是弱平稳,因为其矩不一定存在。
例子:{}独立服从柯西分布。{}是强平稳,但由于柯西分布期望与方差不存在,所以不是弱平稳。(之所以不存在是因为其并非绝对可积。)
另一方面,弱平稳也不一定是强平稳,因为二阶矩性质并不能确定分布的性质。
例子:,,互相独立。这是弱平稳却不是强平稳。

知道了这些造成差别的根本原因后,我们也可以写出两者的一些联系:

一阶矩和二阶矩存在时,强平稳过程是弱平稳过程。(条件可简化为二阶矩存在,因为)
当联合分布服从多元正态分布时,两平稳过程等价。(多元正态分布的二阶矩可确定分布性质)

而为什么用弱平稳而非强平稳,主要原因是:强平稳条件太强,无论是从理论上还是实际上。
理论上,证明一个时间序列是强平稳的一般很难。正如定义所说,我们要比较,对于所有可能的n,所有可能的,, · · · , 和所有可能的k,当,, · · ·,的联合分布与,, · · · ,相同。当分布很复杂的时候,不仅很难比较所有可能性,也可能很难写出其联合分布函数。
实际上,对于数据,我们也只能估算出它们均值和二阶矩,我们没法知道它们的分布。所以我们在以后的模型构建和预测上都是在用ACF,这些性质都和弱项和性质有关。而且,教我时间序列教授说过:"General linear process(weak stationarity, linearity, causality) covers about 10% of the real data." ,如果考虑的是强平稳,我觉得可能连5%都没有了。

对第二个问题:
教授有天在审本科毕业论文,看到一个写金融的,用平稳时间序列去估计股票走势(真不知这老兄怎么想的)。当时教授就说:“金融领域很多东西之所以难以估计,就是因为其经常突变,根本就不是平稳的。”
果不其然,论文最后实践阶段,对于股票选择的正确率在40%。连期望50%都不到(任意一点以后要么涨要么跌)。

暑假里自己用了一些时间序列的方法企图开发程序性交易程序。
刚开始收益率还好,越往后就越...后面直接亏损了...(软件是金字塔,第二列是利润率)

亏损的图当时没截,现在也没法补了,程序都删了。
所以应该和平稳没关系吧,毕竟我的做法也没假设是平稳的。如果平稳我就不会之后不盈利了。
(吐槽)自己果然不适合做股票、期货什么的...太高端理解不能...

如何深入理解时间序列分析中的平稳性

6. 如何深入理解时间序列分析中的平稳性

声明:本文中所有引用部分,如非特别说明,皆引自Time Series Analysis with Applications in R.

接触时间序列分析才半年,尽力回答。如果回答有误,欢迎指出。

对第一个问题,我们把它拆分成以下两个问题:

Why stationary?(为何要平稳?)
Why weak stationary?(为何弱平稳?)

Why stationary?(为何要平稳?)
每一个统计学问题,我们都需要对其先做一些基本假设。如在一元线性回归中(),我们要假设:①不相关且非随机(是固定值或当做已知)②独立同分布服从正态分布(均值为0,方差恒定)。

在时间序列分析中,我们考虑了很多合理且可以简化问题的假设。而其中最重要的假设就是平稳。
The basic idea of stationarity is that the probability laws that govern the behavior of the process do not change over time.
平稳的基本思想是:时间序列的行为并不随时间改变。
正因此,我们定义了两种平稳:
Strict stationarity: A time series {} is said to be strictly stationary if the joint distribution of ,, · · ·, is the same as that of,, · · · ,for all choices of natural number n, all choices of time points ,, · · · ,  and all choices of time lag k.
强平稳过程:对于所有可能的n,所有可能的,, · · · , 和所有可能的k,当,, · · ·,的联合分布与,, · · · ,相同时,我们称其强平稳。
Weak stationarity: A time series {} is said to be weakly (second-order, or co-variance) stationary if:
① the mean function  is constant over time, and
② γ(t, t ? k) = γ(0, k) for all times t and lags k.
弱平稳过程:当①均值函数是常数函数且②协方差函数仅与时间差相关,我们才称其为弱平稳。
此时我们转到第二个问题:Why weak stationary?(为何弱平稳?)
我们先来说说两种平稳的差别:

两种平稳过程并没有包含关系,即弱平稳不一定是强平稳,强平稳也不一定是弱平稳。
一方面,虽然看上去强平稳的要求好像比弱平稳强,但强平稳并不一定是弱平稳,因为其矩不一定存在。
例子:{}独立服从柯西分布。{}是强平稳,但由于柯西分布期望与方差不存在,所以不是弱平稳。(之所以不存在是因为其并非绝对可积。)
另一方面,弱平稳也不一定是强平稳,因为二阶矩性质并不能确定分布的性质。
例子:,,互相独立。这是弱平稳却不是强平稳。

知道了这些造成差别的根本原因后,我们也可以写出两者的一些联系:

一阶矩和二阶矩存在时,强平稳过程是弱平稳过程。(条件可简化为二阶矩存在,因为)
当联合分布服从多元正态分布时,两平稳过程等价。(多元正态分布的二阶矩可确定分布性质)

而为什么用弱平稳而非强平稳,主要原因是:强平稳条件太强,无论是从理论上还是实际上。
理论上,证明一个时间序列是强平稳的一般很难。正如定义所说,我们要比较,对于所有可能的n,所有可能的,, · · · , 和所有可能的k,当,, · · ·,的联合分布与,, · · · ,相同。当分布很复杂的时候,不仅很难比较所有可能性,也可能很难写出其联合分布函数。
实际上,对于数据,我们也只能估算出它们均值和二阶矩,我们没法知道它们的分布。所以我们在以后的模型构建和预测上都是在用ACF,这些性质都和弱项和性质有关。而且,教我时间序列教授说过:"General linear process(weak stationarity, linearity, causality) covers about 10% of the real data." ,如果考虑的是强平稳,我觉得可能连5%都没有了。

对第二个问题:
教授有天在审本科毕业论文,看到一个写金融的,用平稳时间序列去估计股票走势(真不知这老兄怎么想的)。当时教授就说:“金融领域很多东西之所以难以估计,就是因为其经常突变,根本就不是平稳的。”
果不其然,论文最后实践阶段,对于股票选择的正确率在40%。连期望50%都不到(任意一点以后要么涨要么跌)。

暑假里自己用了一些时间序列的方法企图开发程序性交易程序。
刚开始收益率还好,越往后就越后面直接亏损了(是金字塔,第二列是利润率)

亏损的图当时没截,现在也没法补了,程序都删了。
所以应该和平稳没关系吧,毕竟我的做法也没假设是平稳的。如果平稳我就不会之后不盈利了。
(吐槽)自己果然不适合做股票、期货什么的太高端理解不能

以上

7. 如何深入理解时间序列分析中的平稳性

两种平稳过程并没有包含关系,即弱平稳不一定是强平稳,强平稳也不一定是弱平稳。
一方面,虽然看上去强平稳的要求好像比弱平稳强,但强平稳并不一定是弱平稳,因为其矩不一定存在。
例子:{}独立服从柯西分布。{}是强平稳,但由于柯西分布期望与方差不存在,所以不是弱平稳。(之所以不存在是因为其并非绝对可积。)
另一方面,弱平稳也不一定是强平稳,因为二阶矩性质并不能确定分布的性质。

如何深入理解时间序列分析中的平稳性

8. 时间序列的平稳性

 并不是所有的时间序列都是可预测的,想象一下,假如一个时间序列的变化特性是不稳定的,那么它每个时期的波动对于之后一个时期的变化的影响都是无法预测的,因为它随时可能变脸。而当一个时间序列的变化特征维持稳定,数据的历史分布和未来分布就会趋于一致,这时我们就可以根据历史数据对未来作出预测。用来刻画数据变化特征稳定的量就是时间序列的平稳性。
                                           
   
                                           如果图像没有明显的趋势,围绕着一个水平线稳定波动,序列传播没有明显的疏密变化,则可以判定为稳定序列。当然这种方法过于主观,还是需要更为严密的统计学检验。
   观察图像的方式很直观,但也很主观,不适用于机器自动判断序列的稳定性。因此我们需要一个更有说服力、更加客观的统计方法来帮助我们检验时间序列的平稳性,这种方法,就是单位根检验。
   当一个时间序列的滞后算子多项式方程 存在单位根时 ,我们认为该时间序列是 非平稳 的;反之,当该方程 不存在单位根 时,我们认为该时间序列是 平稳 的。其原理比较复杂,想要理解它需要较好的数学基础,这里我们只关注在Python中如何使用。
   常见的单位根检验方法有 DF检验 、 ADF检验 和 PP检验 ,这里演示如何使用最常用的ADF检验。   (1)Python中的statsmodels库提供ADF检验函数,使用时需要引入    from statsmodels.tsa.stattools import adfuller as ADF 
   (2)具体函数如下:    statsmodels.tsa.stattools.adfuller(x, maxlag=None, regression='c', autolag='AIC', store=False, regresults=False) 
   (3)返回值解析:   (-5.2350403606036302, 7.4536580061930903e-06, 0, 60, {'1%': -3.5443688564814813, '5%': -2.9110731481481484, '10%': -2.5931902777777776}, 1935.4779504450603)