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

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


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

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

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:

50%


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

from alphalens.plotting import plot_ic_hist

plot_ic_hist(ic)

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

from alphalens.plotting import plot_ic_qq

plot_ic_qq(ic)

75%


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

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

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

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)

  • 31
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Maximal Information Coefficient(最大化信息系数)是一种用于计算变量之间相关性的方法。该方法可以在自然的、无监督的方式下学习变量之间的关系,而无需预设模型或参数。 MATLAB是一种用于科学计算和数据分析的工具。MATLAB提供了一系列内置的函数和工具箱来计算MIC(最大化信息系数)。要计算MIC,可以使用MATLAB中的mic函数。mic函数接受输入向量或矩阵作为参数,并返回两个变量之间的MIC值及其p值。 使用matlab进行MCI计算非常方便。只需从mic函数中提供需要计算的两个变量的数据,并选择任何其他可选参数(例如,MIC类型、置信水平等)。输出将包括MIC值及其p值。 综上所述,MATLAB提供了一个强大而灵活的工具,可以计算变量之间的最大信息系数。这是一种实用的方法,可用于许多领域,例如数据挖掘、模式识别、基因表达分析等。 ### 回答2: 最大互信息系数,即maximal information coefficient (MIC)是一种衡量两个变量之间关系的度量,它能够检测到线性和非线性的相关性。使用MATLAB可以方便地计算MIC值。 MATLAB中的MIC计算方法分为两步:第一步是利用单变量信息理论工具,计算两个变量中每一个变量和其它变量之间的互信息量,得到一个图像矩阵;第二步是根据wasserstein距离选择最大的单调关系,以便最终得到一个MIC值。 MATLAB中mic函数可用于计算MIC值。该函数需要输入两个变量的数组x和y,然后返回其MIC值。 使用MIC检测变量之间的关系有许多应用,比如在复杂数据集中发现变量之间的相关性以及在生物学中研究基因表达和疾病之间的关系等。由于其灵活性和易于操作性,MATLAB中的MIC计算工具在分析大量数据时具有重要的作用。 ### 回答3: 最大信息系数(Maximal Information Coefficient,MIC)是一种用于量化两个变量之间关联度的方法,它能够识别出各种类型的关联关系包括非线性关系。Maximal Information Coefficient matlab是一个常用工具,用于计算最大信息系数,它可以帮助我们分析数据集,探测出它们之间的关联性。在matlab中安装了MIC工具箱后,我们可以使用mic函数来计算两个变量的最大信息系数,并以此评估它们之间的关联性。 使用mic函数进行最大信息系数分析时,需要输入两个变量的数值矩阵,返回的结果包括最大信息系数的值和P值。最大信息系数值越高,说明两个变量之间的关联程度越强。P值则表示其显著性程度,P值越小,说明结果越可靠。我们还可以通过设置变量之间的最小重合部分来完善结果。 最大信息系数是一种数据挖掘和机器学习方法,它可应用于许多领域,包括生物学,经济学和社会学等。在生物学中,最大信息系数可用于分析基因表达和生物多样性数据,探讨不同物种间的关联性。在经济学中,它可用于分析股票价格的波动和其他金融数据的关联,以便制定投资策略。最大信息系数的应用广泛,可帮助我们更好地理解变量间的关系,并从中提取有价值的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量化风云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值