Spearmen相关系数和Pearson相关系数及其
MATLAB实现
Spearmen相关系数,Spearman秩相关系数是一种无参数(与分布无关)检验方法,用于度量变量之间联系的强弱。在没有重复数据的情况下,如果一个变量是另外一个变量的严格单调函数,则Spearman秩相关系数就是+1或-1,称变量完全Spearman秩相关。
表达式如下:
式中,n为样方数,对原始数据
,
按从大到小排序,记
,
为原始
,
在排序后列表中的位置,
, 称为
,
的秩次,秩次差
。
使用Pearson线性相关系数有2个局限:
1) 必须假设数据是成对地从正态分布中取得的。
2) 数据至少在逻辑范围内是等距的。 位置n 1 2 3 4 5 6 原始X 12 546 13 45 32 2 排序后 546 45 32 13 12 2 秩次 5 1 4 2 3 6 原始Y 1 78 2 46 6 45 排序后 78 46 45 6 2 1 秩次 6 1 5 2 4 3 秩次差 1 0 1 0 1 -3 对于上表数据,算出Spearman秩相关系数为:r=1-6*(1+1+1+9)/(6*35)=0.6571
图1 秩相关系数检验的临界值表
上图为秩相关系数检验的临界值表。
对相关系数r(-1 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中的各个值