时间序列学习(6):单整、协整、格兰杰检验

前面的笔记里,我们都是在研究一个时间序列(不同时间段)中的关系及性质。

很显然,我们可以把方法推广到两个时间序列(相同时间段)的研究中去。这就是这篇要讲的协整关系。

1、单整序列

我们在第5篇笔记的第3节里对指数的对数收益率序列做了一次差分。实际我们可以在差分序列上再做差分。

当某一个不平稳的时间序列做了n次差分后第一次变成平稳序列了,那么我们就称这个时间序列为n阶单整

根据重要统计量(之前介绍过的均值、方差、自相关系数)的可加性,我们有以下两个结论:

  • 平稳序列的线性组合也是平稳的;
  • 平稳序列和一阶单整序列的线性组合是一阶单整的;

那么问题来了,两个一阶单整序列的线性组合还是一阶单整的吗?答案是不一定。

2、协整关系

但是有一种情况我们可能用两个一阶单整的序列构造出平稳序列(平稳序列的一阶差分一定也是平稳的)。

对于两个走势很像的时间序列,比如,格力和美的的股价走势,它们的对数收益率序列可以看成股价序列的一阶差分。

从前面的笔记可以假设对数收益率序列是平稳的。所以格力和美的的股价走势可以说是一阶单整的。

因为格力和美的的股价走势强相关,那么可以想象它们股价的差值序列似乎应该是平稳的。如果是平稳的,我们就说格力和美的的股价走势序列具有协整关系(Cointegration)

更为严格的定义如下。给定两个时间序列 { x t } \{x_t\} {xt} { y t } \{y_t\} {yt},它们有如下的线性关系:

y t = α x t + β + r e s i d t y_t=\alpha x_t+\beta+resid_t yt=αxt+β+residt

其中 { r e s i d t } \{resid_t\} {residt}是残差序列。若, { x t } \{x_t\} {xt} { y t } \{y_t\} {yt}是一阶单整的,且 { r e s i d t } \{resid_t\} {residt}是平稳的,那么 { x t } \{x_t\} {xt} { y t } \{y_t\} {yt}具有协整关系。

描述协整关系的模型和AR模型很像,都是线性模型。区别在于AR模型描述的是一个序列的不同时间点的关系;协整模型描述的是两个序列的相同时间点的关系。

协整关系通常用在配对交易中,用来判断两个走势相近的标的价格差值序列是否平稳,进而判断这两个标的走势是否平稳。

在实际应用中,我们通常会对标的价格取对数,以减小量纲的影响。

3、模型解释与协整检验

我们针对两个序列寻找它们的协整关系,我们在它们之间建立了下面的关系:

y t = α x t + β + r e s i d t y_t=\alpha x_t+\beta+resid_t yt=αxt+β+residt

由上式,我们已经假设这两个序列之间是线性关系。究竟具不具有线性关系,实际上需要验证的。所以当我们拟合出模型后,我们首先应该看看模型是否有不错的解释效果(实际上很多人都忽略了这一点);然后我们再进行协整的检验。

验证线性模型的解释效果有很多指标,SSE(和方差)、MSE(均方误差)、RMSE(均方根误差)、MAE(平均绝对误差)、R-Squared(R平方检验,为R平方,修正R平方等)。

因为本篇笔记还是以协整为核心,所以上述方法不详述了。后面碰到实际问题再说。

那么协整性怎么检验呢?一般有两个方法,约翰森(Johansen)检验法与恩格尔-格兰杰(Engel-Granger)检验法。

约翰森(Johansen)检验法针对含有滞后项的情况,如下:

y t = α 0 x t + α 1 x t − 1 + . . . + β + r e s i d t y_t=\alpha_0x_t+\alpha_1x_{t-1}+...+\beta+resid_t yt=α0xt+α1xt1+...+β+residt

本篇笔记考虑更为简单的恩格尔-格兰杰(Engel-Granger)检验法。对于下述关系式进行两步检验:

y t = α x t + β + r e s i d t y_t=\alpha x_t+\beta+resid_t yt=αxt+β+residt

  • 第一步: 基于OLS方法回归上述模型得到系数;
  • 第二步:基于ADF方法检验序列 { r e s i d t } \{resid_t\} {residt}是否平稳;若平稳,则 { x t } \{x_t\} {xt} { y t } \{y_t\} {yt}具有协整关系;否则,“存在协整关系”不成立。

4、华泰柏瑞300与兴全300究竟能否搬砖?

我们用上面的方法来研究两个时间序列:华泰柏瑞300与兴全300的净值序列。这两个序列都是跟踪沪深300的,因此我们会感性上觉得他们的走势应该强相关,所以很多人会用来做搬砖。那么我们看看它们究竟有没有这种强相关的关系,也就是协整关系。

首先,获取华泰柏瑞300(510300.XSHG)与兴全300(163407.XSHE)的2017年1月1日至2019年12月13日的净值序列,然后做对数处理。两者的走势如下:

p1 = get_price('510300.XSHG', start_date='2017-01-01', end_date='2019-12-13', frequency='daily', fields='close')
p2 = get_price('163407.XSHE', start_date='2017-01-01', end_date='2019-12-13', frequency='daily', fields='close')
ln_p1 = log(p1)
ln_p2 = log(p2)

在这里插入图片描述

看上去还挺一致。

下面我们构建它们净值之间的线性模型:

Y = α X + β + r e s i d Y=\alpha X+\beta+resid Y=αX+β+resid

import statsmodels.api as sm


x = ln_p2
y = ln_p1
# 所构建模型若含常数项使用这一步,不含常数项就不含这一句
X = sm.add_constant(x)
result = (sm.OLS(y,X)).fit()

打印拟合结果看看:

在这里插入图片描述

红色框体中的R平方分析是模型对原始数据的解释度。0.7左右说明模型的解释性马马虎虎。

绿色框体是我们求得的两个参数: α = 0.7082 ; β = 0.8818 \alpha=0.7082; \beta=0.8818 α=0.7082;β=0.8818

按照这两个参数可以画出拟合的线性曲线(其实是直线):

fig, ax = plt.subplots(figsize=(8, 6))

ax.plot(x, y, 'o', label="data")
ax.plot(x, result.fittedvalues, 'r', label="OLS")
ax.legend(loc='best')

在这里插入图片描述

有了上面的具体参数,残差序列就得到了:

r e s i d = Y − 0.7082 X − 0.8818 resid=Y-0.7082X-0.8818 resid=Y0.7082X0.8818

我们进一步用ADF检验看看其平稳性:

from statsmodels.tsa.stattools import adfuller

adfuller(resid.close)

结果如下:

(-1.5651429207395833,
 0.5010757745369381,
 5,
 713,
 {'1%': -3.43955476721974,
  '5%': -2.865602155751202,
  '10%': -2.5689331692727135},
 -4994.155385095142)

t-检验值没有显著小于10%的临界值,说明不能拒绝不平稳的假设。

在statsmodels中有更方便的判断两者是否协整的函数。

from statsmodels.tsa.stattools import coint
 
coint(x, y)
(-1.4004315479475968,
 0.7973652863497567,
 array([-3.9117583774179283, -3.3446531236567063, -3.0503622399733086]))

可以看到程序自带的函数进行的协整结果的t-检验值(-1.4004315479475968)也没有显著地小于array中的三个临界值,所以不能接受这两个序列平稳的结论。

我们看看残差序列:

在这里插入图片描述

从残差序列也可以大概看出其不平稳性。

因此,利用华泰柏瑞300与兴全300搬砖的小伙伴可要小心,要反复确认它们在所考察的时间段内是否协整,且是否这种协整关系可延续。

另外,我们在建模的时候加入了常数项,也可以将常数项去掉看看建模效果。

  • 9
    点赞
  • 114
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值