VIF方法(方差膨胀因子)因子独立性检验 全流程解读

VIF方法(方差膨胀因子)因子独立性检验 全流程解读    基于因子模型的选股策略是股票市场量化应用最广泛的模型之一。然而很多时候,使用因子模型在实盘运行的绩效并不理想,究其原因可能是由于因子选择的偏差,市场风格轮动等。但还有一个显著的因素,就是选取因子之间可能存在高度的多重共线性,导致模型对股票价格与市场的解释能力存在很大偏误。       为了在筛选因子之初就避免陷入这样的误区。本文介绍一种VIF(方差膨胀检验)方法,来对因子之…

大家好,又见面了,我是你们的朋友全栈君。

       基于因子模型的选股策略是股票市场量化应用最广泛的模型之一。然而很多时候,使用因子模型在实盘运行的绩效并不理想,究其原因可能是由于因子选择的偏差,市场风格轮动等。但还有一个显著的因素,就是选取因子之间可能存在高度的多重共线性,导致模型对股票价格与市场的解释能力存在很大偏误。

 

       为了在筛选因子之初就避免陷入这样的误区。本文介绍一种VIF(方差膨胀检验)方法,来对因子之间的线性相关关系进行检验,从而帮助投资者们在可以选取到独立性更好的因子,增强因子模型的解释能力。

 

 

一、方法介绍

 

 

  所谓VIF方法,计算难度并不高。在线性回归方法里,应用最广泛的就是最小二乘法(OLS),只不过我们对每个因子,用其他N个因子进行回归解释。

 

  其中有一个检验模型解释能力的检验统计指标为R^2(样本可决系数),R^2的大小决定了解释变量对因变量的解释能力。而为了检验因子之间的线性相关关系,我们可以通过OLS对单一因子和解释因子进行回归,然后如果其R^2较小,说明此因子被其他因子解释程度较低,线性相关程度较低。

 

  注:之所以不使用协方差计算相关性是由于协方差难以应用在多元线性相关情况下。给出VIF计算方法:

 

                                                                  VIF方法(方差膨胀因子)因子独立性检验 全流程解读

 

从上文很容易看出,VIF越高解释变量和因变量之间线性相关性就越强。

 

 

二、检验实践

 

 

  数据来源:聚宽量化平台投资研究板块

  选取因子:EPS(每股收益),

  ROE(净资产收益率),

  market_cap(市值),

  pb(市净率),

  ’net_profit_ratio’(销售净利率),

  ’gross_income_ratio’,(销售毛利率)

  ’quick_ratio’,(速动比率)

  ’current_ratio’(流动比率(单季度))

  (后面四个因子来源于聚宽因子库)

 

时间窗口选取:2012.3.4—2018.7.4

回望频率:两个月检

 

 

1. 获取数据:(鉴于篇幅仅展示2012-03-04当日前十支股票相关因子数据)

 

                               VIF方法(方差膨胀因子)因子独立性检验 全流程解读

 

2. 缺失值检验:(鉴于篇幅仅展示2013-03-04当日检验情况)

返回0代表无缺失值,返回其他数字代表缺失值数量

 

                                                      VIF方法(方差膨胀因子)因子独立性检验 全流程解读

 

3. 被检验两两因子间线性相关性预了解(图例,鉴于篇幅仅展示2013-03-04当日检验情况)

 

   VIF方法(方差膨胀因子)因子独立性检验 全流程解读

                                             案例图表示,各因子对市值因子market_cap的解释能力

                                                  蓝色阴影部分,是回归直线斜率95%的置信区间

 

4. 计算并获取每个时点下被解释因子与其余7个因子之间的回归VIF值,绘制时间序列图

 

                                         VIF方法(方差膨胀因子)因子独立性检验 全流程解读

 

  分别是百分比堆积图,和绝对数值图(柱状图)。通过百分比堆积图可以看出,各因子的VIF值全程比较稳定,所以其占据总体的百分比也稳定。柱状图可以看出各因子值细节,各位读者可以去聚宽克隆该研究,即可看到更清晰图片。

 

5. 全段测试计算时间内,各因子VIF值均值,比较大小(图例)

 

                                       VIF方法(方差膨胀因子)因子独立性检验 全流程解读

 

6. 相比而言quick_ratio这一因子的VIF在窗口期平均值较低,因而这就提示了我们如果在构建因子模型时,采用其余其中因子时可以考虑添加这一因子,增强模型的解释能力。

 

 

三、方法总结与体会

 

 

  使用VIF进行检验的方法主要为,对某一因子和其余因子进行回归,得到R^2,计算VIF,剔除因子中VIF高的因子,保留VIF较低的因子,以此类推,直到得到一个相关性较低的因子组合来增强模型的解释能力。

 

  在实际测试过程中,并非要指定一个VIF阈值,比如某因子的VIF值超过阈值才剔除,而是通过观察所有因子值的VIF值,如果发现该值较大(显著离群),剔除该因子即可。本次我们的几个因子表现都非常出色,VIF值稳定且没有离群较大值,因此,没能找到任何一个需要剔除的因子。

 

点击阅读原文

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132336.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月10日 下午10:36
下一篇 2022年6月10日 下午10:36


相关推荐

  • c语言 修改文件权限666,chmod 777 修改权限

    c语言 修改文件权限666,chmod 777 修改权限http william71 blogbus com logs 33484772 html 在 Unix 和 Linux 的各种操作系统下 每个文件 文件夹也被看作是文件 都按读 写 运行设定权限 例如我用 ls l 命令列文件表时 得到如下输出 rw rr1appleuser 05 2013 47tt htm 从第二个字符起 rw 是说用户 apple 有读 写权 没有

    2026年3月26日
    2
  • jquery手机号码正则验证

    jquery手机号码正则验证<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scripttype="text/javascript"src=&qu

    2022年4月30日
    44
  • makefile文件编写「建议收藏」

    makefile文件编写「建议收藏」makefile文件用于管理和组织代码工程的编译和链接,其不是可执行文件,其被make工具解析并完成相关动作,下面笔者将介绍makefile中常用的一些语法说明:1、文件包含:语法:include文件名作用:将其它makefile文件包含进来,组成一个更大的makefile文件,这样有利于makefile模块化编程。通常我们将一些配置选项分开成一个独立的makefile文件,这…

    2022年6月7日
    65
  • MVC Code First (代码优先)

    MVC Code First (代码优先)

    2022年1月13日
    51
  • 浅谈ftp和sftp的区别

    浅谈ftp和sftp的区别一 适用场景 我们平时习惯了使用 FTP 来上传下载文件 尤其是很多 Linux 的环境下 我们一般都会通过第三方的 SSH 工具连接到 Linux 的 但是当我们需要传输文件到 Linux 的服务器当中 很多人习惯用 FTP 来传输 其实 Linux 的默认是不提供 FTP 的 需要你额外安装 FTP 服务器 而且 FTP 服务器端会占用一定的 VPS 服务器资源 其实笔者更建议使用 SFTP 代替 FTP 主要因为 一 可以不用

    2026年3月19日
    1
  • Parcelable与Serializable

    Parcelable与Serializable优点 缺点 google 官方也是很贴心呀 直接把怎么用放在源码的注释里了优点 缺点 Serializable 是一个空接口 用来标识当前类可以被 ObjectOutput 序列化 以及被 ObjectInputS 反序列化总结 Java 应用程序中有 Serializable 来实现序列化操作 Android 中有 Parcelable 来实现序列化操作在 Android 中除了对数据持久化的时候需要使用到 Serializable 来实现序列化操作 其他的时候我们仍然需要使用 Parcelab

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号