1

我有以下矩阵:

EurodistCL.scl

和:

EurodistM.scl

我想计算它们的逐行 pearson 相关性,并且我已经尝试了这些代码:

RowCor<- sapply(1:21, function(i) cor(EurodistCL.scl[i,], EurodistM.scl[i,], method = "pearson"))

和:

cA <- EurodistCL.scl - rowMeans(EurodistCL.scl)
cB <- EurodistM.scl- rowMeans(EurodistM.scl)
sA <- sqrt(rowMeans(cA^2))
sB <- sqrt(rowMeans(cB^2))
rowMeans(cA * cB) / (sA * sB)

两者都给出相同的输出,即 21 个相关向量。

尽管这些矩阵显然是高度相关的,但它们并不是完全相关的,所以我希望一些相关系数为 0.99 或 0.98

为什么我只得到一个?代码或理论有问题吗?

4

1 回答 1

2

这是因为您连续只有两个值。即使是随机值也会给出(+或-)1。试试这个

a <- runif(2)
b <- runif(2)
cor(a, b)

所以,这个理论是不正确的。虽然可以得到两个样本的相关系数,但用处不大。

要估计相关系数,您需要两个以上的对应样本。

于 2020-11-25T00:47:07.460 回答