期货因子分析(四)


回顾

  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())

分析

在这里插入图片描述

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]) # 转化为因子评分

结果

在这里插入图片描述

总结

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

期待

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值