【问题标题】:correlate two data sets of different scales关联两个不同尺度的数据集
【发布时间】:2012-08-24 20:28:10
【问题描述】:

我们如何关联两个具有不同比例的数据集/曲线,即一条曲线的 y 轴范围为 (0,70000),另一条曲线的 y 轴范围为 (0, 150000)。如果它们的比例相同,则可以使用 cor() 函数。我想检查一条曲线是否依赖于另一条曲线/两条曲线是否相关。有什么想法吗?

【问题讨论】:

    标签: r curve-fitting


    【解决方案1】:

    如果您查看definition of Pearson's product moment of correlation(这是cor 默认计算的),您会发现它是一个线性运算符。也就是说,如果 a 和 b 是常数,则 cor(aX + b, Y) = cor(X, Y)。因此,X 和 Y 之间的范围差异并不重要。请记住,这种相关性仅衡量线性相关性:它们可能是“相关的”,但相关性较低。如果关系是非线性的,就会发生这种情况,例如:

    set.seed(100)
    x <- rnorm(100)
    y <- x^2
    cor(x,y)
    # 0.1224623
    

    【讨论】:

    • 这可以用来测量两条曲线之间的相似性吗?假设有两个范围非常不同但形状相似的一维数据集。上述相关性能否作为衡量它们之间相似性的适当指标?
    【解决方案2】:

    如果您正在寻找两组数据之间的相关性,那么相关性的大小并不取决于数据集范围的差异。

    例如,我们可以创建一组随机的y 值,然后将它们放大。相关性仍为 1:

    > y <- rnorm(100)
    > y2 <- y*2 + 20
    > cor(y, y2)
    [1] 1
    

    为了进一步表明相关量与尺度的线性变化无关,请查看不相关数据的情况:

    > y3 = rnorm(100)
    > cor(y, y3)
    [1] -0.05293818
    > y4 <- y3*2 + 20
    > cor(y, y4)
    [1] -0.05293818
    

    所以,回答你的问题。我认为函数cor 应该仍然适合你。

    【讨论】:

      【解决方案3】:

      我认为相关性不应该取决于数据的绝对范围。只需将一个数据集乘以一个常数,使其与另一个数据集具有相同的范围?

      【讨论】:

        猜你喜欢
        • 2021-11-19
        • 2014-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-19
        • 2014-08-13
        • 2019-10-25
        • 1970-01-01
        相关资源
        最近更新 更多