[量化学堂-数学知识]初识协整

协整
标签: #<Tag:0x00007f5bf552a140>

(iQuant) #1

导语: 本文介绍了协整的初步内容。


1、 协整

1.1 直观理解

协整是什么这个问题回答起来不是那么直观,因此我们先看下图,了解一下具有协整性的两只股票其价格走势有什么规律。

$$图1\ \ 两只协整股票的走势$$

从图1中可以看出,两只股票具有同涨同跌的规律,长期以来两只股票的价差比较平稳,这种性质就是平稳性。如果两个股票具有强协整性,那么无论它们中途怎么走的,它们前进的方向总是一样的。

1.2 平稳性

提到协整,就不得不提平稳性。简单地说,平稳性(stationarity)是一个序列在时间推移中保持稳定不变的性质,它是我们在进行数据的分析预测时非常喜欢的一个性质。如果一组时间序列数据是平稳的,那就意味着它的均值和方差保持不变,这样我们可以方便地在序列上使用一些统计技术。我们先看一个例子,了解平稳和非平稳序列直观上长什么样。

$$图2 \ \ 平稳序列和非平稳序列$$

图2中,靠上的序列是一个平稳的序列,我们能看到它始终是围绕着一个长期均值在波动,靠下的序列是一个非平稳序列,我们能看到它的长期均值是变动的。

1.3 问题的提出

由于许多经济问题是非平稳的,这就给经典的回归分析方法带来了很大限制。在金融市场上也是如此,很多时间序列数据也是非平稳的,通常采用差分方法消除序列中含有的非平稳趋势,使得序列平稳化后建立模型,比如使用ARIMA模型。

1987年Engle和Granger提出的协整理论及其方法,为非平稳序列的建模提供了另一种途径。虽然一些经济变量的本身是非平稳序列,但是,它们的线性组合却有可能是平稳序列。这种平稳的线性组合被称为协整方程,且可解释为变量之间的长期稳定的均衡关系。协整(co-integration)可被看作这种均衡关系性质的统计表示。 如果两个变量是协整的,在短期内,因为季节影响或随机干扰,这些变量有可能偏离均值,但因为具有长期稳定的均衡关系,它们终将回归均值。

1.4 协整应用在量化投资中

基于协整的配对交易是一种基于数学分析交易策略,其盈利模式是通过两只证券的差价(spread)来获取,两者的股价走势虽然在中途会有所偏离,但是最终都会趋于一致。具有这种关系的两个股票,在统计上称作协整性(cointegration),即它们之间的差价会围绕某一个均值来回摆动,这是配对交易策略可以盈利的基础。当两只股票的价差过大,根据平稳性我们预期价差会收敛,因此买入低价的股票,卖空高价的股票,等待价格回归的时候进行反向操作从而获利。

需要特别注意的是协整性和相关性虽然比较像,但实际是不同的两个东西。两个变量之间可以相关性强,协整性却很弱,比如说两条直线,y=x和y=2x,它们之间的相关性是1,但是协整性却比较差;方波信号和白噪声信号,它们之间相关性很弱,但是却有强协整性。

$$图3 \ \ 相关性很弱,但是具有强协整性$$

2、平稳性和检验方法

严格地说,平稳性可以分为严平稳(strictly stationary)和弱平稳(或叫协方差平稳,covariance stationary等)两种。严平稳是指一个序列始终具有不变的分布函数,而弱平稳则是指具序列有不变的常量的描述性统计量。严平稳和弱平稳性质互不包含;但如果一个严平稳序列的方差是有限的,那么它是弱平稳的。我们一般所说的平稳都是指弱平稳。在时间序列分析中,我们通常通过单位根检验(unit root test)来判断一个过程是否是弱平稳的。

一个常见的单位根检验方法是Dickey-Fuller test,大致思路如下:假设被检测的时间序列$Y_t$满足自回归模型$Y_t = \alpha Y_t−1+\epsilon_t$,其中$\alpha$为回归系数,$\epsilon_t$为噪声的随机变量。若经过检验,发现$\alpha<1$,则可以肯定序列是平稳的。

3、举个应用的例子


附件:初始调整的例子:

克隆策略

我们人为地构造两组数据,由此直观地看一下协整关系。

In [17]:
import numpy as np
import pandas as pd
import seaborn
import statsmodels
import matplotlib.pyplot as plt
from statsmodels.tsa.stattools import coint

构造数据

首先,我们构造两组数据,每组数据长度为100。第一组数据为100加一个向下趋势项再加一个标准正态分布。第二组数据在第一组数据的基础上加30,再加一个额外的标准正态分布。有:

$$X_t = 100 + \gamma_t + \epsilon_t$$$$Y_t = X_t + 30 + \mu_t$$

其中$\gamma_t$为趋势项,$\epsilon_t$和$\mu_t$为无相关性的正态随机变量。

代码如下:

In [18]:
np.random.seed(100)
x = np.random.normal(0, 1, 500)
y = np.random.normal(0, 1, 500)
X = pd.Series(np.cumsum(x)) + 100
Y = X + y + 30
for i in range(500):
    X[i] = X[i] - i/10
    Y[i] = Y[i] - i/10
T.plot(pd.DataFrame({'X':X, 'Y':Y}), chart_type='line', title='Price')
 

显然,这两组数据都是非平稳的,因为均值随着时间的变化而变化。但这两组数据是具有协整关系的,因为他们的差序列$Y_t−X_t$是平稳的:

In [21]:
T.plot(pd.DataFrame({'Y-X':Y-X,'Mean':np.mean(Y-X)}),chart_type='line', title='Price')

上图中,可以看出蓝线$Y_t−X_t$一直围绕均值波动。而均值不随时间变化(其实方差也不随时间变化)。


本文由BigQuant宽客学院推出,版权归BigQuant所有,转载请注明出处。


[量化学堂-数学知识]深入理解协整
社区干货与精选整理(持续更新中...)