期货因子分析(四)

目录

  • 回顾
  • 代码
    • 分析
    • 结果
  • 总结
  • 期待


回顾

  1. 期货因子分析(三)
  2. 因子分析 factor analysis (六) :用因子分析法进行综合评价
  3. 因子分析在股票市场中的应用
  4. 多因子基础及流程学习

上期通过举例研究如何找到公共因子组合,并计算载荷矩阵。
注意: 特征值>1. or 累计贡献>75%(经验),此时组合偏有效

代码

本期延伸该例子,进行因子评分

import pandas as pd
from factor_analyzer import FactorAnalyzer

## already done before
df = pd.read_csv("bfi.csv")
df.drop(['Unnamed: 0', 'gender', 'education', 'age'], axis=1, inplace=True)
df.dropna(inplace=True)
fa = FactorAnalyzer(5, rotation="varimax")
fa.fit(df)
# 将各因子得分中间值相加,得到综合得分
var = fa.get_factor_variance()  # 计算累计贡献
a = pd.DataFrame(fa.transform(df) * var[1] / var[-1][-1])  # 转化为因子评分
a['score'] = a.apply(lambda x: x.sum(), axis=1)
a.sort_values("score", inplace=True, ascending=False)
print(a.head())

分析

期货因子分析(四)_第1张图片

B=fa.transform(df)=R-1A,指的是经过旋转后的得分矩阵,其中A为旋转后的载荷矩阵,R为相关系数矩阵,具体计算过程python已经完成,那么如何计算每个截面的得分?则以累计贡献为加权,最后再排名

var = fa.get_factor_variance() # 计算累计贡献
a = pd.DataFrame(fa.transform(df) * var[1] / var[-1][-1]) # 转化为因子评分

结果

期货因子分析(四)_第2张图片

总结

本期实现多因子组合筛选后的综合评价

期待

  1. 评分方式还有什么?rankIC是什么?
  2. 数据源如何处理?
  3. 因子如何搭建?因子是升序还是降序,还是需要事先剔除
  4. 显然上期提到只能解释42%,效果不佳,如何改进?

如果您看到这篇文章有收获或者有不同的意见,欢迎点赞或者评论。
群:984328985
丁。

你可能感兴趣的:(Python与数据分析)