Python量化投资基础:时间序列的平稳性检验

主要内容:

1. 自相关性和自相关系数

2. 强平稳和弱平稳

3. Python平稳性检验实战

重要性:10分 (1-10)。

时间序列数据的平稳性对于我们采用什么样的分析方式、选择什么样的模型有着至关重要的影响。

我们想一下,假如一个时间序列的波动趋势从来没有稳定过,那么它每个时期的波动对于之后一段时期的影响都是无法预测的,因为它随时可能“变脸”。而当一个时间序列的特征维持稳定,比如它的均值和方差是稳定的,那么我们认为在之后的一段时间里,它的数据分布跟历史的数据分布大概率是保持一致的,这时,我们就可以基于历史数据对未来的走势做一个预测,这能帮助我们找到更大概率成功的决策。

股票数据,就是极为常见的一种时间序列数据。在量化过程中应用时间序列分析手段时,我们往往需要先进行平稳性检验,从而选择合适的研究方法。

在学习平稳性之前,我们先了解一下自相关性的概念。

一、自相关性

自相关性与相关性

我们知道,相关性常用于统计两个变量之间是否存在某种关联。那么,自相关性代表了变量与自身之间的相关性,只不过一般情况下我们统计的是两组隶属于不同时间区间的数据。当两组数据的时间范围相同时,其相关性为1(相当于两组完全相同的数据)。

之前我们曾经学习过Pearson相关系数,自相关系数的计算和Pearson相关系数的计算过程非常相似,但是它们在分母上有些区别。Pearson相关系数的计算中,分母为两个变量的标准差之积;而在自相关系数的计算中,我们会直接使用第k期时间序列数据的方差:

Python量化投资基础:时间序列的平稳性检验

自协方差的计算与协方差的计算是一致的:

Python量化投资基础:时间序列的平稳性检验

事实上,自相关性存在一定的问题。一般来说,在一组时间序列数据中,相邻时间节点的数据间往往存在某些关联。第1期对第2期有影响,第2期对第3期有影响……也就是说,我们的自相关系数衡量的不仅仅是

期之前的数据对当前期数据的影响,也包含了更早期的数据带来的间接影响。

为了解决这个问题,我们引入了偏自相关系数,它是X(k)与X(k-l)之间的条件自相关系数。其计算非常复杂,这里不再展开。好在我们可以用Python的statsmodels库非常轻易地完成计算。

自相关系数和偏自相关系数的计算

在Python中,可以用statsmodels提供的工具来计算自相关性和偏自相关性。我们以上证综指的收益率数据来进行演示。

import tushare as tsfrom statsmodels.tsa import stattoolspro = ts.pro_api()df = pro.index_daily(ts_code='000001.SH', start_date='20180901')print('自相关系数: n', stattools.acf(df.pct_chg, nlags=10))print('自相关系数: n', stattools.pacf(df.pct_chg, nlags=10))

输出为:

自相关系数: [ 1. -0.1692613 -0.03035227 0.22164563 -0.11543326 -0.05630536 -0.18736445 0.04942778 -0.02089329 -0.00722488 -0.03940862]自相关系数: [ 1. -0.17100626 -0.06204206 0.21965218 -0.04895894 -0.08142805 -0.30000036 0.00808857 0.01488787 0.11432786 -0.12407987]

可以看到,这里自相关系数和偏自相关系数的计算都返回了长度为10的数组。它们分别代表了当

的取值为从0到10时的自相关性统计。这里acf()方法用于计算自相关系数,pacf()用于计算偏自相关系数,nlags参数用于指定最大的l,这里我们指定了10,所以就会最多对比当前期与10期之前的时间序列数据,这里10期就是10个交易日。

二、平稳性

平稳性分为强平稳和弱平稳。

强平稳的要求非常严格,它要求两组数据之间的任何统计性质都不会随着时间改变。其要求过于严苛,理论上很难证明、实际中难以检验,因此它基本上没有什么应用场景。

弱平稳

与强平稳对应的是弱平稳,其应用比较广泛,它有三个要求:

Python量化投资基础:时间序列的平稳性检验

简而言之,一组时间序列数据的均值恒定、方差始终存在、自协方差不随时间波动,即可认定其为弱平稳序列。

强平稳与弱平稳之间并没有包含关系,弱平稳不一定是强平稳,强平稳也不一定是弱平稳。这是因为符合强平稳标准的时间序列数据不一定存在均值和方差,而当强平稳序列存在均值和方差时,它就一定也是弱平稳序列。

另外,一个服从正态分布的弱平稳时间序列也是强平稳的。这是因为在正态分布中,确定了均值和方差,也就确定了整个分布,也就是说该时间序列的不同时期的分布是相同的,这就符合了强平稳的定义。

三、平稳性的检验

我们还是用上证综指的行情数据来演示如何在Python中进行平稳性检验。

时序图

这次我们取稍长一些的时间区间:从18年6月份至今的数据。然后我们将日期字符串转换成日期类型,并且设置为数据框的索引,并且对数据按照时间增序排列。

df = pro.index_daily(ts_code='000001.SH', start_date='20180601')df.index = pd.to_datetime(df.trade_date)df = df.sort_index(ascending=True)plt.figure(figsize=(10,5))df.pct_chg.plot();

可以看到,上证综指的收盘收益率数据基本上是围绕着0轴上下波动,在0轴上方和下方的波动幅度基本一致。我们可以初步认定,该时间序列是平稳的。

Python量化投资基础:时间序列的平稳性检验

自相关图和偏自相关图

我们还经常结合自相关图和偏自相关图来判断时间序列的平稳性。

plt.stem(stattools.acf(df.pct_chg));

可以看到,0阶自相关系数和0阶偏自相关系数都恒为1。在下面两幅图中,自相关系数和偏自相关系数迅速由1减小到0附近,之后随着阶数

的上升在0轴上下小幅波动,这基本上是符合平稳性的要求的。

Python量化投资基础:时间序列的平稳性检验

plt.stem(stattools.pacf(df.pct_chg));

Python量化投资基础:时间序列的平稳性检验

单位根检验

前两种方式很直观,但也很主观。它们全靠肉眼的判断和判断人的经验,不同的人看到同样的图形,很可能会给出不同的判断。

因此我们需要一个更有说服力、更加客观的统计方法来帮助我们检验时间序列的平稳性,这种方法,就是单位根检验。

当一个时间序列的滞后算子多项式方程存在单位根时,我们认为该时间序列是非平稳的;反之,当该方程不存在单位根时,我们认为该时间序列是平稳的。其原理比较复杂,想要理解它需要较好的数学基础,因此这里我们主要看如何在Python中应用它,原理部分可以自行搜索相关资料阅读。

常见的单位根检验方法有DF检、ADF检验和PP检验,今天我们会用ADF检验来为大家演示。

在Python中,有两个常用的包提供了ADF检验,分别是statsmodel和arch。

from statsmodels.stats.diagnostic import unitroot_adfunitroot_adf(df.pct_chg)

输出为:

这里包含了检验值、p-value、滞后阶数、自由度等信息。我们看到了检验统计量为-14.46,远小于1%的临界值-3.47,即p值远小于0.01,因此我们拒绝原假设,认为该时间序列是平稳的。(这里原假设是存在单位根,即时间序列为非平稳的。)

Python量化投资基础:时间序列的平稳性检验

使用arch的方法为:

from arch.unitroot import ADFADF(df.pct_chg)

其输出信息基本是一致的。

Python量化投资基础:时间序列的平稳性检验

好,今天的内容就到这里,有任何问题都可以在下方留言,我们一起讨论。

本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(0)
上一篇 2022-12-15 12:54
下一篇 2022-12-15 13:03

相关推荐

  • 小升初语文近义词反义词大全(小升初近义词与反义词)

    近义词 两字近义词 爱慕—喜爱 安然—安稳 解释—讲解 遨游—游览 奥秘—神秘 决心—决定 懊悔—后悔 偶然—偶尔 聚拢—聚集 爱护—爱惜 遨游—漫游 机灵—机敏 偶尔—间或 安慰…

    用户投稿 2023-01-25
  • 张兰直播回应大s汪小菲离婚

    明星光鲜亮丽的背后,也有不为所知的一面,特别是感情生活,很多人都是一团糟,这不大s和汪小菲又上热搜了,一下子还上了10几条,你来我往的好不热闹 只不过大s还没怎么出手呢,汪小菲和张…

    2022-12-12
  • 鱼睡不睡觉

    首先鱼不仅睡觉而且还是睁着眼睛睡觉甚至摆动; 鱼类为脊椎动物的一员,所有的脊椎动物都需要休息,以便恢复中枢神经系统与肢体的疲劳; 由于鱼没有真正的眼睑,所以很多人认为鱼不睡觉造成了…

    2022-12-22
  • 魔域手游2单人搬砖思路解析

    《魔域手游2》全平台公测终于在今天(3月23日)正式开启了,作为一名巅峰测试时期即入坑的玩家,在这段时间里不少玩家从0级一点一点爆肝到满级,有些玩家选择的是通过刷怪、刷大型副本来获…

    2024-01-30
  • 穿越百年时光只为与妻子相遇

    穿越百年时光,只为遇见你。第1集:《穿越时空的爱恋》。 你怎么也想不到这个男人刚刚还在修理电闸,突然一阵强烈的耳鸣袭来,男人痛苦的捂住耳朵,等他缓过神来时却发现刚刚还破烂不堪的小屋…

    2023-06-09
  • 树袋熊吃什么,树袋熊吃的食物为什么对人类有毒呢

    桉树,又名尤加利树,是桃金娘科桉属植物的总称。桉树属于植物界,被子植物门,双子叶植物纲,桃金娘目的桉属。桉树一般为常绿乔木,枝叶花有芳香,一般叶子都是互生的,有柄,全缘羽状脉,多为…

    2023-01-26
  • 湖南各市区号(湖南各市区号分布图)

    . 湖南省长沙市:区号0731,邮政编码410000 湖南省株洲市:区号0733,邮政编码412000 湖南省湘潭市:区号0732 ,邮政编码411100 湖南省衡阳市:区号073…

    用户投稿 2024-01-06
  • 为什么孙越在德云社里没有字辈(德云社云字辈孙越)

    孙越不是郭德纲的徒弟,因此无法用“云鹤九霄”来排字。孙越也不是高峰的徒弟,因此也不能用“昊”来排字。孙越更不是搭档岳云鹏的徒弟,因此,也不能用“筱”来排字。 孙越从小学相声,但在师…

    2023-04-01
  • 硅胶洁面仪真的有用吗(硅胶洁面仪品牌排行榜)

    亲测有用,物理的震动和摩擦洗得很干净。感觉深层清洁效果非常好,而且几分钟的按摩会让皮肤感觉放松和舒服。至于长期使用会不会破坏皮肤角质层,使用时间太短,目前还没发现。但正因为感觉洗得…

    2023-04-05
  • 乐嘉现在过得好吗

     残疾人在乐嘉心里好像总是一个过不去的坎儿,这次在《超级演说家》的舞台上乐嘉又一次栽在这上。7号晚上,《超级演说家》在北京录制决赛,乐嘉为鼓励其残疾人选手大胆演讲,现场示范喝酒壮胆…

    2023-07-17