You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中实现多变量对单一变量的相关系数计算方法咨询

实现多变量对单变量的相关系数计算

方法一:使用Pandas的corr()方法(最简便)

Pandas DataFrame自带的corr()方法会生成全变量的相关系数矩阵,只需提取目标单变量与指定多变量的对应值即可:

import pandas as pd

# 构造示例数据
data = {
    'A': [1,5,3],
    'B': [8,9,0],
    'C': [6,5,1],
    'D': [0,3,2]
}
df = pd.DataFrame(data)

# 计算A、C与D的相关系数
corr_with_D = df.corr()['D'][['A', 'C']]
print(corr_with_D)

# 计算B、C、D与A的相关系数
corr_with_A = df.corr()['A'][['B', 'C', 'D']]
print(corr_with_A)

方法二:使用Numpy的corrcoef()

Numpy的corrcoef()返回全相关矩阵,通过索引提取目标部分即可。注意设置rowvar=False,表示每一列对应一个变量:

import numpy as np

# 提取A、C、D列的数据
target_data = df[['A', 'C', 'D']].values
# 生成相关系数矩阵
corr_matrix = np.corrcoef(target_data, rowvar=False)
# 提取D(第三列,索引2)与A、C的相关系数
corr_AD_CD = corr_matrix[2, :2]
print("A与D的相关系数:", corr_AD_CD[0])
print("C与D的相关系数:", corr_AD_CD[1])

关于TensorFlow/Keras的使用

完全没必要用TensorFlow或Keras处理这类需求——Pandas和Numpy已经提供了轻量、高效的原生解决方案。如果项目深度依赖TF生态,可手动通过协方差与标准差的比值实现,但属于冗余操作:

import tensorflow as tf

# 转为Tensor格式
A = tf.convert_to_tensor(df['A'], dtype=tf.float32)
C = tf.convert_to_tensor(df['C'], dtype=tf.float32)
D = tf.convert_to_tensor(df['D'], dtype=tf.float32)

# 计算A与D的相关系数
cov_AD = tf.reduce_mean((A - tf.reduce_mean(A)) * (D - tf.reduce_mean(D)))
corr_AD = cov_AD / (tf.math.reduce_std(A) * tf.math.reduce_std(D))

# 计算C与D的相关系数
cov_CD = tf.reduce_mean((C - tf.reduce_mean(C)) * (D - tf.reduce_mean(D)))
corr_CD = cov_CD / (tf.math.reduce_std(C) * tf.math.reduce_std(D))

print("A与D的相关系数(TF版):", corr_AD.numpy())
print("C与D的相关系数(TF版):", corr_CD.numpy())

内容的提问来源于stack exchange,提问作者Michal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:50:32