因果发现在因子挑选上的应用

文摘   其他   2023-03-25 13:42   上海  

这里简单记录下我设计的一个算法,它的构思源于我在实际工作上遇到的困难。

简单来说,它在最初设计的时候便考虑了高维小样本量的场景,相比于其余算法它可以实现更精准的因果图学习,它不仅可以提供因果特征,给予模型更准确的效果,同时也能提供更直接的因果解释性,从而方便落地推广。

本次实验采用某标的的六十余个影响因子,并针对标的收益率进行展开分析,在下图以X67作为标记,字段均来自于公开的证券研究报告,数据一共两百个数据点。

下面是这个算法的输出。

输出结果是目标变量X67的周围结构,我们可以看到相应的因果关系。因果图分析得到,算法给出了这样的一个因果结论,X53和X10分别是标的收益率的原因和影响。我们可以简单地认为,这两个因子是对标的收益率具有因果关系的因子。

如果我们认为它是正确的,并使用它们进行建模,将得到非常有趣的现象,其中模型均是默认参数。

modelfeatureaccuracyprecisionrecallf1_scoreauc
LogisticRegression660.5420.5370.50.5180.574
RandomForestClassifier660.6190.6140.6030.6090.625
XGBClassifier660.610.6110.5690.5890.621







LogisticRegression110.6440.6330.6550.6440.684
RandomForestClassifier110.5850.5690.6380.6020.619
XGBClassifier110.5760.5610.6380.5970.601







LogisticRegression20.6530.7180.4830.5770.695
RandomForestClassifier20.6610.7370.4830.5830.7
XGBClassifier20.6530.7180.4830.5770.691

可以看到,只用两个因子的模型效果要好于使用所有因子、也要好于使用经过卡方特征筛选后的模型。这并非巧合,它存在着对应的理论证明。

因为存在着因果图,给了业务人员更多的可操作性。如果觉得因果变量太少,我们也可以对它进行分析,尝试再选取在X67周围的节点纳入特征集。但这不是随便地尝试都可以具有提升,需要一些相关的专业知识才行。

比如我们单纯增加X67的影响节点X11和X5,效果则可能会变得更差。

modelfeatureaccuracyprecisionrecallf1_scoreauc
LogisticRegression40.6530.6890.5340.6020.702
RandomForestClassifier40.6360.6420.5860.6130.687
XGBClassifier40.6270.630.5860.6070.669

好了,这个算法就简单记录到这里了。

感兴趣可以到公众号发送【加群】,一起讨论吧。

知守溪的收纳屋
存放觉得有用的文章。关键词:金融量化、因子选择、因果推断、可解释性、人工智能
 最新文章