Pearson相关系数

理解皮尔逊相关的两个角度

其一, 按照高中数学水平来理解, 皮尔逊相关(Pearson Correlation Coefficient)很简单, 可以看做将两组数据首先做Z分数处理之后, 然后两组数据的乘积和除以样本数

Z分数一般代表正态分布中, 数据偏离中心点的距离.等于变量减掉平均数再除以标准差.(就是高考的标准分类似的处理)

标准差则等于变量减掉平均数的平方和,再除以样本数,最后再开方.

所以, 根据这个最朴素的理解,我们可以将公式依次精简为:

alt text

其二, 按照大学的线性数学水平来理解, 它比较复杂一点,可以看做是两组数据的向量夹角的余弦. 台湾学者黄富廷在论文中进行了详细介绍.

 

皮尔逊相关的约束条件

从以上解释, 也可以理解皮尔逊相关的约束条件:

  • 两个变量间有线性关系

  • 变量是连续变量

  • 变量均符合正态分布,且二元分布也符合正态分布

  • 两变量独立

在实践统计中,一般只输出两个系数,一个是相关系数,也就是计算出来的相关系数大小,在-1到1之间;另一个是独立样本检验系数,用来检验样本一致性.

 

R语言例子

假设有100人, 一组数据是年龄,平均年龄是35岁,标准差是5岁;另一组数据是发帖数量,平均帖子数量是45份post,标准差是8份帖子.

假设这两组都是正态分布.我们来求这两者的皮尔逊相关系数,R脚本如下:

> x<-rnorm(n=100,mean=35,sd=5)  #创建一组平均数为35,标准差为5,样本数为100的随机数
> y<-rnorm(n=100,mean=45,sd=8) #创建一组平均数为45,标准差为8,样本数为100的随机数
>  cor.test(x,y,method="pearson") #计算这两组数的相关,并进行T检验      

然后R输出结果为:

 Pearson's product-moment correlation

data:  x and y
t = -0.0269, df = 98, p-value = 0.9786
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.1990316  0.1938019
sample estimates:
         cor
-0.002719791

当然,这里是随机数.也可以用非随机的验证一下计算.

皮尔逊相关用于web开发

直接将R与Ruby关联起来.调用很简单,仿照上述例子:

cor(x,y)

有这么几个库可以参考:

rsruby

statisticus

simpler

说明, 以上为ruby调用库. pythone程序员可以参考: Rpy

php程序员可以参考

皮尔逊相关的简单分类

0.8-1.0 极强相关 0.6-0.8 强相关  0.4-0.6 中等程度相关  0.2-0.4 弱相关  0.0-0.2 极弱相关或无相关

posted @ 2015-01-20 15:32  黎嫣  阅读(3502)  评论(0编辑  收藏  举报