R语言计算相关系数时出现NA的原因

先了解一下相关性计算公式:
相关性系数R=协方差/两个变量标准差的乘积
R中公式 cor(x,y) = cov(x,y)/(sd(x)*sd(y))

R语言计算相关系数时出现NA的原因一般有两个:

  1. 数据中有NA值
> > x <- c(1,2,3)
> y <- c(4,NA,4)
> cor(x,y)
[1] NA
> cov(x,y)/(sd(x)*sd(y))
[1] NA
  1. 用于计算相关性的两个向量中至少有一个标准差为0(向量中元素均为同样值时sd=0),导致计算相关系数R时分母为0,进而导致R计算为NA。
#正常情况
> x <- c(1,2,3)
> y <- c(5,5,6)
> sd(x)
[1] 1
> sd(y)
[1] 0.5773503
> cor(x,y)
[1] 0.8660254
> cov(x,y)/(sd(x)*sd(y))
[1] 0.8660254

#有一个标准差为0的情况

> x <- c(1,2,3)
> y <- c(4,4,4)
> sd(x)
[1] 1
> sd(y)
[1] 0
> cor(x,y)
[1] NA
Warning message:
In cor(x, y) : 标准差为零
> cov(x,y)/(sd(x)*sd(y))
[1] NaN


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部