首页 > 解决方案 > 由于 0 方差而具有 NA 值的 cor 函数

问题描述

初学者 R 用户在这里。我正在使用 cor 函数来获取数据帧的 2 列之间的 Kendal 的 tau-b 等级相关系数。此类列的示例如下:

A    B
1    1
1    2
1    3

当我使用cor(d,method="kendall")

结果是 A 和 B 之间的相关性为 NA。它不应该是 0 吗?如果没有,我可以使用 cor 函数中的参数将这个 NA 结果替换为 0 吗?

标签: r

解决方案


考虑一下如果我们稍微扰动常数列会发生什么。根据所使用的特定扰动,我们得到截然不同的解决方案。事实上,我们可以通过不同的扰动得到我们喜欢的任何相关性。因此,对相关性使用任何特定值确实没有意义,最好将其保留为 NA。

x <- c(1, 1, 1)
y <- 1:3

cor(x + (1:3) * 1e-10, y, method = "spearman")
## [1] 1

cor(x - (1:3) * 1e-10, y, method = "spearman")
## [1] -1

推荐阅读