Alphalens因子分析(4) - Information Coefficient方法

在前面的笔记中,无论是回报分析,还是因子Alpha,它们都受到交易成本的影响。信息分析 (Information Analysis)则是一种不受这种影响的评估方法,主要研究方法就是信息系数(Information Coefficient)。


信息系数的范围为-1到1,绝对值越大,表明因子与收益之间的相关性越强;绝对值越小,表明因子对收益的贡献越小;因此,0表示因子对收益完全不产生贡献,1表示完美的线性关系(预测能力好),-1则表示因子与收益完全负相关,这也表明它的预测能力强。

我们通过factor_information_coefficient方法来求因子的IC:

python 复制代码
from alphalens.performance import factor_information_coefficient
ic = factor_information_coefficient(factor_data)

ic.head()

当然研究时间序列的最好方式还是可视化:


从图形上我们能看出来什么?IC的均值似乎很接近于零。按照IC的定义,这是不是说明,低换手率因子与预测涨跌几乎没有关联,因而不值得我们考虑这个因子?

在下结论之前,我们先看看我们得到的IC究竟如何:

它的均值只有0.058,最大值也只有0.52。这是否说明这个因子不够好?

我们来看看聚宽因子库中,最好的因子IC均值是多少:

聚宽是一家百亿私募,他们也提供了类似quantpian一样的众包平台。在它的网站上有一个栏目叫因子看板,我们把他所有的因子都列出来,按IC均值降序排列:


聚宽的三年期因子中,IC均值最大的是0.01,因此,我们这个因子的预测能力,已经超出了聚宽因子库中的因子。实际上,聚宽因子库中收纳了多个换手率相关因子,比如有年度平均月换手、240日平均换手等。其中年度平均月换手率因子的IC是-0.035,年化是13.39%。当然,这些因子是如何计算的,不得而知。

出于好奇,我们也把这个问题抛给了GPT4:


当我们使用随机变量的均值时,我们常常会担心这个均值是否受到了少数极值的影响。我们可以通过标准差来度量,不过最直观的方式是通过直方图,或者QQ图:

python 复制代码
from alphalens.plotting import plot_ic_hist

plot_ic_hist(ic)

这仍然要非常有经验,才能看出来IC的分布好坏。看直方图关键是要看多数时间IC的表现如何,何处IC值很可能下降,以及是否存在肥尾。如果借助QQ图,观察要容易很多:

python 复制代码
from alphalens.plotting import plot_ic_qq

plot_ic_qq(ic)

QQ图能显示IC值分布与正态分布之间形状的差异。特别是对了解分布中最极端的数值是如何影响预测能力的特别有帮助。

应该说1日换手率因子的表现相当好。多数点落在对角线上。

最后,作为一个快捷方式,Alphalens允许我们调用create_information_tear_sheet来一次性获取所有的信息分析数据:

python 复制代码
from alphalens.tears import create_information_tear_sheet

create_information_tear_sheet(factor_data)

这将把今天笔记中出现的所有图,以集中显示的方式绘制一次。

factor_data是一切的起点。我们在第一篇笔记中对它作过介绍,它是通过utils包中的get_clean_factor_and_forward_returns来获得的。

【因子分析系列】

因子分析(3)- 都是坑!这么简单的Alpha计算,竟然错了?!
Alphalens因子分析(2) - 低换手率因子秒杀98%的基金经理?
Alphalens 因子分析 - 以低换手率因子为例(1)

相关推荐
天一生水water3 天前
AI+量化 的数据类型有哪些
人工智能·量化交易·时间序列
星星之火之6 天前
【通达信L2黑科技】 用 DLL 把 10 年机构大单净额 1 秒拖进本地,选股、排序、回测快到飞起!
量化交易·股票数据接口·股票实时数据·stockapi
青云交25 天前
Java 大视界 -- 基于 Java 的大数据实时流处理在金融高频交易数据分析中的应用
java·大数据·量化交易·异常检测·apache flink·实时流处理·金融高频交易
念念01072 个月前
数学建模竞赛中评价类相关模型
python·数学建模·因子分析·topsis
量化风云2 个月前
『量化人的概率 03』PDF is all you need
python·金融·pdf·概率论·量化交易·量化课程
青云交3 个月前
Java 大视界 -- Java 大数据机器学习模型在金融衍生品市场波动特征挖掘与交易策略创新中的应用(363)
java·大数据·机器学习·量化交易·金融衍生品·交易策略·波动率预测
北纬32.63 个月前
高频交易服务器篇
量化交易·高频量化·python量化·hft·openai炒股
qife4 个月前
AI 对冲基金模拟系统
机器学习·量化交易·金融科技·ai投资
DolphinDB智臾科技4 个月前
如何计算股票复权因子与复权行情
数据分析·量化交易·因子挖掘·dolphindb 实时计算
阡之尘埃5 个月前
Python量化交易12——Tushare全面获取各种经济金融数据
python·金融·数据分析·pandas·量化交易·宏观经济