Riskfolio的HCPortfolio是否正常?EWH与MCHI相关性异常排查
资产聚类分析异常问题排查方向
我在项目中使用Riskfolio进行资产聚类分析,基于2019-2024年月度数据生成了聚类图表,发现通常走势高度同步的EWH与MCHI在图表中显示相关性极低,但通过彭博终端交叉验证,二者beta值为0.8,实际相关性应该较高。
使用的代码如下:
import riskfolio as rp # Plotting Assets Clusters ax = rp.plot_clusters(returns=monthly_returns, codependence='pearson', linkage='ward', k=None, opt_k_method='twodiff', max_k=10, leaf_order=True, dendrogram=True, linecolor=None)
排查方向
验证原始数据准确性
- 检查
monthly_returns中EWH和MCHI的时间序列是否存在日期错位、数据缺失或极端异常值,确保两组数据的时间区间完全对齐。 - 手动计算二者的Pearson相关系数,比如用
pandas执行monthly_returns['EWH'].corr(monthly_returns['MCHI']),直接输出数值对比Riskfolio聚类结果,定位是数据问题还是工具逻辑问题。
- 检查
确认Riskfolio参数与逻辑
- 查阅Riskfolio官方文档,确认
plot_clusters函数中codependence='pearson'的计算逻辑,是否默认对数据做了标准化、去趋势或其他转换,导致相关性结果偏差。 - 尝试仅提取EWH和MCHI两组数据,单独运行
plot_clusters函数,排除其他资产对聚类结果的干扰,看二者的聚类关系是否符合预期。
- 查阅Riskfolio官方文档,确认
排查图表标签与数据映射
- 输出
monthly_returns.columns,确认EWH和MCHI的列名拼写完全正确,无大小写、后缀/前缀差异(如EWH和EWH.T),避免图表标签与实际数据不匹配。 - 输出Riskfolio计算的相关系数矩阵(可通过
rp.RiskFunctions.cov_matrix(monthly_returns, codependence='pearson')获取),直接查看EWH与MCHI的相关系数数值是否正确。
- 输出
检查收益计算方式一致性
- 确认
monthly_returns的计算方式(对数收益/简单收益)与彭博终端beta计算所使用的收益方式是否一致,不同的收益计算逻辑可能导致相关性结果差异。
- 确认
内容的提问来源于stack exchange,提问作者maeta cherdsatirakul
相关产品推荐
相关产品推荐

