统计学中的相关性分析

掌握一点儿统计学介绍了统计学中常用到的函数,特别重点介绍了Standard Deviation(标准差)。接下来结合一个案例来谈谈相关性(Correlation)分析的问题。按照维基百科的讲解,所谓“相关性”指的是两个变量之间关系(或依赖)的度量。相关性的度量值其取值范围从-1(perfect negative relationship,完美负相关)到1(perfect positive relationship,完美正相关)之间,若值为0,则表明两个变量之间不存在straight-line relationship(直线关系)。而所谓“Linear Correlation(线性相关)”指的就是两个变量之间存在一种直线关系。

在Data Science from Scratch一书中给出一个案例分析:某社交网站某人的朋友数与他(她)在该网站上花费的时间之间的关系。通过对网站日志数据的挖掘,可以获得用户每天的分钟数(记为daily_minutes)和朋友数(记为num_friends)。根据前面获得的知识,这个问题就转换为求daily_minutes与num_friends两个变量之间的Correlation。

Covariance

要计算相关性,可以先看看covariance(协方差)的概念,它与variance(方差)是一个成对的概念。variance度量的是单个变量与变量平均值的偏差,而covariance度量的是两个变量的总体误差。在Python中,可以实现为:

def covariance(x, y):
    n = len(x)
    return dot(de_mean(x), de_mean(y)) / (n - 1)def de_mean(x):
    """获得各个数与mean的差值"""
    x_mean = mean(x)
    return [x_i - x_mean for x_i in x]

dot函数的功能是将两组数的元素两两相乘后对它们的乘积进行求和。至于为什么是除以n - 1,在掌握一点儿统计学中已有详细介绍。

注意de_mean并没有对差值取绝对值或求平方,因而当x和y变量同时都大于各自平均数或同时都小于各自平均数时,covariance的值就为正数,如果一个变量大于平均数,而另一个小于平均数,结果就为负数。根据协方差的意义,如果两个变量分别为x和y,当covariance值为较大的正数时,则y值大,x值也会大,y值小,x值也会小;若covariance值为较大的负数时,变化则是逆向的;若接近于0,意味着二者几乎不存在关系。

不过,计算covariance存在两个致命的问题。其一是它忽略了两个变量的单位问题,例如daily_minutes的单位是分钟,而num_friends是个数,二者风马牛不相及,就好似将苹果与西瓜进行对比一样,没有直接的对比性。其二则是covariance值的大小不足以说明变量间的相关性。例如当num_friends的数量翻倍而daily_minutes的数值保持不变时,虽然covariance的值同样翻倍了,但并不认为这两个变量的相关性加强了。

注意,从数值看,covariance的取值并非-1到1之间,因而也不符合计算相关性的要求。

Correlation

为了消除前面提及的两个因素对相关性的影响,我们可以对两个变量求标准差,通过压缩离散度来保障度量的精确性。计算correlation的函数为:

def correlation(x, y):
    stdev_x = standard_deviation(x)
    stdev_y = standard_deviation(y)
    if stdev_x > 0 and stdev_y > 0:
        return covariance(x, y) / (stdev_x * stdev_y)
    esle:
        return 0

此时,correlation的取值范围在-1到1之间。若值为-1,可以称之为perfect anti-correlation,为1,则称之为perfect correlation。

但是,我们在采集数据样本时,需要特别关注一些异常数据,这些数据就像声音分析时出现的噪音一般,会对分析结果产生较大的影响,导致分析失误。例如,对某一个用户而言,可能他拥有非常高的朋友数,但每天用在该网站的时间为0,这就会影响correlation的取值。

这种异常数据在现实生活中是极为常见的情况,借助前面的例子,可能出现的情况是某个拥有高朋友数的用户因为外出度假,无法方便的上网,导致在度假期间几乎没有上网分钟数。因此在进行数据分析时,我们要提前甄别这些异常数据,然后在分析时过滤这些异常数据。

辛普森悖论(Simpson's Paradox)

辛普森悖论是由英国统计学家E.H.Simpson在1951年提出的悖论,即在某个条件下的两组数据,分别讨论时都会满足某种性质,可是一旦合并考虑,却可能导致相反的结论。

书中给出一个范例,视图通过计算数据科学家的平均朋友数来判断他们的社交参与程度。进行分析时,将数据样本分为西海岸(West Coast)和东海岸(East Coast)数据科学家。结果得到的结果如下所示:

coast

# of members

avg. # of friends

West Coast

101

8.2

East Coast

103

6.5

根据朋友数的平均值来看,西海岸的数据科学家似乎更有朋友缘。然而,当我们为该数据加入一个学位(degree)变量时,发现数据出现了迥然不同的变化:

coast

degree

# of members

avg. # of friends

West Coast

PhD

35

3.1

East Coast

PHD

70

3.2

West Coast

no PhD

66

10.9

East Coast

no PHD

33

13.4

在增加了degree变量时,发现无论是拥有博士学位的数据科学家还是没有博士学位的数据科学家,在朋友数的平均值方面都是东海岸数据科学家的值要高。这与没有引入degree变量之前的数据截然相反。

为什么会造成这样的结果呢?原因在于数据的量与质是不等价的,就好似我们只以100场篮球比赛的胜率来评价一只球队的水平高低一样。如果一只球队专找高手挑战20场而胜1场,另外80场找平手挑战而胜40场,结果胜率41%;另一只球队则专挑高手挑战80场而胜8场,而剩下20场平手打个全胜,结果胜率为28%,比 41%小很多,但仔细观察挑战对象,后者明显较有实力。因此,若要避免辛普森悖论,就需要斟酌各个分组的权重,以一定的系数去消除以分组资料基数差异所造成的影响。

Correlation和Causation(因果关系)

两个变量的相关性并不意味着二者存在因果关系(correlation is not causation)。即使x和y的关系是强相关性,也不能意味着是x是y的因,y是x的果,因为影响到y的除了x之外,可能还有其他的变量。

即以sum_friends与daily_minutes为例,一个用户的朋友数越多,确实可能导致他在该网站上花费的时间数增加,但也有可能是该网站上发表的文章内容吸引了用户。即使是朋友数,其实也存在质量之分。例如某个用户的朋友数也许不多,但如果他的朋友都是他的同好或知己,会极大地影响上网时间的激增。假设这个网站是数据科学相关的网站,那么用户对数据科学的热爱程度同样会影响到他的上网时间。

原文发布于微信公众号 - 逸言(YiYan_OneWord)

原文发表时间:2015-09-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量化投资与机器学习

【Python量化投资】金融应用中用matplotlib库实现的数据可视化

Python中,matplotlib可以视为数据可视化的基准和主力。尽管有许多其他的可视化库,但是matplotlib已经确立了一个标杆,在许多情况下,它都是健...

2235
来自专栏ATYUN订阅号

赫尔辛基大学AI基础教程:赔率和概率(3.1节)

在赫尔辛基大学AI基础教程:搜索和游戏(2.3节)中,我们讨论了搜索以及它在完全信息时的应用 ,比如像国际象棋这样的游戏。但是,在现实世界中,事情很少这样清晰。

692
来自专栏鸿的学习笔记

用python讲故事(下)

从排序(歌曲,然后发生了点什么)到英雄的幸福的大驼峰,随后是阴暗的山谷。 我们检测到某种电影/故事的迪斯尼公式吗? 当绘制线在不同长度上发生时,很难比较这些曲线...

391
来自专栏龙行天下CSIEM

科学瞎想系列之五十 场是个神马鬼

无论你信与不信,它无时无刻不存在着; 无论你用与不用,它无时无刻不作用着; 无论你懂与不懂,它无时无刻不影响着。 ...

2684
来自专栏PPV课数据科学社区

【学习】Python大数据学习路线图

大家好,附图,为python大数据学习的一个提纲,相关的书本,会慢慢补充进来。 碍于版权问题,有些书本,请大家到网上去购买正版。 ? 1、Python学...

3313
来自专栏BestSDK

知其所以然之永不遗忘的算法

image.png 相信大部分同学曾经都学习过快速排序、Huffman、KMP、Dijkstra等经典算法,初次学习时我们惊叹于算法的巧妙,同时被设计者的智慧所...

2227
来自专栏Vamei实验室

统计02:怎样描绘数据

统计最开始的主要任务就是描述数据。正如我们在统计概述中提到的,群体的数据可能包含大量的数字,往往让人读起来头昏脑涨。电影《美丽心灵》中,数学家纳什不自觉地沉浸在...

2117
来自专栏数据派THU

教你用机器学习匹配导师 !(附代码)

作者:Zipporah Polinsky-Nagel, Gregory Brucchieri, Marissa Joy, William Kye, Nan Li...

862
来自专栏PPV课数据科学社区

写给大家看的机器学习书(第三篇)

题记 —— 我们为何出发 在开始这个系列文章的第三篇之前,为了对初次见面的朋友更友好,将这个题记放在前面。 哪怕所有的初心最终都被遗忘,至少现在的我们足够认真。...

2746
来自专栏机器之心

业界 | 谷歌发布语言处理框架SyntaxNet升级版,识别率提高25%

选自research.google 作者: David Weiss等 机器之心编译 参与:李泽南、晏奇 此项升级进一步扩展了 TensorFlow的功能,使这一...

2759

扫描关注云+社区