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

为何数值不同时corrwith()计算的相关系数仍为1.0?

为什么两组数值不全相同,相关系数却为1.0?

你混淆了「数值完全一致」和「完美线性相关」的概念——pandas的corrwith()默认使用的皮尔逊相关系数,衡量的是变量间的线性相关性,而非数值的一致性。当相关系数为1.0时,只要求两组数据存在完美的正向线性关系(即一组值可以精确表示为另一组的线性函数:( y = ax + b ),其中 ( a > 0 )),不需要两组数值完全相同。

拿你给出的样本来说:《指环王》的非空评分是 [10, 3],《精灵宝钻》的是 [10, 9]。我们可以验证这两组数据的线性关系:
假设 ( y )(《精灵宝钻》评分)和 ( x )(《指环王》评分)满足 ( y = ax + b ),代入两组值:

  • ( 10 = 10a + b )
  • ( 9 = 3a + b )

解方程组可得 ( a = \frac{1}{7} ),( b = \frac{60}{7} )。代入验证:当 ( x=3 ) 时,( y = \frac{1}{7}*3 + \frac{60}{7} = 9 ),完全匹配。这说明两组数据是完美线性相关的,因此皮尔逊相关系数为1.0。

另外要注意,corrwith()计算时会自动排除存在缺失值的样本,只保留两组都有非空值的观测。你的场景里恰好只有这两个符合条件的样本,且它们满足完美线性关系,所以得到了1.0的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 05:54:09