两个矩阵之间的行相关

Row-wise correlation between two matrices

我有以下矩阵:

并且:

我想计算它们的逐行皮尔逊相关系数,我试过这些代码:

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

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

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

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

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

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