如何用Spearman相关性生成Pandas数据框的偏相关矩阵?
用Spearman相关性生成偏相关矩阵的方法
要生成消除其他列影响的Spearman偏相关矩阵,核心逻辑是Spearman相关等价于变量秩的Pearson相关,因此可以通过先对变量做秩变换,再计算Pearson偏相关的方式实现需求。
完整实现代码
# 安装依赖(未安装时执行) # !pip install pingouin pandas import pandas as pd import pingouin as pg # 加载示例数据 df = pg.read_dataset('partial_corr') # 对所有列做秩变换(采用average方法处理平局值,匹配Spearman默认规则) rank_df = df.rank(method='average') # 对秩变换后的数据集计算偏相关,结果即为Spearman偏相关矩阵 spearman_pcorr = rank_df.pcorr().round(3) print(spearman_pcorr)
结果说明
运行代码后会输出和df.pcorr()结构完全一致的矩阵,其中的数值是基于Spearman相关性计算的偏相关系数,已自动消除其他列的协方差影响。
内容的提问来源于stack exchange,提问作者Leo
相关产品推荐
相关产品推荐

