分享

python漂亮的图,多因子选股基础知识梳理,单因子测试

 新用户62592529 2023-12-16 发布于四川

如何从大海中取到一杯牛奶?

上一期介绍了梳理了一些关于投资交易的基础知识,如何从大海中取到一杯牛奶?多因子选股基础知识梳理,这一期介绍一些关于单因子测试的基础知识。

量化交易、单因子测试、python画图

 ✦ 

背景..

1904年英国的一个心理学家发现学生的英语、法语和古典语成绩非常有相关性,他认为这三门课程背后有一个共同的因素驱动,最后将这个因素定义为“语言能力”。

基于这个想法,发现很多相关性很高的因素背后有共同的因子驱动,从而定义了因子分析,这便是因子分析的由来。

 ✦ 

股因子...

因子选股的目标是解答两个方面的问题。

1)什么样的因素会导致股票上涨或下跌?

2)涨得好(坏)的股票都有什么样的特点?

一个因子描述了众多资产共同暴露的某种系统性风险,该风险是资产收益率背后的驱动力。因子收益率正是这种系统性风险的风险溢价或风险补偿,它是这些资产的共性收益。

因子就是影响价格的因素,例如盈利性、估值、现金流、成长性、价格动量、规模、波动率、技术指标等等

 ✦ 

多因子模型...

图片

r𝑖 表示资产收益率,

𝛽𝑖𝑗 表示股票 i 在因子 j 上的因子暴露(factor loading),

𝑓𝑗 表示因子收益率,

𝜇𝑖 表示股票 i 的残差收益,

根据现代金融理论的定义,投资组合获取的收益均可以分为两个部分,一部分是来自市场的收益也就是𝐵𝑒𝑡𝑎,另一部分则是超出市场的收益也就是我们常说的𝐴𝑙𝑝ℎ𝑎

图片

 ✦ 

发展历程...

1)价值投资 ---- 1992年,Fama和French对美国股票市场决定不同股票回报率差异的因素的研究发现,股票的市场的beta值不能解释不同股票回报率的差异,而上市公司的市值、账面市值比、市盈率可以解释股票回报率的差异,因此提出了著名的三因子模型。

2)动量投资 ---- 1997年,卡哈特(Carhart)认为研究股票收益应在Fama和French的三因子模型基础上加入动量效应,构建四因子模型。动量是物理学名词,是与物体的质量和速度相关的物理量,一般而言,一个物体的动量指的是这个物体在它运动方向上保持运动的趋势。而股市中的动量投资策略依据的就是动量效应,又称为“惯性效应”,即某个时段跌得最深或长得最凶的股票往往会沿着原来的方向继续运动。

3)质量投资 ---- 在其他条件一定的情况下,财务质量高的上市公司应该带来更高的投资回报,因此有必要引入刻画公司资产质量的因子。2013年,Fama的学生阿斯内斯 (Asness)对公司“质量”进行量化,并提出了五因子模型。

4波动率投资 ---- 研究者们又发现低波动率(低beta)股票组合的实际收益比高波动率(高beta)股票组合的要高,这一现象无法用五因子模型解释,于是法拉瑞利等于2013年又将波动率因子引入,建立了六因子模型。

图片

 ✦ 

构建流程...

图片

 ✦ 

因子来源...

 ✦ 

财务因子...

图片

1)估值因子

我们认为市场是非理性的,在很多时候对一些信息会过度解读,导致市场情绪过度反应,从而阶段性地形成对某些个股的高估与低估。而估值存在均值回复的特性,所以定期卖出被高估的股票、买入被低估的股票就可以获得收益。

  • PB:市净率,每股股价与每股净资产的比率;

  • PE:市盈率,公司当时股价与每股盈利的比率,股价作最新收盘价;

  • PEG:市盈率相对盈利增长比率;

  • PS:市销率,指股票价格与每股销售收入之比;

  • PCF:市现率,股票价格与每股现金流量的比率;

2)盈利因子

我们认为盈利能力强的公司,其股票往往具有较大的上涨空间。由此派生出盈利稳定性因子,盈利稳定的公司应当具备稳定性溢价,继而可以获得超越市场的收益。如ROE(净资产收益率)、销售净利率。

3)营运因子

通常我们衡量一家上市公司的营运能力会使用存货周转率、总资产周转率等指标。也可以计算这些指标的同比或环比作为派生指标,例如存货周转率的变化率等。

4)成长因子

我们认为处于高速增长期的公司具有更好的前景,因此其股票具有更大的上涨空间。常用的指标有EPS的同比增长,ROE的同比增长,营业额的同比增长,利润总额的同比增长。

5)现金流因子

现金流稳定性因子,经营现金流质量因子等。

 ✦ 

分析师因子...

券商都会有自己的研究所,研究所的卖方分析师的一个重要产出成果就是卖方研究报告。分析师们会通过对上市公司调研、分析公开数据和与行业内的专家交流等方式了解上市公司的概况,然后融入自己的逻辑推理,最终写出相应的报告。报告中通常会对上市公司的盈利进行预测,给出股票买入或者卖出等评级。

其实分析师群体对一只股票的涨跌是有一定话语权的。这个话语权来源于两个方面。

  • 分析师付出了自己的劳动,对公司进行了调研、数据研究等,其预测结果具有一定的增量信息,可以用于辨识公司未来的运营发展情况。

  • 市场上有投资者会关注分析师的报告,并且参考分析师的意见进行股票的投资,继而影响股价。

无论是哪种因素在起作用,从逻辑上来讲,这一类因子都可能对股票的涨跌具有较好的预测能力。

1)EPS(Earnings Per Share) 一致预期变动

图片

2)评级变化率

在国内,卖方分析师的研究报告往往会对股票做出买入、增持、中性、减持或卖出这样的评级

图片
图片

对于同一只股票,我们可以收集一下其过去一段时间发布的研报中,每一个评级的数量占比。如果负面评级的占比在上升,那么后续该股票可能面临较大的下跌风险。我们可以根据负面评级的占比变化或者正面评级的占比变化构建“评级变化率因子”。

 ✦ 

技术因子...

技术因子就是量价信息,以及衍生出的一些技术指标。

技术类因子在经济直觉上不如财务因子和分析师一致预期因子等逻辑清晰,但是在二级市场上,很多股票上涨/下跌的理由可能就是简单的资金驱动,比如跌破20日均线造成恐慌导致的下跌等。

图片

个人经验:无论什么技术指标因子,描绘的都是时间序列上量价信息的变动情况,在时间维度,都是描绘快速上涨,缓慢上涨,快速下降,缓慢下降的四个阶段。

图片

 ✦ 

其他因子...

1)多模态舆论数据

  • 例如在雪球、东方财富股吧、同花顺等投资者公开交流的网站中,用户产生的内容可以代表当前市场参与者的情绪;

  • 淘宝等电商平台的销售数据往往可以作为部分上市公司产品销量的前瞻指标;

  • 招聘网站的招聘数据可能隐藏着公司业务扩张的信息等;

  • 制造工厂的运输忙碌程度,保安人员的工资;

这些数据往往是非结构化(视频,音频,文本)的,需要通过一定的方法进行清洗、处理之后才可以构成因子。

2)ESG因子

ESG是“Environment、Social Responsibility、Corporate Governance”的缩写,指环境、责任和公司治理。

ESG因子目前在海外比较流行,而在国内则较少被提及。

ESG因子背后的逻辑是公司的价值有一部分会通过对环境的保护、对社会的外部性和公司内部治理的合理性所体现出来。

如果公司能够有长远的目标,在ESG方面进行努力,那么该公司往往容易获得市场的认可,从而其股价也能具有较好的表现。

 ✦ 

数据来源...

宏观数据来源:

国家统计局,人民银行,证监会,国家外汇管理局,国务院发展研究中心,银保监会,财政部,国家外汇交易中心,海关总署

公司财务数据:

上交所,深交所,北交所,巨潮资讯,全国股转系统

行情数据:

同花顺财经,东方财富网,新浪财经,腾讯财经,金融界,大智慧,集思录,通联数据

非结构化数据:

公告及报告(上市公司报告,财务报告,行业报告),新闻报道,研究报告(机构研究报告,分析师报告等),媒体数据(热搜,消息,评论)

另类数据:

地理空间数据(人口密度,交通状况,城建水平),气象数据(温度,湿度,气压),电商消费数据,公司招聘数据,足球比赛数据,彩票数据

金融终端软件:

万得金融终端,iFinD,Choice,通达信

数据接口:

tushare,聚宽,米筐,

 ✦ 

因子预处理...

上证50和中证500这两个指数背后的个股行业的分布差异很大,但是市值是这两个指数最显著的差异。通常我们会用这两个指数之间的关系来判断市场上大小盘股票走势的相对强弱。

图片

由此我们可以发现,市值的大小对股票的涨跌是有较大影响的,这也是为什么会有“盘子太大,涨不起来”这一说法的原因。

从整体上来看,在A股过去的历史中,中证500代表的中小市值股票是跑赢上证50代表的大市值股票的,也就是投资者更加偏好小市值股票。

为什么国内投资者更偏爱小市值?

  • 小市值的公司往往是新兴企业,未来经营具有很大的不确定性,所以投资者投资小市值的公司需要获得相应的风险溢价,故小市值公司的股票表现会好于大盘股

  • 我国股市的投资者炒作情绪较浓重,在一个不能做空的市场,往往炒作情绪越浓重的板块越容易产生超额收益。由于小盘股往往是炒作的对象,因此小市值公司股票表现会有好于大盘股的表现。

  • 小市值的公司往往都是轻资产的公司,成长性较好。在我国这样一个增速较快的经济体中,这一类公司往往具有更好的前景,从而其股价涨幅较好。

上市公司市值分布情况

图片

我们会发现这个分布严重右偏,这是因为我国中小市值的公司特别多,市值分布极度不均匀。

大的公司如中国平安、工商银行等,市值规模上万亿元;而有的小公司的市值只有十几亿元甚至数亿元。大市值的公司数量少,中小市值的公司则多如牛毛,这样的市场特征就形成了这样的市值分布。对市值进行对数处理能够使其分布更接近于正态。

去极值与异常值

市值因子在市场中具有“边际效用递减”的效应,有的股票市值因子的分数是6,有的是2,假设收益率与市值之间相关,相关系数只会比3更小。

为了体现这一点,通常的做法是选择一个阈值,将不在阈值范围之内的因子值进行特殊处理,让其体现出“边际效用递减”这一经济现象。

极值压缩:当因子值大于或小于某一个阈值的时候,我们就将该因子值设为这一阈值:

  • 3σ:将3倍标准差设为市值因子的阈值

  • MAD(Median Absolute Deviation 绝对中位数法):

    MAD = median(|X-MeianX|)

    即给定一个数据样本集,首先求其中位数,然后求原始数据减去中位数得到一个新的数据样本,再求这个新的数据样本集的中位数即是绝对中位差。

  • 百分位法:直接定义上下百分比的分位数作为阈值

异常值 ---- 数据源或者某些突发情况造成数据失真,或是公司财务数据出现问题。处理方法:多来源同比,定义数据校验规则。比如两家公司市值都是10亿,一家公司当年利润为-1亿元,另一家公司市值是1亿元。计算PE分别为-10与10,按照估值因子逻辑,选择PE更小的公司投资,但PE为-10这家公司是亏损状态,并不使用这条逻辑了。

标准化

去除因子量纲

中值化

不同行业的体量不同,不能单纯的将市值因子置于整个市场中比较,应该是行业内部比较。

均值法:

  • 将股票按照行业进行分组,计算每个行业分组的因子行业均值

  • 将每个股票的因子值减去对应的行业的因子的均值,得到的差值:该因子在行业中性化后的中性值。

回归取残值法:

以ROE因子为例,我们想要研究净资产收益率对资产收益的影响,除了行业因子,还有市值因子会对ROE因子本身有影响,例如在同一个行业中,大市值的公司和小市值的公司往往体现出不同的特征。公司规模大往往借贷成本低,同时相对于行业中的其他公司来说处于较为成熟的时期,估值相对会较低。

我们对因子暴露值和市值、行业做线性回归,最后用剩下的残差替代因子值。这个残差肯定是跟市值和行业无关的。

图片

 ✦ 

单因子测试...

IC RankIC

挖掘和计算因子的最终目的是希望因子能够准确预测涨跌。

import pandas as pd
df = pd.DataFrame({    '因子值': [3, 2, 0, -1, -2],    'T+5日收益率1': [8, 5.7, 3.6, -3.3, -6.5],    'T+5日收益率2': [0.1, -5.7, 10, -9, 0.1],})df.corr()
图片

信息系数(Information Coefficient,IC) :我们用相关性衡量因子对收益率的预测能力,在因子测试中,这种相关性计算的结果,称为信息系数(Information Coefficient,IC),代表的是因子对未来股票收益率的预测作用。

皮尔逊相关(Pearson correlation)系数:

图片

分子:两者协方差,衡量两个变量的总体误差;分母:两者方差,衡量两个变量离散程度

import pandas as pd
df = pd.DataFrame({    '因子值': [3, 2, 0, -1, -2, -3],    'T+5日收益率1': [8, 5.7, 3.6, -3.3, -6.5, -8],    'T+5日收益率1_异常': [8, 5.7, 3.6, -3.3, -8, 50],})
df.corr(method='spearman')
图片

spearman相关系数的特点是只考虑两个向量中排序是否一致,这样就能很好地避免异常值的影响。

斯皮尔曼相关(Spearman correlation)系数:

图片

这一方法只考虑排序结果,因此用spearman计算出来的IC也叫作“RankIC”,或者叫“秩IC”

分组测试

在时间截面上根据因子值的大小对股票进行分组。

例如,我们把2023年12月05日这一天市场上的股票先按照被测试因子值从小到大排序,然后将其按照数值大小分成一定的股票组别。我们可以规定每组的股票数量相同,也可以指定特定因子值区间为一组。分组测试就是在每一次调仓的时候将之前的分组组合调整为新的分组组合。

多空组合:做多表现最好的因子组合同时做空因子表现最差的组合。

稳定性检验

如果某一个因子的预测效果很好,但是因子值的变动较大,对股票的打分不断有较大幅度的变化,那么就会造成每次调仓的时候换手率过高。过高的换手率会带来更高的交易成本和流动性风险。因此,我们也会检验分组组合的换手率情况以及因子的自相关性。

 ✦ 

单因子测试结果分析...

 ✦ 

IC分析...

IC分析表

图片

IC分析表,是基于IC定义,计算了不同调仓周期下(1D, 5D, 10D)、每一天因子的IC,从而获得了每一个调仓周期下IC的时间序列,然后根据不同的计算方法获得的统计结果。

对于IC而言,投资者最希望的就是一个因子具有稳定的IC序列。

  • 均值高 ---- 高均值表示因子对未来收益的预测能力整体较强;

  • 方差小 ---- 表示IC序列相对稳定,波动性较小。这表明因子在不同时间点对未来资产收益的预测能力相对一致,投资者更能依赖因子信号;

  • t统计量大,p-value小 ---- 这里的t值衡量了IC均值相对于零的显著性水平,t统计量越大,表示IC均值与零的差异越显著。p-value表示在零假设成立的情况下,观察到的t统计量或更极端的情况发生的概率,较小的p-value表明拒绝零假设。即IC均值与零之间存在显著差异。即这个差异不仅仅是随机的波动,而是真实存在的。

图片
  • IC skew < 0 ---- 表示右偏,右偏表示IC分布的尾部向右延伸,即正的IC值比负的更为突出。右偏的分布可能意味着因子对未来正收益的预测更为准确,因为右偏表示正值更为集中。

  • IC Kurtosis ---- 标准正态分布的峰度为3,我们希望不存在肥尾的情况。IC序列的分布尾部相对较轻,不会出现过于厚重或扁平的尾部。极端值较小,这有助于确保因子在不同市场环境下的稳定性,而不容易受到极端事件的影响。

IC的时间序列图

图片

对于一个理想的因子IC,尽管允许其围绕0轴上下波动,但是它大部分时间应当处于正区间,这样才能确保因子的收益为正。

IC分布图

图片

高均值第方差的特征,可能是极度的肥尾和右偏带来的。观察IC分布图,避免这样的误判。

Q-Q(Quantile)图

图片

横轴是标准正态分布的分位数,纵轴是我们要观测的分布的分位数。要利用QQ图鉴别样本数据是否近似于正态分布,只需看QQ图上的点是否近似地在一条直线附近,图形是直线说明是正态分布。

对于某一局部,如果Q-Q图中的散点图斜率大于1,那么观察的分布相对于正态分布而言离散性更大,更加具有肥尾特征;反之,如果散点图的斜率小于1,那么分布离散性更小,相对正态分布而言具有瘦尾特征。

IC季节性热力图

图片

 ✦ 

收益率分析...

收益率分析表

图片
  • 高Alpha ---- 高Alpha收益表示因子在解释资产收益中的独立性和能力。如果一个因子能够提供相对于市场基准更高的超额收益,这意味着它能够捕捉到市场中未被完全反映的信息或价值,从而对投资组合产生积极的贡献。

  • Beta ---- 低Beta表示因子相对于市场的不敏感性。如果一个因子的Beta较低,那么它对市场波动的反应较小,减小了投资组合的回撤。

  • Top组与Bottom组差值大 ---- 该因子能够明显地区分资产的表现,从而具有更强的预测能力。

    分组收益率柱状图

图片

在不同的调仓周期中,因子的分组收益率应该都遵循单调向上的原则。因子值越高,其分组收益率应该越高。

小提琴图

图片

分组收益率柱状图是按照分组平均收益率来绘制的,收益率小提琴图收益率的完整分布。分布的形态越肥就代表收益率分布越集中。1天调仓、5天调仓、10天调仓收益率分布的集中度是递减的。这也符合直观的金融逻辑:即股票收益率在短期呈现更多的随机性,而将时间维度拉长后则随机性降低,变得相对可预测。

因子加权收益率走势图

图片

计算因子相对因子绝对值和的权重大小,用权重乘每个标的的价格,求和。基于调仓周期,计算收益率。

分组走势图

图片

分组后的每一组股票都成为一个独立的组合,以每天组合内个股收益率的均值作为该组合的收益率。这样,当其分为10组的时候,就会有10条收益率曲线。同样的, 图形越发散,说明因子的效果越好,因子对股票的区分度越高。一个好的因子通常在这里会体现出较强的筛选性,也就是分组的收益率曲线会分化,各自的差异不断体现出来。

Spread走势图

图片

差值越大,这说明因子对于收益率不同的股票的区分度越高;此外,还需要收益率差值曲线保持方向上的稳定。

 ✦ 

换手率分析...

换手率分析表

图片

因子自相关性分析表

图片

自相关性可以理解为惯性,我们考虑因子造成的换手率的时候,其实就是在考察因子的稳定性,也就是因子值每一期的变化。因子的自相关性越高,其值越接近1,说明这一因子是比较稳定的因子,造成的换手率必然不会很高;反过来,如果因子的自相关性极低,甚至是负相关性,则说明因子的波动较大,造成的股票换手率必然不低。

换手率走势图

图片

 ✦ 

ROE因子测试...

IC分析

图片

在2017年之后IC值的数级有一个明显的抬升。

收益率分析

图片

ROE因子的分组平均收益率单调性还可以。这说明长期拿着高ROE的股票具有一定的超额收益,可以跑赢市场。真正的价值投资者也是这样的观点:ROE才是一个公司价值真正的体现,长期持有高ROE公司的股票可以获得长期确定性的收益。

图片

从ROE因子加权组合累计收益率曲线来看,ROE因子在2013年至2015年的表现其实并不好,在2015年之后才开始好转,在2017年之后爆发。这与前面ROE的IC时间序列基本吻合。

图片

从ROE因子分组组合的累计收益率曲线来看,在2017年之前ROE因子几乎没有体现出什么区分度。在2017年的时候,10个组别的收益率曲线没有明显的发散,但在2017年之后开始呈现明显的发散态势。

换手率分析

图片

从ROE因子换手率图来看,ROE作为财务因子,有一个很明显的特征:当新的财报公布的时候,会有明显的换手发生,这也是绝大部分财务类因子的一大特征。

由于内容太多,这期只做了些单因子测试的整理,下一期继续作因子合成的内容。请大家多多帮我点赞叭~

参考资料:

未完待续图片

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多