猜您喜欢::
说句大实话,搞懂协方差和它那个“亲戚”相关系数,实际上就跟学做生意一样,不是背背定义,就是得把如何算清楚。别总盯着那些教科书上把公式一个个扒拉一遍,那玩意儿看着像死记硬背的清单。咱们直接掐指算个例子,把心虚的事都打消了。 举个经典的例子吧,比如咱们分析两组数据,一组是气温(℃),另一组是冰淇淋销量(桶)。 要是是散点图,你会看到那种搞笑的“跷跷板”效果。冬天气温低的时候,冰淇淋销量少;夏天气温高,销量大。
这时候气温和冰淇淋销量的数值是“同向”的,气温往上,销量也往上,这就是正相关。
要是你把这两个数乘在一起,你会发现结局全是正数。
这时候,我们脑子里蹦出来的第一个念头就是“它们长得挺像”,要么说,它们的变化趋势是一致方向。 这时候数学上定义协方差(Covariance)就派上用场了。协方差到底是啥?它实际上是个“搬运工”,负责告诉你这两个变量是“手牵手”还是“并肩走”。
要是你算出来的协方差是个庞大的正数,那就证明它们俩是一伙的,一起涨一起跌,要么一起跌一起涨。
反过来,要是是个庞大的负数,说明它们俩是“对头”的,一个涨另一个跌。 可是,这里有个庞大的坑。
要是你只看协方差的符号,彻底搞不定这两组数据的“亲疏程度”。出于协方差有个怪癖:它随数据的缩放(Scale Change)而变化。
要是你把温度从 Celsius 换成 Fahrenheit,要么把销量从桶换成个亿的本钱,协方差那个数字可能会变个方向,就连变得超级大,把你误导。 这时候,你得掏出那个最终目标——相关系数(Correlation Coefficient)。它的功能就是“去腥”和“调味”。它不做那种大乘法算,只是做点减法。公式核心就是护身符:它把协方差除以一个预想出来的最大值。
这个最大值本身就不取决于你的具体数据是啥,只取决于数据本身的缩放比例。
故此,别看算复杂,但它把“单位”和“规模”甩在了脑后。 这样算出来的相关系数,范围就锁死在 0 到 1 之间了。0 代表彻底没关系,1 代表彻底一致。
这个 0 到 1 的区间,才是我们真正想要的“纯度”。 再看回数据,比如咱们之前那个冰淇淋和气温的例子。假设气温每升高 1 度,冰淇淋销量平均涨 10 桶;销量每涨 10 桶,气温平均降 0.1 度。
这时候协方差算出来是个正数,说明方向对。但要是你随意改个数据,让气温的波动幅度变大,销量涨得更快。协方差可能会变成个更大的正数,就连和之前的负数一样大,让你误当作关系碎了,实际上只是“参数”变了罢了。而相关系数呢?它根本不会受这个影响。出于它把那个放大的“跳动幅度”给除掉了。
最终,它可能会给你一个接近 0.9 就连 1.0 的结局。
这就告诉咱们,这两件事之间的那种“同频共振”,是经得起任何缩放考验的,哪怕把温度换成华氏度,要么把销量换成个数,这种正相关的本性是不变的。 故此,咱们记住这个逻辑:协方差负责告诉你们是“同向”还是“反向”地打架,但它是个“情绪激动”的数据,好办受干扰。而相关系数是那个“冷静机”,它过滤掉了所有乱七八糟的缩放因素,只留下最纯粹、最能反映真关系的信号。 在专业机器学习的场景里,大家实际上更爱用相关系数,出于它对噪声不敏感。
要是两个变量相关性高,哪怕其中一个有噪声,另一个跟着走的趋势也能学到。
反之,要是相关性低,哪怕数据量挺大,模型也可能认定它们风马牛不相及,学不出东西来。 还有啊,别当作相关系数高就一定好。
有时候,两个变量相关性挺高,但它们是个“假哥们儿”,都是跟第三个变量绑定的。
比方说,那个冰淇淋和气温的例子,要是强行去配,非要让冰淇淋和气温也成对好,那数据得是假的。在真世界里,相关性高往往意味着它们串门了。但作为初步的筛选器,相关性确实能帮我们剔除那些毫无意义的“白噪音”。 最终总结一下,协方差是讲定性方向的,相关系数是讲定量程度的。一个负责“看脸色”,一个负责“给分数”。千万别把它们混着用。
要是你只盯着协方差看,可能会在数据变个单位的时候晕头转向;要是你只盯着相关系数看,又可能忽略了它们之间原本那种自然的关联性。 实际干活的时候,一般先算个相关系数,看看是不是“靠谱”的。
要是是正数,再回头看协方差,看看符号对不对。
有时候,这个“靠谱”的系数可能差不多,但协方差是个大正数,说明数据整体挺有“戏”可演,值得深挖。
要是协方差是个小负数,要么绝对值特别小,那说明它们之间那种“化学性质”不忒好,要么根本就没那么强的联系。 故此,别被那些复杂的公式绕晕了。
记住口诀:协方差看方向,相关系数看纯度。数据变了,因子不变。
只要相关性算出来是个稳定靠谱的数,哪怕它中间是个负数,只要方向对,那大约率就是好东西。
这才是搞数据分析、搞数据工程时最该记住的直觉。
好文推荐::