量化交易平台Quantopian讲座(7)——线性回归

线性回归是用于度量两个变量间关联关系的一种技术手段。例如有一个独立自变量X,一个依赖于X的因变量Y,线性回归可以帮助我们得到一个最佳拟合数据集的线性模型Y=α+βX。举个栗子,特斯拉为因变量Y,标普500ETF作为自变量X,通过线性回归,我们就可以知道特斯拉股价是如何随着标普500ETF价格波动而波动的。
Python的statsmodels是一个内建的线性回归库,首先我们先利用它自定义一个线性回归函数,该函数既包含了线性回归的执行,同时也把结果以图表的形式进行展示。

量化交易平台Quantopian讲座(7)——线性回归_第1张图片
自定义线性回归函数

最终它会给出一个最佳匹配的线性模型,但是该模型是否能够反映变量间的真实关系,却还需要进一步的判断,输出的结果中会包含模型的一些统计学指标,如R方(R-squared)与F检验,这些指标可以从一定层面上反映线性模型的好坏。
自定义函数中使用的回归算法为最小二乘法,首先来简单介绍一下其数学原理

最小二乘法(OLS/Ordinary Least Squares)

线性回归的过程可以看做是为了获得最佳拟合效果,而不断移动回归线的过程。如何定义“最佳”,就需要一个目标函数,在最小二乘法里,目标函数被定义为:

最小二乘法目标函数

注: 其中a和b,代表Y=α+βX中α和β的候选值,最小二乘法的目标函数表示将每个真实的数据点与拟合线上的差异取平方,并进行求和,拟合度越高,这个值也就越小
经过迭代优化,最终就会得到一条最优的回归拟合线。
回归线

示例

接下来我们使用特斯拉(TSLA)和标普500ETF(SPY)2016年的价格数据来示范一次线性回归,我们先利用pct_change()函数将价格数据转化为价格波动率数据,然后对这两组波动率数据进行线性回归。

量化交易平台Quantopian讲座(7)——线性回归_第2张图片
示例代码

简单的几行代码就完成了一次线性回归,但是面对打印的结果,可能会有点懵,结果中涉及一些统计学概念,这里不做过于深入的讲解,目前只需要明白,线性回归算法一定会得到一个结果,但能否很好的反映真实关联,还需要对结果的各项指标进行分析才能确定。
量化交易平台Quantopian讲座(7)——线性回归_第3张图片
指标一

注:其中OLS表示使用的为最小二乘法进行回归
R-squared/Adj. R-squared 指标表示回归线对数据的拟合程度
F-statistic/Prob (F-statistic) 表示模型是否能显著预测因变量的变化

量化交易平台Quantopian讲座(7)——线性回归_第4张图片
指标二

注:const代表常量(α),x1标识自变量前系数(β)
得到的回归线为Y=1.138X+0.0005

量化交易平台Quantopian讲座(7)——线性回归_第5张图片
指标三

注:Dubin-Watson 用于检测数据是否是自相关的
最终绘制的图形如下,包含了散点图与最终的回归线。
量化交易平台Quantopian讲座(7)——线性回归_第6张图片
绘制图形

已知参数 vs 估计值

心中请牢记一点,所有通过线性回归得到参数都支持对于真实α与β的一个估计,除非你知道数据的真实处理过程,否则你将永远无法知道背后真正的α与β。根据明天的数据产生的回归结果就可能与今天的结果不尽相同,真实的参数也可能会发生变化,所以在显示的分析过程中,对于参数估计的标准误差(standard error)要极其的小心,标准误差会在之后的文章中详细介绍。
我们通过两组数据来说明下,线性回归虽然都会得到一个线性模型,但是却不一定是有效的。
第一组数据,X与Y为两组随机数,

示例代码

不出所料,我们得到了一条回归线( Y=0.0972X+0.4187*),但是可以看到R方值非常小,由此可以判定这个线性关系是无效的。
量化交易平台Quantopian讲座(7)——线性回归_第7张图片
回归结果

量化交易平台Quantopian讲座(7)——线性回归_第8张图片
绘图结果

第二组数据,我们在X上增加一些人为噪声数据来构建出Y

示例代码

再来对比看看回归结果,回归线为 Y=1.0405X+0.0081*,这次R方非常接近于1,由此可以推断Y与X之间确实存在线性关系的可能性较大。
量化交易平台Quantopian讲座(7)——线性回归_第9张图片
回归结果

如何评估回归结果

一个有效的回归模型依赖于以下几条假设

  • 自变量不是随机的
  • 误差项的方差在观测集内为常量(这条对于评估拟合的好坏程度至关重要)
  • 误差项不是自相关的,杜宾-沃森统计用于检测自相关性,如果结果接近于2,那么则不存在自相关。
  • 误差项服从正态分布。如果这个条件不满足,则有些统计则无法使用,如F检验。
    如果以上条件均满足,那么我们就可以放心的使用结果中的统计资料来分析拟合程度,例如R方体现了模型可解释的因变量的总变分(total variation),即模型对于数据的拟合程度。
    在作一个预测时,孤零零的预测值往往是不够的,还需要补充置信区间,上例的线性回归结果中包含了95%的置信区间,我们通过seaborn库可以将此部分信息也绘制到图表当中。


    量化交易平台Quantopian讲座(7)——线性回归_第10张图片
    示例代码

    量化交易平台Quantopian讲座(7)——线性回归_第11张图片
    95%置信区间

回归标准误差(standard error)

标准误差用于衡量误差项(ϵ)的标准差(standard deviation)的一个指标,通过线性回归的尺度参数(scale parameter)开方得到。(注:scale parameter,location parameter)
估计的标准误差公式为:

估计的标准误差

**注:最标准的关系式为:Y=α+βX+ϵ 其中ϵ表示误差项 **
如之前得到的回归线,得到的回归参数均为估计值,
回归线

考虑到回归参数本身的标准误差,标准误差公式调整如下:
调整后的回归标准误差

其中Sf为尺度参数(scale parameter),由此我们可以得到Y值得95%的置信区间为
Y值95%置信区间

其中tc为 t检验95%置信度下的关键值(critical value)

最后,比较下线性回归与相关性分析的一些异同

线性回归 vs 相关性分析

  • 线性回归会给出一个特定的线性模型,但是它的使用仅限于变量间是线性相关的情况。
  • 相关性是线性相关与非线性相关的统称,但它不会产生一个实际模型。
  • 两者都通过协方差进行度量
  • 将X多维化,线性回归可以得到Y与多自变量间关系的模型

本篇完,感谢阅读,欢迎订阅:)

你可能感兴趣的:(量化交易平台Quantopian讲座(7)——线性回归)