Pearson(皮尔逊)相关系数及MATLAB实现

转自:http://blog.csdn.net/wsywl/article/details/5727327

由于使用的统计相关系数比较频繁,所以这里就利用几篇文章简单介绍一下这些系数。

相关系数:考察两个事物(在数据里我们称之为变量)之间的相关程度。

如果有两个变量:X、Y,最终计算出的相关系数的含义可以有如下理解:

(1)、当相关系数为0时,X和Y两变量无关系。

(2)、当X的值增大(减小),Y值增大(减小),两个变量为正相关,相关系数在0.00与1.00之间。

(3)、当X的值增大(减小),Y值减小(增大),两个变量为负相关,相关系数在-1.00与0.00之间。

相关系数的绝对值越大,相关性越强,相关系数越接近于1或-1,相关度越强,相关系数越接近于0,相关度越弱。

通常情况下通过以下取值范围判断变量的相关强度:
相关系数     0.8-1.0     极强相关
                 0.6-0.8     强相关
                 0.4-0.6     中等程度相关
                 0.2-0.4     弱相关
                 0.0-0.2     极弱相关或无相关

Pearson(皮尔逊)相关系数

1、简介

皮尔逊相关也称为积差相关(或积矩相关)是英国统计学家皮尔逊于20世纪提出的一种计算直线相关的方法。

假设有两个变量X、Y,那么两变量间的皮尔逊相关系数可通过以下公式计算:

公式一:

Pearson(皮尔逊)相关系数及MATLAB实现

公式二:

Pearson(皮尔逊)相关系数及MATLAB实现

公式三:

Pearson(皮尔逊)相关系数及MATLAB实现

公式四:

Pearson(皮尔逊)相关系数及MATLAB实现

以上列出的四个公式等价,其中E是数学期望,cov表示协方差,N表示变量取值的个数。

2、适用范围

当两个变量的标准差都不为零时,相关系数才有定义,皮尔逊相关系数适用于:

(1)、两个变量之间是线性关系,都是连续数据。

(2)、两个变量的总体是正态分布,或接近正态的单峰分布。

(3)、两个变量的观测值是成对的,每对观测值之间相互独立。

3、Matlab实现

皮尔逊相关系数的Matlab实现(依据公式四实现):

[cpp] view plain copy
  1. function coeff = myPearson(X , Y)  
  2. % 本函数实现了皮尔逊相关系数的计算操作  
  3. %  
  4. % 输入:  
  5. %   X:输入的数值序列  
  6. %   Y:输入的数值序列  
  7. %  
  8. % 输出:  
  9. %   coeff:两个输入数值序列X,Y的相关系数  
  10. %  
  11. if length(X) ~= length(Y)  
  12.     error('两个数值数列的维数不相等');  
  13.     return;  
  14. end  
  15. fenzi = sum(X .* Y) - (sum(X) * sum(Y)) / length(X);  
  16. fenmu = sqrt((sum(X .^2) - sum(X)^2 / length(X)) * (sum(Y .^2) - sum(Y)^2 / length(X)));  
  17. coeff = fenzi / fenmu;  
  18. end %函数myPearson结束  

也可以使用Matlab中已有的函数计算皮尔逊相关系数:

[cpp] view plain copy
  1. coeff = corr(X , Y);  

4、参考内容

http://zh.wikipedia.org/zh-cn/%E7%9B%B8%E5%85%B3

更多相关文章
  • SpearmanRank(斯皮尔曼等级)相关系数及MATLAB实现
    转自:http://blog.csdn.net/wsywl/article/details/5859751 Spearman Rank(斯皮尔曼等级)相关系数 Charles Spearman命名,并经常用希腊字母ρ(rho)表示其值.斯皮尔曼等级相关系数用来估计两个变量X.Y之间的相关性,其中变量 ...
  • 总结matlab求两个序列的相关性
    首先说说自相关和互相关的概念.  自相关 在统计学中的定义,自相关函数就是将一个有序的随机变量系列与其自身作比较.每个不存在相位差的系列,都与其都与其自身相似,即在此情况下,自相关函数值最大. 在信号分析当中通常将自相关函数称之为自协方差方程. 用来描述信息在不同时间的,信息函数值的相关性. 互相关 ...
  • 最近在学习R语言,其中涉及涉及到关联分析时碰到的一些函数,其中有三个彼此关联的函数:var:计算某个变量的方差cov:计算两个变量的协方差cor:计算两个变量的相关性这些概念的理论学校里肯定都学过,不过现在确实是一点也想不起来了,而且更重要的是当时也不知道为什么要有这些统计概念.然后现在只得在度娘上 ...
  • # coding:utf-8 __author__ = 'similarface' #datalink=http://www2.informatik.uni-freiburg.de/~cziegler/BX/BX-CSV-Dump.zip ''' BX-Users["User-ID&quo ...
  • 所有内容都在python源码和注释里,可运行! ########################### #说明: # 撰写本文的原因是,笔者在研究博文“http://python.jobbole.com/83563/”中发现 # 原内容有少量笔误,并且对入门学友缺少一些信息.于是笔者做了增补,主要有 ...
  • 步骤一:搜索偏好 我们要做的第一件事就是寻找表达不同人及其偏好的方法.在Python中,达到这一目的的一个非常简单有效的方式就是使用一个嵌套的字典.下面就是新建的一个名为recommendations.py的文件,加入如下代码实现一个数据集: critics={'Lisa Rose':{'Lady ...
  • 协同过滤介绍和简单推荐系统的实现
    本文引自http://blog.csdn.net/database_zbye/article/details/8664516 本文介绍推荐系统.协同过滤思想,两种基本的相似度衡量,并用python实现.最后就MovieLens数据集上作出简单的推荐. 面向对象的解释型语言,具有跨平台.简单实用.扩展 ...
  • 正态分布的前世今生下
    http://songshuhui.net/archives/77386 作 者: rickjin(靳志辉“Ÿ) 校 对: 汤涛,香港浸会大学数学讲座教授 正态分布的前世今生(上) 六.开疆扩土,正态分布的进一步发展 19世纪初,随着拉普拉斯中心极限定理的建立与高斯正态误差理论的问世,正态分布开始崭 ...
一周排行