【发布时间】:2015-11-14 13:32:52
【问题描述】:
我正在尝试计算数据集中三列之间的相关性。数据集相对较大(4 GB)。当我计算感兴趣的列之间的相关性时,我得到的值很小,例如 0.0024、-0.0067 等。我不确定这个结果是否有意义。我应该对数据进行采样然后尝试计算相关性吗? 对此主题的任何想法/经验将不胜感激。
【问题讨论】:
标签: python statistics correlation pyspark
我正在尝试计算数据集中三列之间的相关性。数据集相对较大(4 GB)。当我计算感兴趣的列之间的相关性时,我得到的值很小,例如 0.0024、-0.0067 等。我不确定这个结果是否有意义。我应该对数据进行采样然后尝试计算相关性吗? 对此主题的任何想法/经验将不胜感激。
【问题讨论】:
标签: python statistics correlation pyspark
大型数据集的相关性并没有什么特别之处。您需要做的只是一些简单的聚合。
如果您想提高数值精度(请记住浮点数学是有损的),您可以使用 Kahan 求和和类似技术,尤其是对于接近 0 的值。
但也许您的数据没有很强的相关性?
尝试可视化示例!
【讨论】:
首先,请确保您应用了正确的相关公式。请记住,给定向量 x 和 y,相关性为 ((x-mean(x)) * (y - mean(y)))/(length(x)*length(y)),其中 * 表示点积和length(x) 是 x 中各项的平方和的平方根。 (我知道这很愚蠢,但发现错误输入的公式比重做程序要容易得多。)
您是否有强烈的预感认为这些列之间应该存在某种关联?如果你不这样做,那么这些小值是合理的。另一方面,如果你很确定应该有很强的相关性,那么尝试随机抽取 100 对样本,然后在其中找到相关性,或者绘制它们以进行目视检查,这也可以告诉你是否存在相关性现在。
【讨论】: