多因模建方法

2024-05-29 20:58
文章标签 方法 模建 多因

本文主要是介绍多因模建方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转 多因子模型建立方法

多因子模型是应用最广泛的一种选股模型,基本原理是采用一系列的因子作为选股标准,满足这些因子的股票则被买入,不满足的则被卖出。

举一个简单的例子:有一批人参加马拉松,如果想要知道哪些人会跑到平均成绩之上,那么只需要在跑前做一个身体测试即可。那些健康指标靠前的运动员,获得超越平均成绩的可能性较大。多因子模型的原理与此类似,我们只要找到那些与企业的收益率最相关的因子即可。

各种多因子模型的核心区别:第一在于因子的选取,第二在于如何用多因子综合得到一个最终的判断。

一般而言,多因子选股模型有两种判断方法:一是打分法;二是回归法。

打分法就是根据各个因子的大小对股票进行打分,然后按照一定的权重加权得到一个总分,根据总分再对股票进行筛选。回归法就是用过去的股票的收益率对多因子进行回归,得到一个回归方程,再把最新的因子值代入回归方程,得到一个对未来股票收益的预判,然后以此为依据进行选股。

多因子选股模型的建立过程主要分为候选因子的选取、选股因子有效性的检验、有效但冗余因子的剔除、综合评分模型的建立、模型的评价和持续改进5个步骤。

1.候选因子的选取

候选因子的选取主要依赖于经济逻辑和市场经验,但选择更多和更有效的因子无疑是增强模型信息捕获能力,提高收益的关键因素之一。

例如,在2011年1月1日,选取流通市值最大的50支股票,构建投资组合,持有到2011年年底,该组合可以获得10%的超额收益率。这就说明了在2011年这段时间,流通市值与最终的收益率之间存在正相关关系。

从这个例子可以看出这个最简单的多因子模型说明了某个因子与未来一段时间收益率之间的关系。同样可以选择其他的因子,例如:可能是一些基本面指标,如PB、PE、EPS增长率等;也可能是一些技术面指标,如动量、换手率、波动等;或者是其他指标,如预期收益增长、分析师一致预期变化、宏观经济变量等。

持有时间段也是一个重要的参数指标,到底是持有一个月,还是两个月,或者是一年,对最终的收益率影响很大。

2.选股因子有效性的检验

一般检验方法主要采用排序的方法检验候选因子的选股有效性。例如,可以每月检验,具体而言,对于任意一个候选因子,在模型形成期的第一个月初开始计算市场中每支正常交易股票的该因子的大小,按从小到大的顺序对样本股票进行排序,并平均分为n个组合,一直持有到月末,在下月初再按同样的方法重新构建n个组合并持有到月末,每月如此,一直重复到模型形成期末。

上面的例子就已经说明了这种检验的方法,同样可以隔n个月检验,比如3个月,4个月,甚至更长时间。还有一个参数是候选组合的数量,到底是50支,还是100支,都是非常重要的参数。具体的参数最优选择,需要用历史数据进行检验。

3.有效但冗余因子的剔除

不同的选股因子可能由于内在的驱动因素大致相同等原因,所选出的组合在个股构成和收益等方面具有较高的一致性,因此其中的一些因子需要作为冗余因子剔除,而只保留同类因子中收益最好、区分度最高的一个因子。例如,成交量指标和流通量指标之间具有比较明显的相关性。流通盘越大的,成交量一般也会比较大,因此在选股模型中,这两个因子只选择其中一个。

冗余因子剔除的方法:假设需要选出k个有效因子,样本期共m月,那么具体的冗余因子剔除步骤如下。

(1)先对不同因子下的n个组合进行打分,分值与该组合在整个模型形成期的收益相关,收益越大,分值越高;

(2)按月计算个股的不同因子得分间的相关性矩阵;

(3)在计算完每月因子得分相关性矩阵后,计算整个样本期内相关性矩阵的平均值;

(4)设定一个得分相关性阈值MinScoreCorr,将得分相关性平均值矩阵中大于该阈值的元素所对应的因子只保留与其他因子相关性较小、有效性更强的因子,而其他因子则作为冗余因子剔除。

4.综合评分模型的建立

综合评分模型选取去除冗余后的有效因子,在模型运行期的某个时间开始,例如每个月初,对市场中正常交易的个股计算每个因子的最新得分并按照一定的权重求得所有因子的平均分。然后根据模型所得出的综合平均分对股票进行排序,最后根据需要选择排名靠前的股票。例如,选取得分最高的前20%的股票,或者选取得分最高的50~100支股票等。

举个例子:可以构建一个多因子模型为(PE,PB,ROE),在月初的时候,对这个几个因子进行打分,然后将得分最高的50支股票作为投资组合,在下个月按照同样的方法进行轮番替换。持续一段时间后,考察该投资组合的收益率是否跑赢比较基准,这就是综合评分模型的建立和后验过程。

当然这是一个最简单的例子,实战中的模型可能会比较复杂,比如,沃尔评分法就是一个复杂的多因子模型,它是对股票进行分行业比较,计算每个行业的得分高的组合,然后再组合成投资篮子。

5.模型的评价和持续改进

一方面,由于量选股的方法是建立在市场无效或弱有效的前提之下,随着使用多因子选股模型的投资者数量的不断增加,有的因子会逐渐失效,而另一些新的因素可能被验证有效而加入到模型当中;另一方面,一些因子可能在过去的市场环境下比较有效,而随着市场风格的改变,这些因子短期内失效,而另外一些以前无效的因子会在当前市场环境下表现较好。

另外,在计算综合评分的过程中,各因子得分的权重设计、交易成本考虑和风险控制等都存在进一步改进的空间。因此在综合评分选股模型的使用过程中会对选用的因子、模型本身做持续地再评价和不断地改进以适应变化的市场环境。

多因子模型最重要的两个方面,一个是有效因子,另一个是因子的参数。例如,到底是PE有效还是ROE有效;到底是用1个月做调仓周期还是3个月做调仓周期。这些因子和参数的获取只能通过历史数据回测来获得。但是在回测过程中要注意,不能过度优化,否则结果可能反而会不好。

如图5-1所示,是一个多因子模型的收益率曲线案例,如表5-1所示为通过检验的有效因子。

图5-1  多因子模型的收益率曲线  

表5-1  通过检验的有效因子

节选自《对冲基金入门》(丁鹏 著),转载请注明作者和出处,和来源myfof.org

------------------------------------------------------------------------------------

 


《算法导论 第三版英文版》_高清中文版

《深度学习入门:基于Python的理论与实现》_高清中文版

《深入浅出数据分析》_高清中文版

《Python编程:从入门到实践》_高清中文版

《Python科学计算》_高清中文版

《深度学习入门:基于Python的理论与实现》_高清中文版

《深入浅出数据分析》_高清中文版

《Python编程:从入门到实践》_高清中文版


这篇关于多因模建方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1014628

相关文章

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

如何将Python彻底卸载的三种方法

《如何将Python彻底卸载的三种方法》通常我们在一些软件的使用上有碰壁,第一反应就是卸载重装,所以有小伙伴就问我Python怎么卸载才能彻底卸载干净,今天这篇文章,小编就来教大家如何彻底卸载Pyth... 目录软件卸载①方法:②方法:③方法:清理相关文件夹软件卸载①方法:首先,在安装python时,下

电脑死机无反应怎么强制重启? 一文读懂方法及注意事项

《电脑死机无反应怎么强制重启?一文读懂方法及注意事项》在日常使用电脑的过程中,我们难免会遇到电脑无法正常启动的情况,本文将详细介绍几种常见的电脑强制开机方法,并探讨在强制开机后应注意的事项,以及如何... 在日常生活和工作中,我们经常会遇到电脑突然无反应的情况,这时候强制重启就成了解决问题的“救命稻草”。那

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

SpringMVC获取请求参数的方法

《SpringMVC获取请求参数的方法》:本文主要介绍SpringMVC获取请求参数的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下... 目录1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@

Python中的魔术方法__new__详解

《Python中的魔术方法__new__详解》:本文主要介绍Python中的魔术方法__new__的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、核心意义与机制1.1 构造过程原理1.2 与 __init__ 对比二、核心功能解析2.1 核心能力2.2

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

关于pandas的read_csv方法使用解读

《关于pandas的read_csv方法使用解读》:本文主要介绍关于pandas的read_csv方法使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录pandas的read_csv方法解读read_csv中的参数基本参数通用解析参数空值处理相关参数时间处理相关