zoukankan      html  css  js  c++  java
  • 协方差和相关系数

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    可以通俗的理解为:两个变量在变化过程中是同方向变化?还是反方向变化?同向或反向程度如何?

    你变大,同时我也变大,说明两个变量是同向变化的,这时协方差就是正的。

    你变大,同时我变小,说明两个变量是反向变化的,这时协方差就是负的。

    从数值来看,协方差的数值越大,两个变量同向程度也就越大。反之亦然。


    咱们从公式出发来理解一下:

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    公式简单翻译一下是:如果有X,Y两个变量,每个时刻的“X值与其均值之差”乘以“Y值与其均值之差”得到一个乘积,再对这每时刻的乘积求和并求出均值(其实是求“期望”,但就不引申太多新概念了,简单认为就是求均值了)。


    下面举个例子来说明吧:

    比如有两个变量X,Y,观察t1-t7(7个时刻)他们的变化情况。


    简单做了个图:分别用红点和绿点表示X、Y,横轴是时间。可以看到X,Y均围绕各自的均值运动,并且很明显是同向变化的。

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    如果反向运动呢?

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    当然上面说的是两种特殊情况,很多时候X,Y的运动是不规律的,比如:


    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)
    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)
    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    总结一下,如果协方差为正,说明X,Y同向变化,协方差越大说明同向程度越高;如果协方差为负,说明X,Y反向运动,协方差越小说明反向程度越高。


    --------LINE---------

    一般的同学看到above the line的内容就ok了。但有一些爱钻研的同学,可能会进一步提问:

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    那就继续往下看……


    这种情况是有可能出现的,比如:

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    另外,如果你还钻牛角尖,说如果t1,t2,t3……t7时刻X,Y都在增大,而且X都比均值大,Y都比均值小,这种情况协方差不就是负的了?7个负值求平均肯定是负值啊?但是X,Y都是增大的,都是同向变化的,这不就矛盾了?

    这个更好解释了:这种情况不可能出现!

    因为,你的均值算错了……

    X,Y的值应该均匀的分布在均值两侧才对,不可能都比均值大,或都比均值小。

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    所以,实际它的图应该是下面这样的:

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    好了,现在,对于协方差应该有点感觉了吧?

    二、相关系数:

    对于相关系数,我们从它的公式入手。一般情况下,相关系数的公式为:

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    翻译一下:就是用X、Y的协方差除以X的标准差和Y的标准差。

    所以,相关系数也可以看成协方差:一种剔除了两个变量量纲影响、标准化后的特殊协方差。


    既然是一种特殊的协方差,那它:

    1、也可以反映两个变量变化时是同向还是反向,如果同向变化就为正,反向变化就为负。

    2、由于它是标准化后的协方差,因此更重要的特性来了:它消除了两个变量变化幅度的影响,而只是单纯反应两个变量每单位变化时的相似程度。


    比较抽象,下面还是举个例子来说明:

    首先,还是承接上文中的变量X、Y变化的示意图(X为红点,Y为绿点),来看两种情况:

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    很容易就可以看出以上两种情况X,Y都是同向变化的,而这个“同向变化”,有个非常显著特征:X、Y同向变化的过程,具有极高的相似度!无论第一还是第二种情况下,都是:t1时刻X、Y都大于均值,t2时刻X、Y都变小且小于均值,t3时刻X、Y继续变小且小于均值,t4时刻X、Y变大但仍小于均值,t5时刻X、Y变大且大于均值……


    可是,计算一下他们的协方差,

    第一种情况下:

    [(100-0)	imes (70-0) +( -100-0)	imes ( -70-0)+(-200-0)	imes (-200-0)...]div 7approx 15428.57

    协方差差出了一万倍,只能从两个协方差都是正数判断出两种情况下X、Y都是同向变化,但是,一点也看不出两种情况下X、Y的变化都具有相似性这一特点。


    这是为什么呢?


    因为以上两种情况下,在X、Y两个变量同向变化时,X变化的幅度不同,这样,两种情况的协方差更多的被变量的变化幅度所影响了。


    所以,为了能准确的研究两个变量在变化过程中的相似程度,我们就要把变化幅度对协方差的影响,从协方差中剔除掉。于是,相关系数就横空出世了,就有了最开始相关系数的公式:

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    那么为什么要通过除以标准差的方式来剔除变化幅度的影响呢?咱们简单从标准差公式看一下:

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    从公式可以看出,标准差计算方法为,每一时刻变量值与变量均值之差再平方,求得一个数值,再将每一时刻这个数值相加后求平均,再开方。


    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)
    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    所以标准差描述了变量在整体变化过程中偏离均值的幅度。协方差除以标准差,也就是把协方差中变量变化幅度对协方差的影响剔除掉,这样协方差也就标准化了,它反应的就是两个变量每单位变化时的情况。这也就是相关系数的公式含义了。


    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    总结一下,对于两个变量X、Y,

    当他们的相关系数为1时,说明两个变量变化时的正向相似度最大,即,你变大一倍,我也变大一倍;你变小一倍,我也变小一倍。也即是完全正相关(以X、Y为横纵坐标轴,可以画出一条斜率为正数的直线,所以X、Y是线性关系的)。

    随着他们相关系数减小,两个变量变化时的相似度也变小,当相关系数为0时,两个变量的变化过程没有任何相似度,也即两个变量无关。

    当相关系数继续变小,小于0时,两个变量开始出现反向的相似度,随着相关系数继续变小,反向相似度会逐渐变大。

    当相关系数为-1时,说明两个变量变化的反向相似度最大,即,你变大一倍,我变小一倍;你变小一倍,我变大一倍。也即是完全负相关(以X、Y为横纵坐标轴,可以画出一条斜率为负数的直线,所以X、Y也是线性关系的)。



    有了上面的背景,我们再回到最初的变量X、Y的例子中,可以先看一下第一种情况的相关系数:

    X的标准差为

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)

    说明第一种情况下,X的变化与Y的变化具有很高的相似度,而且已经接近完全正相关了,X、Y几乎就是线性变化的。


    那第二种情况呢?

    X的标准差为

    如何通俗易懂地解释「协方差」与「相关系数」的概念?(转)
    说明第二种情况下,虽然X的变化幅度比第一种情况X的变化幅度小了10000倍,但是丝毫没有改变“X的变化与Y的变化具有很高的相似度”这一结论。同时,由于第一种、第二种情况的相关系数是相等的,因此在这两种情况下,X、Y的变化过程有着同样的相似度。


    好了,讲了这么多,不知你看完是否对相关系数也有了一些感觉?


    三、写在最后

    本文主要还是想给非理工专业、入门级的各位朋友看的,自己也曾在茫茫公式海中痛苦过,但后来发现对一个公式的原理有了一个感觉后,它也就变得好记很多了,而且也愿意深入研究它了。这篇文章也就是培养你对于协方差、相关系数的这种感觉。但是,为了通俗易懂,有些地方也不够全面、严谨。也许你看完本文,经过自己的学习研究,也会有自己的一些想法,那你可以继续研究一下本题目下其他答主的答案,通过引入向量、内积等定义,会把协方差、相关系数说明得更加严谨和透彻。总之学习是一个循序渐进的过程,不要觉得彻底明白了什么,那往往是你踏入一个领域的第一步。

  • 相关阅读:
    【Vue教程系列:第一篇】Win7 搭建Vue开发环境
    MVC 之 WebAPI 系列二
    MVC 之 WebAPI 系列一
    Javascript 截取2位小数
    Javascript 处理时间大全
    SpringBoot是如何动起来的?
    超全、超详的Spring Boot配置讲解笔记
    Java数据结构-ArrayList最细致的解析笔记
    Redis 到底是怎么实现“附近的人”这个功能的?
    02--Java Jshell的使用 最适合入门的Java教程
  • 原文地址:https://www.cnblogs.com/jeasonit/p/10856708.html
Copyright © 2011-2022 走看看