求Pearson简述积差相关系数的使用条件数

统计相关系数(1)——Pearson(皮尔逊)相关系数及MATLAB实现
统计相关系数简介
由于使用的统计相关系数比较频繁,所以这里就利用几篇文章简单介绍一下这些系数。
相关系数:考察两个事物(在数据里我们称之为变量)之间的相关程度。
如果有两个变量:X、Y,最终计算出的相关系数的含义可以有如下理解:
(1)、当相关系数为0时,X和Y两变量无关系。
(2)、当X的值增大(减小),Y值增大(减小),两个变量为正相关,相关系数在0.00与1.00之间。
(3)、当X的值增大(减小),Y值减小(增大),两个变量为负相关,相关系数在-1.00与0.00之间。
相关系数的绝对值越大,相关性越强,相关系数越接近于1或-1,相关度越强,相关系数越接近于0,相关度越弱。
通常情况下通过以下取值范围判断变量的相关强度:相关系数
中等程度相关
极弱相关或无相关
Pearson(皮尔逊)相关系数
皮尔逊相关也称为积差相关(或积矩相关)是英国统计学家皮尔逊于20世纪提出的一种计算直线相关的方法。
假设有两个变量X、Y,那么两变量间的皮尔逊相关系数可通过以下公式计算:
以上列出的四个公式等价,其中E是数学期望,cov表示协方差,N表示变量取值的个数。
2、适用范围
当两个变量的标准差都不为零时,相关系数才有定义,皮尔逊相关系数适用于:
(1)、两个变量之间是线性关系,都是连续数据。
(2)、两个变量的总体是正态分布,或接近正态的单峰分布。
(3)、两个变量的观测值是成对的,每对观测值之间相互独立。
3、Matlab实现
皮尔逊相关系数的Matlab实现(依据公式四实现):
function coeff = myPearson(X , Y)
% 本函数实现了皮尔逊相关系数的计算操作
X:输入的数值序列
Y:输入的数值序列
coeff:两个输入数值序列X,Y的相关系数
if length(X) ~= length(Y)
error('两个数值数列的维数不相等');
fenzi = sum(X .* Y) - (sum(X) * sum(Y)) / length(X);
fenmu = sqrt((sum(X .^2) - sum(X)^2 / length(X)) * (sum(Y .^2) - sum(Y)^2 / length(X)));
coeff = fenzi /
end %函数myPearson结束
也可以使用Matlab中已有的函数计算皮尔逊相关系数:
coeff = corr(X , Y);
4、参考内容
没有更多推荐了,理解皮尔逊相关系数(Pearson Correlation Coefficient)
理解皮尔逊相关系数(Pearson Correlation Coefficient)
其一, 按照高中数学水平来理解, 它很简单, 可以看做将两组数据首先做Z分数处理之后, 然后两组数据的乘积和除以样本数
Z分数一般代表正态分布中, 数据偏离中心点的距离.等于变量减掉平均数再除以标准差.
其一, 按照高中数学水平来理解, 它很简单, 可以看做将两组数据首先做Z分数处理之后, 然后两组数据的乘积和除以样本数
Z分数一般代表正态分布中, 数据偏离中心点的距离.等于变量减掉平均数再除以标准差.(就是高考的标准分类似的处理)
标准差则等于变量减掉平均数的平方和,再除以样本数,最后再开方.
所以, 根据这个最朴素的理解,我们可以将公式依次精简为:
其二, 按照大学的线性数学水平来理解, 它比较复杂一点,可以看做是两组数据的向量夹角的余弦.
皮尔逊相关的约束条件
从以上解释, 也可以理解皮尔逊相关的约束条件:
1 两个变量间有线性关系
2 变量是连续变量
3 变量均符合正态分布,且二元分布也符合正态分布
4 两变量独立
在实践统计中,一般只输出两个系数,一个是相关系数,也就是计算出来的相关系数大小,在-1到1之间;另一个是独立样本检验系数,用来检验样本一致性.
先举个手算的例子
使用维基中的例子:
例如,假设五个国家的国民生产总值分别是1、2、3、5、8(单位10亿美元),又假设这五个国家的贫困比例分别是11%、12%、13%、15%、18%。
创建2个向量.(R语言)
x&-c(1,2,3,5,8)
y&-c(0.11,0.12,0.13,0.15,0.18)
按照维基的例子,应计算出相关系数为1出来.我们看看如何一步一步计算出来的.
x的平均数是:3.8
y的平均数是0.138
sum((x-mean(x))*(y-mean(y)))=0.308
用大白话来写就是:
(1-3.8)*(0.11-0.138)=0.0784
(2-3.8)*(0.12-0.138)=0.0324
(3-3.8)*(0.13-0.138)=0.0064
(5-3.8)*(0.15-0.138)=0.0144
(8-3.8)*(0.18-0.138)=0.1764
0.4+0.4+0.
同理, 分号下面的,分别是:
sum((x-mean(x))^2)=30.8 sum((y-mean(y))^2)= 0.00308
用大白话来写,分别是:
(1-3.8)^2=7.84 #平方
(2-3.8)^2=3.24 #平方
(3-3.8)^2=0.64 #平方
(5-3.8)^2=1.44 #平方
(8-3.8)^2=17.64 #平方
7.84+3.24+0.64+1.44+17.64=30.8
同理,求得:
sum((y-mean(y))^2)= 0.00308
然后再开平方根,分别是:
30.8^0.5=5..=0.
用分子除以分母,就计算出最终结果:
0.308/(5..
再举个简单的R语言例子(R在这里下载: )
假设有100人, 一组数据是年龄,平均年龄是35岁,标准差是5岁;另一组数据是发帖数量,平均帖子数量是45份post,标准差是8份帖子.
假设这两组都是正态分布.我们来求这两者的皮尔逊相关系数,R脚本如下:
& x&-rnorm(n=100,mean=35,sd=5)
& y&-rnorm(n=100,mean=45,sd=8)
cor.test(x,y,method="pearson")
然后R输出结果为:
Pearson's product-moment correlation
t = -0.0269, df = 98, p-value = 0.9786
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0..1938019
sample estimates:
当然,这里是随机数.也可以用非随机的验证一下计算.
皮尔逊相关系数用于网站开发
直接将R与Ruby关联起来
调用很简单,仿照上述例子:
就输出系数结果了.
pythone程序员可以参考: Rpy ()
简单的相关系数的分类
0.8-1.0 极强相关
0.6-0.8 强相关
0.4-0.6 中等程度相关
0.2-0.4 弱相关
0.0-0.2 极弱相关或无相关
x和y的协方差(x的标准差*y的标准差)
用云栖社区APP,舒服~
【云栖快讯】云栖社区技术交流群汇总,阿里巴巴技术专家及云栖社区专家等你加入互动,老铁,了解一下?&&
立足于对政务信息化的深刻理解,在云计算和大数据技术上持续创新,构筑开放共享、敏捷高效、安全可...
是基于语音识别、语音合成、自然语言理解等技术,为企业在多种实际应用场景下,赋予产品“能听、会...
Node.js 性能平台(Node.js Performance Platform)是面向中...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效...简述积差相关系数的使用条件_中华文本库
相关系数 积差相关试讲课件_理学_高等教育_教育专区...(二)适用条件 1、两变量均应是由测量得到的连续...3.使用的测量工具相同; 4.保证相关系数的同质。 ...
相关系数正负1的证明 - 所谓积差相关, 就是两列变量的标准分数之积的总和的平 均数。 由此可以推导为什么积差相关系数的值为+ 1 到- 1 之间。 如果两列...
积差相关系数方法的创立者是英国的( )。 A. 皮尔逊 B. 斯皮尔曼 C. ...论文题和操作题 满分:2 分 9. 定量刻画被试作答一个题目所遇到的困难程度的...
(A)积差相关 (B)等级相关 (C)点二列相关 )。...斯皮尔曼等级相关的前提条件正确的是( A.两列变量...20. 简答题:相关系数的应用有哪些? 文档贡献者 爱...
1.积差相关系数的显著性检验 ? 相关系数的显著性...⑴.H0:ρ=0条件下, 相关系数的显著性检验 ? ...
(mean)为 152.576cm、标准差(standard deviation)为8.3622、样本容量(number ...的皮尔逊相关 系数为0.719,即|r|=0.719,表示体重与身高呈正相关关系,且两...
2. 在控制物理成绩不变的条件下, 做数学成绩与...的积差相关系数 r=0.786, 肯德尔等级相关系数 r=...本次 实验还充分把理论知识应用于实验中进行数据分析...
积差相关系数 C。 D。点二列相关系数 B。 等级...计算积差相关需满足() A.要求成对的数据 分布都...
在相同的条件下,其结果却不一定相同的现象,称为( ...完全相关正确答案:B 19. 积差相关系数方法的创立者...操作测验 D. 数学测验正确答案:BC 4. 教育测量与...第二节 积差相关_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
第二节 积差相关
&&北师大心理统计学课件
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩3页未读,
定制HR最喜欢的简历
你可能喜欢matlab相关系数计算公式(Pearson和Spearman,以及Kendall&Rank)
Pearson相关系数用来衡量两个数据集合是否在一条线上面。其计算公式为:
一个具体的计算的例子:
而利用matlab计算:函数 corrcoef
help corrcoef
randn(30,4);&&&&
% Uncorrelated data
sum(x,2);&& %
Introduce correlation.
[r,p] = corrcoef(x)& % Compute sample
correlation and p-values.
[i,j] = find(p&0.05);& %
Find significant correlations.
[i,j]&&&&&&&&&&&&&&&
% Display their (row,col) indices.
-0.3566&&&
-0.3566&&&
-0.1429&&&
-0.1429&&&
r(i,j)就表示x(:,i)和x(:,j)的相关系数.
相关系数r的值介于&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为高度线性相关。
=================================================================================
由于使用的统计相关系数比较频繁,所以这里就利用几篇文章简单介绍一下这些系数。
相关系数:考察两个事物(在数据里我们称之为变量)之间的相关程度。
如果有两个变量: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(皮尔逊)相关系数
皮尔逊相关也称为积差相关(或积矩相关)是英国统计学家皮尔逊于20世纪提出的一种计算直线相关的方法。
假设有两个变量X、Y,那么两变量间的皮尔逊相关系数可通过以下公式计算:
<img ALT="皮尔逊相关系数计算公式" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//82715I69.gif" WIDTH="519" HEIGHT="51"
TITLE="matlab相关系数计算公式(Pearson和Spearman,以及Kendall&Rank)" />
<img ALT="皮尔逊相关系数计算公式" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//8271Lch3.gif" WIDTH="315" HEIGHT="56"
TITLE="matlab相关系数计算公式(Pearson和Spearman,以及Kendall&Rank)" />
<img ALT="皮尔逊相关系数计算公式" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//8271OR17.gif" WIDTH="221" HEIGHT="59"
TITLE="matlab相关系数计算公式(Pearson和Spearman,以及Kendall&Rank)" />
<img ALT="皮尔逊相关系数计算公式" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//3346L5kz.gif" WIDTH="303" HEIGHT="95"
TITLE="matlab相关系数计算公式(Pearson和Spearman,以及Kendall&Rank)" />
以上列出的四个公式等价,其中E是数学期望,cov表示协方差,N表示变量取值的个数。
2、适用范围
当两个变量的标准差都不为零时,相关系数才有定义,皮尔逊相关系数适用于:
(1)、两个变量之间是线性关系,都是连续数据。
(2)、两个变量的总体是正态分布,或接近正态的单峰分布。
(3)、两个变量的观测值是成对的,每对观测值之间相互独立。
3、Matlab实现
皮尔逊相关系数的Matlab实现(依据公式四实现):
function&coeff&=&myPearson(X&,&Y)&&
%&本函数实现了皮尔逊相关系数的计算操作&&
%&输入:&&
%&&&X:输入的数值序列&&
%&&&Y:输入的数值序列&&
%&输出:&&
%&&&coeff:两个输入数值序列X,Y的相关系数&&
if&length(X)&~=&length(Y)&&
&&&&error('两个数值数列的维数不相等');&&
&&&&return;&&
fenzi&=&sum(X&.*&Y)&-&(sum(X)&*&sum(Y))&/&length(X);&&
fenmu&=&sqrt((sum(X&.^2)&-&sum(X)^2&/&length(X))&*&(sum(Y&.^2)&-&sum(Y)^2&/&length(X)));&&
coeff&=&fenzi&/&&&
end&%函数myPearson结束&&
&也可以使用Matlab中已有的函数计算皮尔逊相关系数:
coeff&=&corr(X&,&Y);&&
4、参考内容
=================================================================================
Spearman Rank(斯皮尔曼等级)相关系数
在统计学中,斯皮尔曼等级相关系数以命名,并经常用希腊字母ρ(rho)表示其值。斯皮尔曼等级相关系数用来估计两个变量X、Y之间的相关性,其中变量间的相关性可以使用单调函数来描述。如果两个变量取值的两个集合中均不存在相同的两个元素,那么,当其中一个变量可以表示为另一个变量的很好的单调函数时(即两个变量的变化趋势相同),两个变量之间的ρ可以达到+1或-1。
假设两个随机变量分别为X、Y(也可以看做两个集合),它们的元素个数均为N,两个随即变量取的第i(1&=i&=N)个值分别用Xi、Yi表示。对X、Y进行排序(同时为升序或降序),得到两个元素排行集合x、y,其中元素xi、yi分别为Xi在X中的排行以及Yi在Y中的排行。将集合x、y中的元素对应相减得到一个排行差分集合d,其中di=xi-yi,1&=i&=N。随机变量X、Y之间的斯皮尔曼等级相关系数可以由x、y或者d计算得到,其计算方式如下所示:
由排行差分集合d计算而得(公式一):
<img ALT="斯皮尔曼等级相关系数公式一" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//9490wXOA.gif" WIDTH="121" HEIGHT="68"
TITLE="matlab相关系数计算公式(Pearson和Spearman,以及Kendall&Rank)" />
由排行集合x、y计算而得(斯皮尔曼等级相关系数同时也被认为是经过排行的两个随即变量的皮尔逊相关系数,以下实际是计算x、y的皮尔逊相关系数)(公式二):
<img ALT="斯皮尔曼等级相关系数公式二" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//94908NP8.gif" WIDTH="200" HEIGHT="93"
TITLE="matlab相关系数计算公式(Pearson和Spearman,以及Kendall&Rank)" />
以下是一个计算集合中元素排行的例子(仅适用于斯皮尔曼等级相关系数的计算)
<img ALT="斯皮尔曼等级相关系数表一" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" real_src ="http://hi.csdn.net/attachment//85958kSF.gif" WIDTH="367" HEIGHT="175"
TITLE="matlab相关系数计算公式(Pearson和Spearman,以及Kendall&Rank)" />
这里需要注意:当变量的两个值相同时,它们的排行是通过对它们位置进行平均而得到的。
2、适用范围
斯皮尔曼等级相关系数对数据条件的要求没有皮尔逊相关系数严格,只要两个变量的观测值是成对的等级评定资料,或者是由连续变量观测资料转化得到的等级资料,不论两个变量的总体分布形态、样本容量的大小如何,都可以用斯皮尔曼等级相关系数来进行研究。
3、Matlab实现
源程序一:
斯皮尔曼等级相关系数的Matlab实现(依据排行差分集合d计算,使用上面的公式一)
function&coeff&=&mySpearman(X&,&Y)&&
%&本函数用于实现斯皮尔曼等级相关系数的计算操作&&
%&输入:&&
%&&&X:输入的数值序列&&
%&&&Y:输入的数值序列&&
%&输出:&&
%&&&coeff:两个输入数值序列X,Y的相关系数&&
if&length(X)&~=&length(Y)&&
&&&&error('两个数值数列的维数不相等');&&
&&&&return;&&
N&=&length(X);&%得到序列的长度&&
Xrank&=&zeros(1&,&N);&%存储X中各元素的排行&&
Yrank&=&zeros(1&,&N);&%存储Y中各元素的排行&&
%计算Xrank中的各个值&&
for&i&=&1&:&N&&
&&&&cont1&=&1;&%记录大于特定元素的元素个数&&
&&&&cont2&=&-1;&%记录与特定元素相同的元素个数&&
&&&&for&j&=&1&:&N&&
&&&&&&&&if&X(i)&&&X(j)&&
&&&&&&&&&&&&cont1&=&cont1&+&1;&&
&&&&&&&&elseif&X(i)&==&X(j)&&
&&&&&&&&&&&&cont2&=&cont2&+&1;&&
&&&&&&&&end&&
&&&&Xrank(i)&=&cont1&+&mean([0&:&cont2]);&&
%计算Yrank中的各个值&&
for&i&=&1&:&N&&
&&&&cont1&=&1;&%记录大于特定元素的元素个数&&
&&&&cont2&=&-1;&%记录与特定元素相同的元素个数&&
&&&&for&j&=&1&:&N&&
&&&&&&&&if&Y(i)&&&Y(j)&&
&&&&&&&&&&&&cont1&=&cont1&+&1;&&
&&&&&&&&elseif&Y(i)&==&Y(j)&&
&&&&&&&&&&&&cont2&=&cont2&+&1;&&
&&&&&&&&end&&
&&&&Yrank(i)&=&cont1&+&mean([0&:&cont2]);&&
%利用差分等级(或排行)序列计算斯皮尔曼等级相关系数&&
fenzi&=&6&*&sum((Xrank&-&Yrank).^2);&&
fenmu&=&N&*&(N^2&-&1);&&
coeff&=&1&-&fenzi&/&&&
end&%函数mySpearman结束&&
源程序二:
使用Matlab中已有的函数计算斯皮尔曼等级相关系数(使用上面的公式二)
coeff&=&corr(X&,&Y&,&'type'&,&'Spearman');&&
注意:使用Matlab自带函数计算斯皮尔曼等级相关系数时,需要保证X、Y均为列向量;Matlab自带的函数是通过公式二计算序列的斯皮尔曼等级相关系数的。一般情况下,使用上面给出的源程序一是可以得到所要的结果的,但是当序列X或Y中出现具有相同值的元素时,源程序一给出的结果就会与Matlab中corr函数计算的结果不同,这是因为当序列X或Y中有相同的元素时,公式一和公式二计算的结果会有偏差。这里可以通过将源程序一中的以下三行
fenzi&=&6&*&sum((Xrank&-&Yrank).^2);&&
fenmu&=&N&*&(N^2&-&1);&&
coeff&=&1&-&fenzi&/&&&
coeff&=&corr(Xrank'&,&Yrank');&%皮尔逊相关系数&&
这样便可以使源程序一在计算包含相同元素值的变量(至少有一个变量的取值集合中存在相同的元素)间的斯皮尔曼等级相关系数时,得到与Matlab自带函数一样的结果。程序一经过修改过后同样可以用来计算一般变量(两个变量的取值集合中均不存在相同的元素)等级相关间的斯皮尔曼等级系数。
关于皮尔逊相关系数的计算可参考以下文章:
4、参考内容
================================================================================
Kendall Rank肯德尔等级相关系数
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 积差法求相关系数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信