Python-相关系数矩阵计算-Python.corr()

  1. 背景知识

相关系数矩阵衡量的是自变量之间的相关程度,当相关系数为1时表示自变量之间完全正相关,当相关系数为-1时表示自变量之间完全负相关。

  1. 衡量方法

Pearson皮尔逊相关系数衡量的是两个变量之间的线性关系,即线性关联度,在数学上定义为两个变量之间的协方差和标准差之积的商。
r = cov ( X , Y ) σ X σ Y r = \frac{\text{cov}(X, Y)}{\sigma_X \sigma_Y} r=σXσYcov(X,Y)
其中:
cov ( X , Y ) \text{cov}(X, Y) cov(X,Y) 是变量 X X X Y Y Y 的协方差。
σ X \sigma_X σX σ Y \sigma_Y σY 分别是变量 X X X Y Y Y 的标准差。

Kendall肯德尔等级相关系数衡量的是两个变量之间的等级相关性,对数据的长度没有限制,比较适合应用于当数据不满足正态分布或者有异常值的情况。

Spearman斯皮尔曼等级相关系数衡量的是两个变量之间单调关系的强度,即两个变量在变大或者变小的趋势上有多大的程度在保持步调一致(忽略是否保持等比例)

  1. Python实现
    主要使用Python内置函数corr()。
    method:参数指定计算相关性的方法;
    min_periods:设置计算相关性所需观测值数量的最小值,默认min_periods = 1;
    numeric_only:True则仅计算数值列,False计算所有列(可能会有报错),建议保持默认为True.
import pandas as pd
df_correlation_matrix = pd.read_excel(file) # 读取Excel数据
# used_column 为参与计算相关系数矩阵的数据列列名,type为list
df_correlation_matrix_used = df_correlation_matrix[used_column] 
pearson_matrix = df_correlation_matrix_used.corr(method='pearson', min_periods=1, numeric_only=True)
kendall_matrix = df_correlation_matrix_used.corr(method='kendall', min_periods=1, numeric_only=True)
spearman_matrix = df_correlation_matrix_used.corr(method='spearman', min_periods=1, numeric_only=True)

如果需要把计算所得的相关系数矩阵绘制成热力图,可以参考如下代码:

import seaborn as sns
import matplotlib.pyplot as plt
# 绘制热图
sns.heatmap(pearson_matrix, annot=True)
plt.savefig('pearson_matrix_plot.png')

以上仅供参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿羊是个凸头猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值