【发布时间】:2020-11-18 10:57:49
【问题描述】:
我正在尝试为存储在 Pandas 数据框中的大型数据矩阵计算 Kendall 的 tau。使用 corr 函数,method='kendall',我收到 NaN 的一行只有一个值(重复数组的长度)。有没有办法解决它?同样的问题也发生在 Spearman 的相关性上,大概是因为 Python 不知道如何对具有单个重复值的数组进行排名,这让我有了 Pearson 的相关性——由于它的正态性和线性假设,我犹豫使用它.
非常感谢任何建议!
【问题讨论】:
-
当输入恒定时,皮尔逊的相关系数没有定义,所以从技术上讲,
nan是正确的结果。 -
但我对 Pearson 没有这个问题——只有 Kendall 和 Spearman。
-
Spearman 基本上是 Pearson 应用到这个行列的。如果其中一个输入的所有等级都相同,则 Spearman 系数也应为
nan。 -
那我不明白为什么我的 Pearson 矩阵没问题,但我的 Spearman 的错误列与 Tau 相同。这是 Pandas / SciPy 的问题吗?
-
皮尔逊矩阵中常量输入的值是多少?什么代码计算该值?如果其中一个输入是常量,则最新版本的 SciPy 中的函数
scipy.stats.pearsonr将返回nan。
标签: python pandas scipy statistics correlation