皮尔逊相关系数及其MATLAB实现

皮尔逊相关系数及其MATLAB实现

 

一、参考链接

1.http://blog.csdn.net/wsywl/article/details/5727327

2.http://www.cnblogs.com/zhangchaoyang/articles/2631907.html

3.http://blog.sciencenet.cn/blog-479412-641317.html

二、初稿时间

2020年1月13日

三、皮尔逊相关系数

1. 什么是相关系数?为什么会有相关系数?

相关系数是用以反映变量之间相关关系密切程度的统计指标,相关系数的平方称为判定系数。

2. 相关系数的几种类型

相关关系是一种非确定性的关系,相关系数是研究变量之间线性相关程度的量。由于研究对象的不同,相关系数有如下几种定义方式:

(1)简单相关系数:又叫皮尔逊相关系数或线性相关系数,一般用字母P 表示,是用来度量变量间的线性关系的量。

(2)复相关系数:又叫多重相关系数。复相关是指因变量与多个自变量之间的相关关系。例如,某种商品的季节性需求量与其价格水平、职工收入水平等现象之间呈现复相关关系。

(3)典型相关系数:是先对原来各组变量进行主成分分析,得到新的线性关系的综合指标,再通过综合指标之间的线性相关系数来研究原各组变量间相关关系。

3. 相关系数的性质

相关系数的值介于–1与+1之间,即–1≤r≤+1。其性质如下:

  • 当r>0时,表示两变量正相关,r<0时,两变量为负相关
  • 当|r|=1时,表示两变量为完全线性相关,即为函数关系。
  • 当r=0时,表示两变量间无线性相关关系。
  • 当0<|r|<1时,表示两变量存在一定程度的线性相关。且|r|越接近1,两变量间线性关系越密切;|r|越接近于0,表示两变量的线性相关越弱。
  • 一般可按三级划分:|r|<0.4为低度线性相关;0.4≤|r|<0.7为显著性相关;0.7≤|r|<1为高度线性相关。

4. 相关系数适用范围

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

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

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

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

5. 皮尔逊相关系数的计算公式

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

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

公式一:

公式二:

公式三:

公式四:

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

6. 相关系数的检验

置信度 =  1 - 显著性水平,置信度越高(显著性水平越低)说明我们越有把握相信两者相关。

四、程序实现

1. MATLAB中自带的相关系数计算函数

%*************************************************************************%

%程序目的:学习理解简单相关系数,学习MATLAB中和简单相关系数相关的函数

%2017年01月13日

%------------------经验积累S---------------------%

%(1)MATLAB中的corr函数是按照列进行相关系数计算的,所以函数的输入变量要确保至少

%2列,每列至少2个元素(1*n和1*n的向量是无法计算相关系数的)

%(2)corrcoef也可以计算相关系数,但是corrcoef计算相关系数时自动把m*n矩阵,变为

%向量,具体参考函数文档说明

%(3)corr函数默认计算的是Pearson相关系数

%(4)reshape函数用于矩阵的重塑

%------------------经验积累E---------------------%

%*************************************************************************%

clc;

clear all;

X = [1,6,7,14,13,28,31,43,55,68,77,87];

Y = [2,3,9,15,12,34,32,44,56,72,74,81];

Z = [X‘,Y‘];

% 比较PCor1和PCor2,理解corr函数是如何按照列计算相关系数的

PCor1 = corr(X‘,Y‘);

% disp([‘PCor1 = ‘,num2str(PCor1)]);

PCor2 = corr(Z);

% 比较corrcoef的计算结果和corr计算结果的差异

PCor3 = corrcoef(X‘,Y‘);

PCor4 = corrcoef(Z);

% 加入显著性水平P

[PCor5,P5] = corr(X‘,Y‘);

[PCor6,P6] = corr(Z);

% 通过此处进一步理解corr按列计算相关系数

K = rand(12,2).*10; L = rand(12,2).*10;

M = [Z,K]; N = [Z,L];

[PCor7,P7] = corr(M,N);

% 比较corrcoef和corr的计算结果,理解corrcoef的计算方式

[PCor8,P8] = corrcoef(M,N);

M2 = reshape(M,[],1);

N2 = reshape(N,[],1);

[PCor9,P9] = corrcoef(M2,N2);

[PCor10,P10] = corr(M2,N2);

原文地址:https://www.cnblogs.com/jetskyyyy/p/12188394.html

时间: 2024-10-10 17:57:31

皮尔逊相关系数及其MATLAB实现的相关文章

《集体智慧编程》学习记录:欧几里得距离&amp;皮尔逊相关系数

1 critics={'Lisa Rose': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.5,'Just My Luck': 3.0, 'Superman Returns': 3.5, 'You, Me and Dupree': 2.5, 'The Night Listener': 3.0}, 2 'Gene Seymour': {'Lady in the Water': 3.0, 'Snakes on a Plane': 3.5, 'J

皮尔逊相关系数(Pearson Collelation coefficient)与余弦相似性的关系

皮尔逊相关系数 维基百科定义:两个变量之间的皮尔逊相关系数定义为两个变量之间的协方差和标准差的商 余弦相似性 皮尔逊相关系数与余弦相似性的关系 皮尔逊相关系数就是减去平均值(中心化)后做余弦相似性

【推荐系统】协同过滤--高度稀疏数据下的数据清理(皮尔逊相关系数)

向量之间的相似度 度量向量之间的相似度方法很多了,你可以用距离(各种距离)的倒数,向量夹角,Pearson相关系数等. 皮尔森相关系数计算公式如下: 分子是协方差,分子是两个变量标准差的乘积.显然要求X和Y的标准差都不能为0. 因为,所以皮尔森相关系数计算公式还可以写成: 当两个变量的线性关系增强时,相关系数趋于1或-1. 用户评分预测 用户评分预测的基本原理是: step1.如果用户i对项目j没有评过分,就找到与用户i最相似的K个邻居(使用向量相似度度量方法) step2.然后用这K个邻居对项

皮尔逊相关系数

皮尔逊相关系数是比欧几里德距离更加复杂的可以判断人们兴趣的相似度的一种方法.该相关系数是判断两组数据与某一直线拟合程序的一种试题.它在数据不是很规范的时候,会倾向于给出更好的结果. 如图,Mick Lasalle为<<Superman>>评了3分,而Gene Seyour则评了5分,所以该影片被定位中图中的(3,5)处.在图中还可以看到一条直线.其绘制原则是尽可能地靠近图上的所有坐标点,被称为最佳拟合线.如果两位评论者对所有影片的评分情况都相同,那么这条直线将成为对角线,并且会与图

欧几里德距离和皮尔逊相关系数计算方法

欧几里德距离是推荐算法中比较简单的一种,他计算两个用户之间的相似程度其计算方法为,以豆瓣电影为例假设用户A对电影 f1....fn的评价分数分别为 r1....rn用户B对电影 f1....fn的评价分数分别为s1.....sn暂且假设A和B都对这些电影评价过那么用户A和B的欧几里德距离计算方法为先计算A和B的对所有同一部电影的评分的差值的平方和 sum = pow(r1-s1,2)+pow(r2-s2,2)+....+pow(rn-sn,2);然后对sim取平方根值sim = sqrt(sum

皮尔逊相关系数的java实现

相关系数的值介于–1与+1之间,即–1≤r≤+1.其性质如下:当r>0时,表示两变量正相关,r<0时,两变量为负相关.当|r|=1时,表示两变量为完全线性相关,即为函数关系.当r=0时,表示两变量间无线性相关关系.当0<|r|<1时,表示两变量存在一定程度的线性相关.?且|r|越接近1,两变量间线性关系越密切:?|r|越接近于0,表示两变量的线性相关越弱.一般可按三级划分:|r|<0.4为低度线性相关:?0.4≤|r|<0.7为显著性相关:0.7≤|r|<1为高度

皮尔逊相关系数的计算(python代码版)

from math import sqrt def multipl(a,b): sumofab=0.0 for i in range(len(a)): temp=a[i]*b[i] sumofab+=temp return sumofab def corrcoef(x,y): n=len(x) #求和 sum1=sum(x) sum2=sum(y) #求乘积之和 sumofxy=multipl(x,y) #求平方和 sumofx2 = sum([pow(i,2) for i in x]) sum

机器学习笔记——皮尔逊相关系数

在学到相关性度量的时候,有一个系数用来度量相似性(距离),这个系数叫做皮尔逊系数,事实上在统计学的时候就已经学过了,仅仅是当时不知道还能用到机器学习中来,这更加让我认为机器学习离不开统计学了. 皮尔逊相关系数--Pearson correlation coefficient,用于度量两个变量之间的相关性,其值介于-1与1之间,值越大则说明相关性越强. 两个变量之间的皮尔逊相关系数定义为两个变量之间的协方差和标准差的商: 因为μX = E(X), σX2 = E[(X ? E(X))2] = E(

皮尔逊相关系数和余弦相似性的关系

有两篇回答,我觉得都是正确的,从不同的方向来看的. 作者:陈小龙链接:https://www.zhihu.com/question/19734616/answer/174098489来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 先说结论: 皮尔逊相关系数是余弦相似度在维度值缺失情况下的一种改进, 皮尔逊相关系数是余弦相似度在维度值缺失情况下的一种改进, 皮尔逊相关系数是余弦相似度在维度值缺失情况下的一种改进. 楼主如果高中正常毕业, 参加过高考, 那么肯定会这么