斯皮尔曼相关系数
定
义
:
X
和
Y
为
两
组
数
据
,
其
斯
皮
尔
曼
(
等
级
)
相
关
系
数
:
定义:X和Y为两组数据,其斯皮尔曼(等级)相关系数:
定义:X和Y为两组数据,其斯皮尔曼(等级)相关系数:
r
s
=
1
−
6
∑
i
=
1
n
d
i
2
n
(
n
2
−
1
)
r_s=1-\frac{6\sum_{i=1}^nd^2_i}{n(n^2-1)}
rs=1−n(n2−1)6∑i=1ndi2
其
中
d
i
为
X
i
和
Y
i
之
间
的
等
级
差
其中d_i为X_i和Y_i之间的等级差
其中di为Xi和Yi之间的等级差
(一个数的等级,就是它所在的一列数按照从大到小的顺序后,这个数所在的位置)
可以证明:r_s 位于-1和1之间
根
据
公
式
:
r
s
=
1
−
6
∑
i
=
1
n
d
i
2
n
(
n
2
−
1
)
可
得
:
根据公式:r_s=1-\frac{6\sum_{i=1}^nd^2_i}{n(n^2-1)}可得:
根据公式:rs=1−n(n2−1)6∑i=1ndi2可得:
X
和
Y
的
斯
皮
尔
曼
相
关
系
数
r
s
=
0.875
X和Y的斯皮尔曼相关系数r_s=0.875
X和Y的斯皮尔曼相关系数rs=0.875
另一种斯皮尔曼spearman相关系数定义
斯皮尔曼相关系数被定义成等级之间的皮尔逊相关系数
%% Matlab 求皮尔逊相关系数
RX=[2 5 3 4 1]
RY=[1 4.5 3 4.5 2]
R=corrcoef(RX,RY)
两种方法的结果之所以会有差别,是因为在第一种方法中,如果有的数值相同,则将他们所在的位置取算术平均
MATLAB中计算斯皮尔曼相关系数
两种用法
1)corr(X,Y,'type','Spearman')
X和Y必须是列向量
2) corr(X,'type,'Spearman')
这是计算X矩阵各个列之间的斯皮尔曼相关系数
假设检验
小样本系数(n<30)
样本数据必须大于等于表中的临界值,才能得出显著的结论
大样本
大
样
本
情
况
下
,
统
计
量
r
s
n
−
1
−
N
(
0
,
1
)
大样本情况下,统计量r_s \sqrt{n-1}-N(0,1)
大样本情况下,统计量rsn−1−N(0,1)
H
0
:
r
s
=
0
,
H
1
:
r
s
≠
0
H_0:r_s=0,H_1:r_s \neq 0
H0:rs=0,H1:rs=0
我
们
计
算
检
验
r
s
n
−
1
,
并
求
出
对
应
的
p
值
与
0
,
05
相
比
即
可
我们计算检验r_s \sqrt{n-1},并求出对应的p值与0,05相比即可
我们计算检验rsn−1,并求出对应的p值与0,05相比即可
注意双侧检验p值要乘以2
matlab也可以直接输出p值
[R,P]=corr(Test,'type','Spearman')
比较
(懒得打字了)