【问题标题】:NaN values with Pandas Spearman and Kendall correlations具有 Pandas Spearman 和 Kendall 相关性的 NaN 值
【发布时间】: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


【解决方案1】:

我决定放弃复杂的数学,转而使用直觉。因为 NaN 值只出现在具有恒定值的数组上,所以我突然想到它与其他数据之间没有关系,因此我将其 Spearman 和 Kendall 相关性设置为零。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 2013-10-19
    • 2018-05-09
    • 2018-02-01
    • 2018-07-13
    • 2013-03-30
    • 1970-01-01
    相关资源
    最近更新 更多