与常数的相关性

机器算法验证 r 相关性
2022-03-01 03:21:52

给定一组数据,我试图获得 2 个变量之间的相关性。偶尔,在给定的数据集中,当其中一个变量具有恒定值时,由于该变量的标准差为零,因此我会得到相关性的 NA 值。(在 R 中)。我想明确地为这些场景中的相关性分配一个值,或者尝试通过其他方式获得一些值,以便我能够将这一点与我计算相关性的其他时间进行比较。我该怎么做?(1) 我是否应该向该变量添加一些噪声并再次计算相关性。那会是一件有意义的事情吗?

2个回答

回想一下,相关性被定义为

ρX,Y=σ(X,Y)σXσY

这意味着如果您的“变量”之一是恒定的,那么它就不是变量,它的方差等于零,因此,它与任何事物的相关性都是未定义的(因为您除以零)。

变量的标准差X加常数c与标准差相同X

σ(X+c)=σ(X)

协方差也一样

σ(X+c,Y)=σ(X,Y)

因此,在您的常量“变量”中添加噪声会导致测量噪声与其他变量的相关性(您的“变量”是c噪音是X)。

另一方面,随机变量与常数的协方差为零

σ(Y,c)=0

恒定随机变量独立于任何其他随机变量。因此,如果您真的需要为这种情况重新定义相关性,那么最好的选择是0. 但是请注意,正如尼克考克斯在下面的评论中指出的那样,这并不能解决您的任何问题。

恒定随机变量的基本问题是它独立于其他所有内容,并且不会改变您的分析。因此,许多软件包在使用常量变量时​​会返回错误,或者会自动将它们从分析中删除。这就是 R 所做的,并且这种行为与相关性的定义是一致的。

关于如何用 R(或任何语言)做事的问题在这里是题外话,但你也有一个统计问题,即

当一个变量是常数时,两个变量之间相关性的合理值是多少?

您建议为变量添加一些噪音。如果您要这样做,那么您不妨简单地说相关性为 0。

问题是你真的不知道相关性应该是什么——它可能是从-1到1的任何东西。这就是R给出NA的原因。因此,除了说“我们没有信息”并且不将其与其他值进行比较之外,没有真正合理的事情可以做。