【点宽专栏】验证Fama French五因子模型在中国市场的表现(下)

本文探讨了Fama French五因子模型在中国市场应用的效果,指出模型解释沪深300α收益能力不足,导致策略表现不佳。通过分析,发现了使用残差代表超额收益、及时更新沪深300成分股以及因子正交化等问题,实验结果显示,使用残差的策略优于α策略,及时更新成分股能提高组合收益,而因子正交化未见明显改善。
摘要由CSDN通过智能技术生成


策略失效问题探索

对比同时段使用的CAPM策略,可以看出选取市场低估(α较小)的投资组合建仓是较为有效的。而在Fama French五因子策略中,我们遵循同样的选股原理,结果却相差甚远。因此,我们认为五因子模型表现不佳的原因是期在近三年间对于沪深300的解释性较差,因此没能捕捉到α收益,而并非获取α收益的策略无效。

净值曲线(4)使用CAPM模型获取的α值最小的60支股票(第1组)
在这里插入图片描述

针对此问题,接下来探索五因子模型效果不佳的潜在原因及解决方案:

  1. 使用α解释超额收益不恰当。
  2. 没有按时更新沪深300成分股
  3. 因子间存在明显多重共线性问题。

问题1:使用α解释超额收益不恰当
实践过程中,有些量化交易者使用了回归的残差——而非α值来表示超额收益。使用残差来表示超额收益的逻辑在于捕捉那些没能被模型所解释的收益,以此作为超额收益,进行选股。接下来,我们对此观点进行尝试,判断此方法是否有效。

计算残差的步骤为:

  1. 使用所有因子乘以回归所得因子荷载,计算模型的预测收益率。
  2. 使用真实收益率减去预测收益率,得到残差序列。
  3. 计算每只股票每个月残差序列的平均值,作为本月的残差值。
  4. 遵循α值选股的相同策略,分别选择不同残差值范围的股票建仓

使用残差代表超额收益得到的三组投资组合在回测时间内的净值表现如下图所示:

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fama-French因子模型是基于资产收益率与市场收益率之间的关系进行建模的一种经典的资产定价模型。下面是使用Python实现Fama-French因子模型的一般步骤: 1. 获取股票市场数据,并计算每只股票的收益率。 2. 获取市场收益率数据,并计算市场收益率的平均值和标准差。 3. 获取无风险收益率数据,并计算每只股票的超额收益率。 4. 获取市值因子、账面市值比因子、动量因子、投资因子和质量因子的数据,并计算每只股票在这些因子上的暴露度。 5. 使用多元回归模型,将每只股票的超额收益率作为因变量,市场收益率、市值因子、账面市值比因子、动量因子、投资因子和质量因子的暴露度作为自变量,估计模型的系数。 下面是一个简单的Python代码实现示例: ```python import pandas as pd import numpy as np import statsmodels.api as sm # 获取股票市场数据并计算每只股票的收益率 stock_data = pd.read_csv('stock_data.csv') stock_returns = stock_data.pct_change().dropna() # 获取市场收益率数据并计算平均值和标准差 market_data = pd.read_csv('market_data.csv') market_returns = market_data['return'].mean() market_std = market_data['return'].std() # 获取无风险收益率数据并计算每只股票的超额收益率 rf_data = pd.read_csv('rf_data.csv') rf_returns = rf_data['return'] excess_returns = stock_returns.sub(rf_returns, axis=0) # 获取市值因子、账面市值比因子、动量因子、投资因子和质量因子的数据 factor_data = pd.read_csv('factor_data.csv') # 计算每只股票在这些因子上的暴露度 factor_exposures = sm.add_constant(factor_data[['Mkt-RF', 'SMB', 'HML', 'Mom', 'CMA']]) results = sm.OLS(excess_returns, factor_exposures).fit() # 打印模型系数 print(results.params) ``` 需要注意的是,上述代码中的数据文件需要自己准备,而且实际应用中还需要进行更多的数据处理和模型检验等工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值