如何计算大量记录的相关性?

时间:2015-08-20 18:56:21

标签: python statistics correlation pyspark

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

2 个答案:

答案 0 :(得分:1)

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

您是否有强烈的预感,这些列之间应该有一些相关性?如果你不这样做,那么那些小的价值是合理的。另一方面,如果你非常确定应该有一个强相关性,那么尝试随机抽取100对并在那里找到相关性,或者将它们绘制成目视检查,这也可以告诉你是否存在存在相关性。

答案 1 :(得分:0)

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

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

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

尝试可视化样本!