【问题标题】:How to calculate correlation on large number of records?如何计算大量记录的相关性?
【发布时间】:2015-11-14 13:32:52
【问题描述】:

我正在尝试计算数据集中三列之间的相关性。数据集相对较大(4 GB)。当我计算感兴趣的列之间的相关性时,我得到的值很小,例如 0.0024、-0.0067 等。我不确定这个结果是否有意义。我应该对数据进行采样然后尝试计算相关性吗? 对此主题的任何想法/经验将不胜感激。

【问题讨论】:

    标签: python statistics correlation pyspark


    【解决方案1】:

    大型数据集的相关性并没有什么特别之处。您需要做的只是一些简单的聚合。

    如果您想提高数值精度(请记住浮点数学是有损的),您可以使用 Kahan 求和和类似技术,尤其是对于接近 0 的值。

    但也许您的数据没有很强的相关性?

    尝试可视化示例!

    【讨论】:

      【解决方案2】:

      首先,请确保您应用了正确的相关公式。请记住,给定向量 x 和 y,相关性为 ((x-mean(x)) * (y - mean(y)))/(length(x)*length(y)),其中 * 表示点积和length(x) 是 x 中各项的平方和的平方根。 (我知道这很愚蠢,但发现错误输入的公式比重做程序要容易得多。)

      您是否有强烈的预感认为这些列之间应该存在某种关联?如果你不这样做,那么这些小值是合理的。另一方面,如果你很确定应该有很强的相关性,那么尝试随机抽取 100 对样本,然后在其中找到相关性,或者绘制它们以进行目视检查,这也可以告诉你是否存在相关性现在。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-25
        • 2013-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-14
        • 1970-01-01
        • 2011-10-09
        相关资源
        最近更新 更多