利用matlab计算Pearson和Spearman相关系数
来源:互联网 发布:软件开发精品课程 编辑:程序博客网 时间:2024/05/29 19:24
Pearson相关系数
考察两个事物(在数据里我们称之为变量)之间的相关程度,简单来说就是衡量两个数据集合是否在一条线上面。其计算公式为:
或或
N表示变量取值的个数。
相关系数r的值介于–1与+1之间,即–1≤r≤+1。其性质如下:
- 当r>0时,表示两变量(当X的值增大(减小),Y值增大(减小))正相关,r<0时,两变量为负相关(当X的值增大(减小),Y值减小(增大))。
- 当|r|=1时,表示两变量为完全线性相关,即为函数关系。
- 当r=0时,表示两变量间无线性相关关系。
- 当0<|r|<1时,表示两变量存在一定程度的线性相关。且|r|越接近1,两变量间线性关系越密切;|r|越接近于0,表示两变量的线性相关越弱。
当两个变量的标准差都不为零时,相关系数才有定义,皮尔逊相关系数适用于:
- 两个变量之间是线性关系,都是连续数据。
- 两个变量的总体是正态分布,或接近正态的单峰分布。
- 两个变量的观测值是成对的,每对观测值之间相互独立。
X Y
1 2
2 5
3 6
而利用matlab计算的话则可以使用函数 corrcoef或corr
先看一下help corrcoef的内容:
再看一下help corr的内容
对于前面提到的具体的计算例子,可以在matlab中实现如下:
x=[1;2;3];y=[2;5;6];r1=corr(x,y,'type','pearson');r2=corrcoef(x,y);最后可以看到
r1=0.9608
r2=
1.0000 0.9608
0.9608 1.0000
均与前面的计算结果相符。需要注意的是,使用corr函数时默认计算皮尔逊相关系数
Spearman相关系数
斯皮尔曼相关系数用来估计两个变量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计算而得(公式一):
由排行集合x、y计算而得(斯皮尔曼相关系数同时也被认为是经过排行的两个随机变量的皮尔逊相关系数,以下实际是计算x、y的皮尔逊相关系数)(公式二):
以下是一个计算集合中元素排行的例子(仅适用于斯皮尔曼相关系数的计算)
这里需要注意:当变量的两个值相同时,它们的排行是通过对它们位置进行平均而得到的。
斯皮尔曼相关系数对数据条件的要求没有皮尔逊相关系数严格,只要两个变量的观测值是成对的,或者是由连续变量观测资料转化得到的,不论两个变量的总体分布形态、样本容量的大小如何,都可以用斯皮尔曼相关系数来进行研究。
使用matlab计算spearman相关系数则比较简单,也是使用corr函数,如下:
r= corr(x, y, 'type' , 'Spearman');
对于上面的例子,则可以计算出r=1。
注意:使用Matlab自带函数计算斯皮尔曼相关系数时,需要保证X、Y均为列向量;Matlab自带的函数是通过公式二计算序列的斯皮尔曼相关系数的。
- 利用matlab计算Pearson和Spearman相关系数
- 【matlab】matlab相关系数计算公式(Pearson和Spearman,以及Kendall Rank)
- Spearman秩相关系数和Pearson皮尔森相关系数
- Spearman秩相关系数和Pearson皮尔森相关系数
- pearson相关系数与spearman秩相关系数
- Pearson相关系数, Spearman相关系数,Kendall相关系数的区别
- 几个相关系数:Pearson、Spearman、pointbiserialr、kendalltau
- Spearman Rank相关系数计算
- 三大统计相关系数:Pearson、Spearman秩相关系数、kendall等级相关系数
- 计算Spearman等级相关系数的VBA函数
- Pearson(皮尔逊)相关系数及MATLAB实现
- spearman 相关系数
- spearman相关系数
- Pearson相关系数
- Pearson相关系数
- 相关性检验--Spearman秩相关系数和皮尔森相关系数
- 相关性检验-Spearman秩相关系数和皮尔森相关系数
- 相关性检验–Spearman秩相关系数和皮尔森相关系数
- NYOJ 78 圈水池( 凸包入门)
- poj 3660Cow Contest(传递闭包)
- LeetCode : Container With Most Water
- UVA-1030-Image Is Everything
- Swing JList使用
- 利用matlab计算Pearson和Spearman相关系数
- Remove Duplicates from Sorted Array
- 西安之行-兵马俑-大雁塔-古城墙
- UVa 10509 - R U Kidding Mr. Feynman?
- Zen of Dev
- android判断网络状态等操作
- LeetCode Reverse Nodes in k-Group
- 从产品经理的角度看《我是歌手》
- Codeforces 513C Second price auction (bruteforce)