量化概念 02:IC 怎么算

19 阅读 866 字 · 约 3 分钟
分类:投资 专栏:量化投资 #量化

IC 到底是怎么算出来的?

两步:横截面 + 时间平均

算 IC 不用看整个历史的涨涨跌跌,只看两样东西的配对:每个股票的因子值,和它未来的收益。

第一步,横截面。挑一个日子(比如今天),把当天所有股票的因子值和"未来 N 天的收益"放在一起,算一个相关系数。这个数,就是"今天的 IC"。

第二步,时间平均。只算一天不靠谱,把过去很多个交易日都这么算一遍,每天得一个 IC,然后取平均——这就是这段时期这个因子的平均 IC。

打个比方:每次考试押一次名次,算一次"押得准不准",考了很多次再取平均,就是你的整体押题水平。

只比名次,不比分数:Rank IC

算相关性有两种方式:

  • Pearson:直接拿"因子分数"和"收益"比。问题是因子分数经常有极端值,一个异常值就能把结果带偏。
  • Rank IC:先把两边都换成排名,再比排名。只看顺序、不看具体分数,抗极端值。

实践中基本都用 Rank IC——就像押名次只需要顺序,不需要猜每个人的考分。

一个数值例子

某一天,5 只股票:

  • A:因子值 9,未来 10 天涨幅 +6%
  • B:因子值 7,未来 10 天涨幅 +5%
  • C:因子值 5,未来 10 天涨幅 +4%
  • D:因子值 3,未来 10 天涨幅 +2%
  • E:因子值 1,未来 10 天涨幅 +3%

按因子值排名:A → B → C → D → E 按真实涨幅排名:A → B → C → E → D

对比两列:前三名完全一致,只有最后两名反了。吻合度很高,这一天的 IC ≈ 0.9——接近满分 1,说明基本全押对。

真实数据里很少这么整齐,单日 IC 往往不高,所以单看一天不够,要攒很多天取平均,才是这个因子整体水平的估计。

多大的数算"好"

量化里 IC 普遍很低,别拿"相关系数 0.8 才算强"的常识来套:

  • 0.02 ~ 0.05:常见且可用的水平
  • 0.05 以上:已经算很不错的因子
  • 0.1 以上:基本不可能是真的,多半是数据出了问题或过拟合

别忘了两个参数

  • N 是几:未来 N 天的收益。N=1 是隔天,N=10 是持有 10 天。选 N 就是选"预测多远的未来",N 不同,IC 也不同
  • 算多久:样本时间太短,平均 IC 可能只是运气好。样本越长,结论越可信

小结

IC 的算法就两步——先横截面、再时间平均,剩下的只是参数选择。