数学建模(5.5)相关系数_斯皮尔曼相关系数
X和Y为两组数据,其斯皮尔曼相关系数为:
r s = 1 − 6 ∑ i = 1 n d i 2 n ( x 2 − 1 ) r_s=1-\frac{6\sum_{i=1}^nd_i^2}{n(x^2-1)} rs=1−n(x2−1)6∑i=1ndi2
其中, d i d_i di为 X i X_i Xi和 Y i Y_i Yi的等级差, n n n为数字的个数
一个数的等级,就是把它所在的一列数按照从小到大排列后,这个数所在的位置。
如果有的数值相同,则将他们所在的位置取算数平均。
例如一行数字是5、10、8、10、6,那么等级分别为:1、4.5、3、4.5、2
可以证明, r s r_s rs位于-1和1之间
% matlab计算斯皮尔曼相关系数
% X和Y必须是列向量
corr(X,Y, 'type', 'Spearman');
% 计算X矩阵各列之间的斯皮尔曼相关系数
corr(X, 'type', 'Spearman');
假设检验
小样本n<30
查表,斯皮尔曼相关系数必须大于或者等于表中的数值
大样本
统计量 r s n − 1 ∼ N ( 0 , 1 ) r_s\sqrt{n-1}\sim 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 \neq0 H0:rs=0H1:rs=0
计算检验 r s n − 1 r_s\sqrt{n-1} rsn−1,并求出对应的 p p p值与 0.05 0.05 0.05相比,大于就接受,小于就拒绝。
皮尔逊相关系数和斯皮尔曼相关系数选择
皮尔逊:连续数据、正态分布、线性关系
斯皮尔曼:皮尔逊的不满足,就用斯皮尔曼,定序数据也用斯皮尔曼相关