R 从相关函数中提取NA

R 从相关函数中提取NA,r,correlation,R,Correlation,你能给我解释一下这两种情况的区别吗 > cor(1:10, rep(10,10)) [1] NA Warning message: In cor(1:10, rep(10, 10)) : the standard deviation is zero > cor(1:10, 1:10) [1] 1 第一条只是一条直线,第二条我希望相关性是一。我没有考虑什么?谢谢绘制数据,它应该是清晰的。数据集 ## y doesn't vary plot(1:10, rep(10,10)) 这只

你能给我解释一下这两种情况的区别吗

> cor(1:10, rep(10,10))
[1] NA
Warning message:
In cor(1:10, rep(10, 10)) : the standard deviation is zero

> cor(1:10, 1:10)
[1] 1

第一条只是一条直线,第二条我希望相关性是一。我没有考虑什么?谢谢

绘制数据,它应该是清晰的。数据集

## y doesn't vary
plot(1:10, rep(10,10))
这只是一条水平线。水平线的相关系数,因为
y
的标准偏差估计值为0(出现在相关系数的分母上)。当

这条线是:

y = x

绘制数据,数据应该清晰。数据集

## y doesn't vary
plot(1:10, rep(10,10))
这只是一条水平线。水平线的相关系数,因为
y
的标准偏差估计值为0(出现在相关系数的分母上)。当

这条线是:

y = x

如果要测量点的“直线”度, 可以使用(一减)方差矩阵特征值的比率

f <- function(x,y) { 
  e <- eigen(var(cbind(x,y)))$values
  1 - e[2] / e[1]
}

# To have values closer to 0, you can square that quantity.
f <- function(x,y) { 
  e <- eigen(var(cbind(x,y)))$values
  ( 1 - e[2] / e[1] )^2
}
f( 1:10, 1:10 )
f( 1:10, rep(1,10) )
f( rnorm(100), rnorm(100) )     # Close to 0
f( rnorm(100), 2 * rnorm(100) ) # Closer to 1
f( 2 * rnorm(100), rnorm(100) ) # Similar

f如果要测量点的“直线”程度,
可以使用(一减)方差矩阵特征值的比率

f <- function(x,y) { 
  e <- eigen(var(cbind(x,y)))$values
  1 - e[2] / e[1]
}

# To have values closer to 0, you can square that quantity.
f <- function(x,y) { 
  e <- eigen(var(cbind(x,y)))$values
  ( 1 - e[2] / e[1] )^2
}
f( 1:10, 1:10 )
f( 1:10, rep(1,10) )
f( rnorm(100), rnorm(100) )     # Close to 0
f( rnorm(100), 2 * rnorm(100) ) # Closer to 1
f( 2 * rnorm(100), rnorm(100) ) # Similar

你好,谢谢。我知道。但我认为相关性并不是根据与我的数据相关的公式计算出来的。我不理解你的评论。我的意思是,我认为唯一重要的是“多少符合”是点。。。按照我的逻辑,我是说。谢谢你的解释,我将把
cor
包装成返回一的东西。在这种情况下,皮尔逊相关系数的分母中有x的方差。如果你只改变x中零方差的极限情况,它不能以通常的方式解释,但仍然不能真正回答你的问题。您可以使用类似于线性拟合的残差方差的东西,例如
1/(n-p)*sum(lsfit(cbind(1,1:10),rep(10,10))$residuals^2)
。n:值的数量,p:参数的数量,谢谢。我知道。但我认为相关性并不是根据与我的数据相关的公式计算出来的。我不理解你的评论。我的意思是,我认为唯一重要的是“多少符合”是点。。。按照我的逻辑,我是说。谢谢你的解释,我将把
cor
包装成返回一的东西。在这种情况下,皮尔逊相关系数的分母中有x的方差。如果你只改变x中零方差的极限情况,它不能以通常的方式解释,但仍然不能真正回答你的问题。您可以使用类似于线性拟合的残差方差的东西,例如,
1/(n-p)*sum(lsfit(cbind(1,1:10),rep(10,10))$residuals^2)
。n:值的数量,p:参数的数量,感谢这个好方法。是的,它不是对称的
y
是一个以不均匀间隔(可能改变也可能不改变)测量的时间值。我的问题只是为了发现
NA
的本质,但似乎值得再发布一个…嗨,谢谢你的好方法。是的,它不是对称的
y
是一个以不均匀间隔(可能改变也可能不改变)测量的时间值。我的问题只是为了发现
NA
的本质,但似乎值得再发布一个。。。