情绪因子|共线性问题:与T日动量的因子

0
0
**共线性问题:** **与T日动量的因子** ![飞书20220719-174906.jpg](https://dev-media.amazoncloud.cn/5bc3a51cc8994f0c98f7c3d4404ca618_%E9%A3%9E%E4%B9%A620220719-174906.jpg "飞书20220719-174906.jpg") **在情绪因子融入多因子模型中,最常见到的问题是:情绪因子往往会和当日动量因子产生较大共线性,从而导致因子间相互不独立,最终影响多元回归的预测。本文就该问题进行了一系列研究,以期抛砖引玉,提供更多的解决思路。** **我们以与情绪同期股价变动作为最简便代表T日动量的因子,情绪因子和当日股价变动具有一定的相关性,其物理含义,合理推断,是由于部分情绪源于投资者对股价波动本身,这也符合情绪具有“反身性”的特征。** **于是我们把共线性问题转化成了如何分离出这部分情绪,我们的核心思想类似于金属冶炼中的提纯,把那些由于股价变动所导致的情绪效应从总体的情绪因子中剔除,保留投资者对基本面等因素所产生的情绪。** 数据样本:股吧天级 选股方式:Top100因子 交易假设:以T+1均价买入,收盘价卖出,不考虑交易成本 仓位分配:算术平均仓位以避免其他因素干扰 ### 1.其他字段平均值筛选 首先我们想探究的,便是对这部分情绪做特征工程:这一部分由股价变动所导致是的情绪,是否有一定特征,能帮助我们将其分离出来。我们最先想到的就是数据的其他字段,“评论数,阅读数,帖数”内含热度意义,股价上升会带来这些数字的上升而不影响原文情绪,那是否剔除掉这部分就能带来情绪因子相关性的下降,于是我们以个字段平均数,筛选出小于,进行了测试: 表 1:字段筛选相关性对比 ![img_v2_c4f6250e-8665-4bec-b5c2-03f9649c8c2g.jpg](https://dev-media.amazoncloud.cn/08eac733664b4a76bf6fd234646703e8_img_v2_c4f6250e-8665-4bec-b5c2-03f9649c8c2g.jpg "img_v2_c4f6250e-8665-4bec-b5c2-03f9649c8c2g.jpg") 可以看到相关性有一定的下降,但并不显著,我们进一步通过分布发现了其背后原因: 图 1:评论数分布 ![img_v2_3fceb130-fd0e-4c26-affb-7c27a424ae3g.jpg](https://dev-media.amazoncloud.cn/6083720f66d34a7382db834b23160f64_img_v2_3fceb130-fd0e-4c26-affb-7c27a424ae3g.jpg "img_v2_3fceb130-fd0e-4c26-affb-7c27a424ae3g.jpg") 以“评论数”为例,以中间值划分整个分布左右区域,小于平均数的情绪值平均相关性为0.16,小于平均数的平均相关性为0.3,这证实了我们前面的猜想,高关注度的股票情绪因子和动量因子之间有更强的相关性。但由于整体分是类似于反比例函数一象限,其具有存在右长尾极大值的情况,从而进一步拉高了平均值,使得去除高评论数高相关性的因子所带来了相关性下降并不显著。 我们也尝试了直接降低筛选阀值,带来两个问题: - 由于分布问题,筛选掉的票量更大,会极大减少覆盖度 - 整体相关性下降速度减慢,意味着,在评论数中位数区间高相关性特征不再明显,更多的是高低相关性混合 图 2:阅读数分布 ![img_v2_7bf9e90e-e362-4980-a332-eb1e2db60bbg.jpg](https://dev-media.amazoncloud.cn/45ed22a641f04a51b62a459ade7ed18a_img_v2_7bf9e90e-e362-4980-a332-eb1e2db60bbg.jpg "img_v2_7bf9e90e-e362-4980-a332-eb1e2db60bbg.jpg") 图 3:帖数分布 ![img_v2_50a4eebc-1137-48cd-865d-1db6302fab7g.png](https://dev-media.amazoncloud.cn/1279ed77d64044ce94b9fee9564b1223_img_v2_50a4eebc-1137-48cd-865d-1db6302fab7g.png "img_v2_50a4eebc-1137-48cd-865d-1db6302fab7g.png") 其他几个字段分布都接近于反比例函数分布,所以该方案有待改进。 ### 2.中间变量差分法 ##### 2.1寻找中间变量 随后我们转化了特征工程的思路,期望找到一个与情绪因子同频率的中间变量,满足与情绪因子相关性较低,和动量因子相关性较大的条件,由此我们可以通过对中间变量进行数值处理以代表由股价波动所产生的情绪变化部分,再通过用情绪对其做差以去除和动量重合部分的情绪。 表 2:简单天级量价Tick数据相关性测试 ![img_v2_9c0ab9dd-8c7d-483b-b9f1-d35eb4ff17cg.png](https://dev-media.amazoncloud.cn/d3dfade76d4841f9ace17c4f3082ea18_img_v2_9c0ab9dd-8c7d-483b-b9f1-d35eb4ff17cg.png "img_v2_9c0ab9dd-8c7d-483b-b9f1-d35eb4ff17cg.png") 我们发现有两种因子符合我们的标准(与动量因子相关性极大于与情绪因子相关性),分别是交易量和换手率,同时我们发现有两个因子有反向特征(与情绪因子相关性极大于与动量因子相关性),分别是开盘价和前收盘价。也这让我们发现了一些物理含义: - 开盘价和前收盘价中间为集合竞价差,可以视为同一含义。起始价格会一定程度影响股票当天的情绪,但无法影响当日价格走向 - 交易量或换手率都一定程度上表达了该票的流动性,流动性可以一定程度影响当日价格走向,但跟当日情绪走向无相关性 这样的物理含义,可以在生活中得到一定的经验主义验证。 ##### 2.2处理效果 我们选取了最符合需求的换手率因子(动量因子相关性0.133>情绪因子相关性0.013),对齐后由于情绪值和换手率虽然值域相同,但其常态值并非在同一区间,所以要对换手率进行标准化,将其框定至和情绪因子相同区间(0-1),再用情绪做差,为了获得最好的效果,我们在被减数前还加上了学习系数n,以min(与动量因子每日相关性绝对平均值)为约束条件设置了1000步学习,并且对比了旧贝叶斯算法和BBT计算的情绪因子在此方法下的效果: 图 3:相关性下降学习曲线 ![img_v2_7c1b92c8-6a2f-4b61-91a1-eb6ee4eefd2g.png](https://dev-media.amazoncloud.cn/a56800ad9e4f44f68628b46eca15d453_img_v2_7c1b92c8-6a2f-4b61-91a1-eb6ee4eefd2g.png "img_v2_7c1b92c8-6a2f-4b61-91a1-eb6ee4eefd2g.png") 贝叶斯n最佳值为1.11(new sentiment =old sentiment-1.11*turn) BBT因子n最佳值为2.04(new sentiment =old sentiment-2.6*turn) 表 3:差分指标对比 ![img_v2_a1899e42-ec1e-4d4b-99de-ea65b08bf5cg.png](https://dev-media.amazoncloud.cn/e22255c8b87c48e1926a170f0daff774_img_v2_a1899e42-ec1e-4d4b-99de-ea65b08bf5cg.png "img_v2_a1899e42-ec1e-4d4b-99de-ea65b08bf5cg.png") 经处理后和动量因子相关性分别下降至0.08,0.09左右,共线性处理效果明显,但同时在贝叶斯算法上产生了削减收益下降的副作用,但在BBT数据中剔除这些因为股价上升而产生的“噪音情绪”却反而可以使得收益进一步上升,除此之外需要注意的是: 由于我们的tick数据并不完全,所以经过对齐加工过的数据存在覆盖度降低以及22年数据缺失的问题,可以自行对源数据处理一遍: 图 4:新因子覆盖度 ![img_v2_6c481a61-15bb-45a0-83cd-c6daa889a90g.png](https://dev-media.amazoncloud.cn/14c602802fa84cd8a092a056ba17930d_img_v2_6c481a61-15bb-45a0-83cd-c6daa889a90g.png "img_v2_6c481a61-15bb-45a0-83cd-c6daa889a90g.png") 由于情绪和换手率之间不存在绝对相关性,所以做差后因子值域发生变化(存在小于0值),因策略问题,我们回测时剔除了小于零的因子: 图 5:新因子Top100策略累计收益线 ![img_v2_25b064a1-1637-4bfa-b72f-aafeaa48fd9g.png](https://dev-media.amazoncloud.cn/acf22f26e40349408d4251ed6f65d9bc_img_v2_25b064a1-1637-4bfa-b72f-aafeaa48fd9g.png "img_v2_25b064a1-1637-4bfa-b72f-aafeaa48fd9g.png") ### 3.PCA ##### 3.1维度选取 除了人为的提取一个因素做特征工程,我们也可以运用统计方法——PCA(主成分分析法)来实现更高效的降维( Dimensionality Reduction),其中第一步就是要选取合适的原生变量进行分解。根据2.1中发现的物理含义,首先同期股价变动是必须被选中的变量,当然同期的情绪因子也是需要被降维的。既然要研究价格变动,那和价格变动有关的开盘价还有前一天收盘价,和总量有关的交易量以及换手率也必须被研究。其中根据原始数据的统计测量,开盘价还有前一天收盘价之间有较高的线性相关性,因此可以用传统统计学的线性模型PCA进行降维。 ##### 3.2成分矩阵 表 4:PCA成分矩阵 ![img_v2_223c63ad-1401-4427-bc64-76b9ac30842g.png](https://dev-media.amazoncloud.cn/17a6ce773f344391a3a2874632633b12_img_v2_223c63ad-1401-4427-bc64-76b9ac30842g.png "img_v2_223c63ad-1401-4427-bc64-76b9ac30842g.png") 我们通过对原生变量取方差协方差矩阵并对该矩阵进行映射运算以实现主成分分析。以上是主成分分析的核心指标PCA成分矩阵,该矩阵反映了四个新的主成分和六个原生变量之间的对应关系。一般在统计学里如果成分值大于0.4则认为该因子和对应的原生变量存在对应关系。例如在F1中,开盘价和前一天的收盘价的主成分值为0.69669706和0.6965619,显著高于其他主成分值,这说明该因子F1受开盘价和前一天的收盘价影响较大。再举一例,F3因子和情绪变量对应的成分值为-0.6715992,也就是存在这两个变量之间存在对应关系,且方向相反。 以上PCA成分矩阵的基本含义,这里拿F1因子为例进行一个更为详细的分析。根据因子得分矩阵的数据显示,我们可以得到f1因子的数据构成(其中‘PctChg’,‘Open’等六个原生变量都进行了标准化处理): F1=0.017*PctChg+0.488*Open+0.488*Preclose-0.040*Volume+0.100*Turn+0.048*Sentiment 可以看出该因子和成交量的成分值为-0.0584152是呈负相关的,故不难推测该因子和成交量存在较为微弱的反向关系,和Turn,也就是换手率存在较弱的正相关关系。这次研究的情绪和股票价格变动率,这两个变量和F1因子之间的相关关系也非常微弱,可以说F1变量是独立于股价变化因子的新因子。 ##### 3.3新因子测试 表 5:全量新因子指标对比 ![img_v2_f940d987-10a9-4bbe-8810-d1ea1e4d516g.jpg](https://dev-media.amazoncloud.cn/27d3e8fe26a9455b806c5d067bf22bfb_img_v2_f940d987-10a9-4bbe-8810-d1ea1e4d516g.jpg "img_v2_f940d987-10a9-4bbe-8810-d1ea1e4d516g.jpg") 找到对应关系还不足以支撑对金融二级市场数据的全面分析,还需要结合统计学中的皮尔逊相关系数以及对股票二级市场的策略进行模拟。可以看出F1和F2都是与价格变化百分比呈正相关,F3和F4则是负相关。通过绝对值的比较基本可以判断F1是和动量因子相关性最小的,消除共线性最为成功的。得到结果后,我们还是想探究PCA过程中是如何对因子进行分解的,以及其物理意义带给我们的启发。F1的主成分虽然是开盘价而非Sentiment,但前研究发现Open和Sentiment具有一定相关性,加之与当日动量因子相关的交易量因子成分系数为负,F1因子实质是对情绪因子通过开盘价提取出了主要成分而消除了和动量因子的相关部分。但与此同时,在贝叶斯算法上这些处理共线性的方法带来的收益下降也是显著的,同时为我们发现如果过分的剔除情绪因子,如F1(情绪成分:0.06921018),F2因子(0.34958133),都非以情绪因子为主成分的因子,会导致收益的显著下降,传统量价数据的弊端也由此显现。 ##### 3.4BBT对比 我们同样基于BBT做PCA的主成分分析法,并尝试改进其中流程,看是否会有效果的提升。首先对于与情绪因子相关性极大于与动量因子相关性的两个因子组:开盘价和前收盘价,他们具有高度重合性,所以我们选取其中之一,前收盘价即可。其次,对于与动量因子相关性极大于与情绪因子相关性的两个因子组:交易量和换手率,虽然他们特征相同但相互间关系不是非常大,相关性为0.164,考虑到过少的因子做pca会极大削减最后pca的效果,所以我们还是都保留,同时纳入了交易金额因子,因为交易金额相比于交易量还考虑到了单位股价因素。最后,我们将当日股价变动百分比剔除出PCA,因为我们最终目的是想去除与T日动量因子的相关性,而在降维过程中加入当日股价变动百分比存在自回归嫌疑。 表 6:BBT成分矩阵 ![img_v2_107ac28e-e95f-463a-90ae-5376e936831g.jpg](https://dev-media.amazoncloud.cn/004e91c2faeb4c08a2a7984b20bcc687_img_v2_107ac28e-e95f-463a-90ae-5376e936831g.jpg "img_v2_107ac28e-e95f-463a-90ae-5376e936831g.jpg") 表 7:BBT新因子指标对比 ![img_v2_09f6f093-895f-4555-a493-e180b1ba6bfg.jpg](https://dev-media.amazoncloud.cn/adfac55e793c42b2aae69c79f232b8a5_img_v2_09f6f093-895f-4555-a493-e180b1ba6bfg.jpg "img_v2_09f6f093-895f-4555-a493-e180b1ba6bfg.jpg") 相比之前PCA,这次PCA所有因子相关性绝对值都下降了,收益下降幅度也减少了很多,相比前一次PCA更加稳健。除此之外,我们还发现和上次一样的特征,当情绪因子的成分被大大减弱(T1,T2,T4情绪成分绝对值)会大大影响到最后合成因子的收益,但总体来看在维持收益稳态前提降低相关性最好的方法还是通过一个中间变量做差。我们相信,这除了和PCA所使用的初始因子质量和数量有关外,同时还可能和不同算法情绪因子的本身特性相关(因为同样处理方法在不同算法因子上产生了不一样的效果),敬请期待我们在多因子框架中对这方面的深入研究。
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭
contact-us