- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Spearmen相关系数和Pearson相关系数及其MATLAB实现
Spearmen相关系数,Spearman秩相关系数是一种无参数(与分布无关)检验方法,用于度量变量之间联系的强弱。在没有重复数据的情况下,如果一个变量是另外一个变量的严格单调函数,则Spearman秩相关系数就是+1或-1,称变量完全Spearman秩相关。
表达式如下:
式中,n为样方数,对原始数据,按从大到小排序,记,为原始,在排序后列表中的位置,,称为,的秩次,秩次差。
使用Pearson线性相关系数有2个局限:
1) 必须假设数据是成对地从正态分布中取得的。
2) 数据至少在逻辑范围内是等距的。
位置n
原始X
排序后
秩次
原始Y
排序后
秩次
秩次差
1
12
546
5
1
78
6
1
2
546
45
1
78
46
1
0
3
13
32
4
2
45
5
1
4
45
13
2
46
6
2
0
5
32
12
3
6
2
4
1
6
2
2
6
45
1
3
-3
对于上表数据,算出Spearman秩相关系数为:r=1-6*(1+1+1+9)/(6*35)=0.6571
图1 秩相关系数检验的临界值表
上图为秩相关系数检验的临界值表。
对相关系数r(-1r1):
A.当|r|越接近1则表示样本之间的相关程度越高;
B.当|r|越接近0则表示样本之间的相关程度越低。
因为n=6,若|r|0.829,则样本之间存在相关性,反之则不存在显著相关性,若|r|0.943,则样本之间存在极显著相关性。
程序:
%%%%%%%%%%%%将以下程序存为mySpearman.m文件%%%%%%%%%
function coeff = mySpearman(X , Y)
if length(X) ~= length(Y)
error(两个数值数列的维数不相等);
return;
end
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
end
Xrank(i) = cont1 + mean([0 : cont2]);
end
%计算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
end
Yrank(i) = cont1 + mean([0 : cont2]);
end
%利用差分等级(或排行)序列计算斯皮尔曼等级相关系数
coeff = 1 - (6 * sum((Xrank - Yrank).^2)) /(N * (N^2 - 1));
end
%函数mySpearman结束
%%%%%%%%%%运行下面这个程序%%%%%%%%%%%%%%%%
X=[12,546,13,45,32,2];Y=[1,78,2,46,6,45];
S=mySpearman(X,Y);
%根据以上程序可以算出Spearman秩相关系数为0.6571
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%matlab自带程序coeff?=?corr(X?,?Y?,?type?,?Spearman);?
Pearson相关系数(Pearson correlation coefficient)也叫皮尔森积差相关系数(Pearson product-moment correlation coefficient),是用来反应两个变量相似程度的统计量。或者说可以用来计算两
文档评论(0)