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

基于围巾数据集的多重相关性分析及相关技术疑问

关于围巾数据集相关性分析的两个问题解答

背景概述

你正在处理围巾生产数据集,核心字段包括:

  • Drawing Code:款式识别码
  • Q.ty:生产数量
  • Price:单价(预测目标)
  • Final Price:总价(数量×单价)
  • Drawing Class:是否含数码印花(1=有,0=无)
  • Area (cm^2):围巾面积(由长×宽计算)
  • Material:围巾材质

为预测单价,你选取变量构建了新数据集:

df1 = df[['Q.ty','Price', 'Area (cm^2)', 'Drawing Class', 'Material Class']]

对Drawing Class和Material Class做独热编码后,通过热力图计算皮尔逊相关系数,但未发现变量间存在强线性相关,进而提出两个问题。


问题1:Python中能否计算三个以上变量的多重相关系数?

可以。多重相关系数(复相关系数) 用于衡量单个变量与一组其他变量之间的整体线性关联程度,Python中可以通过statsmodels库实现,也可手动计算。

实现示例(以Price为因变量,其余变量为自变量)

import statsmodels.api as sm

# 准备数据:提取自变量和因变量
X = df1.drop('Price', axis=1)
y = df1['Price']

# 添加常数项(线性回归要求)
X = sm.add_constant(X)

# 拟合多元线性回归模型
model = sm.OLS(y, X).fit()

# 计算复相关系数R(R²的平方根,取值0~1,越接近1关联越强)
multiple_r = model.rsquared ** 0.5
print(f"多重相关系数R: {multiple_r:.4f}")

复相关系数的平方(model.rsquared)就是回归模型的决定系数,代表自变量组能解释因变量变异的比例。


问题2:分析不同类型变量间的相关性是否合理?

是否合理取决于变量类型和选用的相关性计算方法,不能一概而论:

  • 数值变量vs数值变量:用皮尔逊相关系数完全合理,这是热力图默认的计算方式,适合衡量线性关联。
  • 数值变量vs二分类变量(如Drawing Class):可以用点二列相关系数,或对二分类变量独热编码后用皮尔逊相关(二者结果等价),这种分析是合理的,能反映类别差异对数值变量的线性影响。
  • 数值变量vs多分类变量(如Material Class):
    • 若用独热编码后计算单个哑变量与数值变量的皮尔逊相关,仅能反映该类别与基准类别对数值变量的差异,解释性有限,但并非不合理;
    • 更合适的方法是用方差分析(ANOVA) 检验不同类别下数值变量的均值是否存在显著差异,或用互信息衡量变量间的非线性关联。
  • 分类变量vs分类变量:用皮尔逊相关系数完全不合理,此时应选用卡方检验(衡量独立性)、互信息或克莱姆V系数来分析关联程度。

你之前用热力图计算独热编码后所有变量的皮尔逊相关,仅能覆盖部分变量组合的合理分析,对于多分类变量和分类变量间的关联,需要更换方法才能得到合理结论。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 23:32:57