【问题标题】:Row-wise correlation between two matrices两个矩阵之间的逐行相关
【发布时间】:2021-03-07 20:26:57
【问题描述】:

我有以下矩阵:

还有:

我想计算它们的逐行 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

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

【问题讨论】:

    标签: r matrix statistics pearson-correlation multi-dimensional-scaling


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我相信我没听懂。我应该把runifs放在代码的哪里?我想计算第一个矩阵的城市坐标与第二个矩阵的城市坐标如何相关?逐行相关不是一个很好的衡量标准吗?
    • ab 视为两个矩阵中的对应行。我试图证明为什么你总是得到 1。你应该得到 1,但它没有意义。问题是你只有两个值(这里是列)。当你只有两个值时,你总是得到 1 的相关性。
    • 好的,谢谢,我完全误解了逐行关联的工作原理。因此,如果我想了解这些矩阵在坐标方面的不同之处以及它们之间的相关程度,我应该研究哪些度量?
    • 这不是因为相关性是逐行的。这是因为没有足够的列。
    • 至于你应该做什么,目前还不清楚你想做什么。也许将其作为一个单独的问题发布,并提供更多解释。
    猜你喜欢
    • 2015-10-12
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多