文章目录
一、斯皮尔曼spearman相关系数
1.定义(1)
和 为两组数据,其斯皮尔曼(等级)相关系数:其中, 为 和 之间的等级差。
-
一个数的等级,就是将它所在的一列按照从小到大排序后,这个数所在的位置。(如果有的数值相同,则将它们所在的位置取算术平均。)
-
可以证明: 位于-1和1之间的
2.定义(2)
斯皮尔曼相关系数被定义成等级之间的皮尔逊相关系数
- Matlab求解皮尔逊相关系数
例如:
RX = [2 5 3 6 9]
RY = [6 2 5 8 7]
R = corrcoef(RX,RY)
% corrcoef函数可以用于求解斯皮尔曼相关系数
3.Matlab中计算斯皮尔曼相关系数
- corr(X , Y , ‘type’ , ’ Spearman’)
这里的X和Y必须是列向量 - corr(X , ‘type’ , ‘Spearman’)
这是计算X矩阵各列之间的斯皮尔曼相关系数
4.斯皮尔曼相关系数的假设检验
小样本情况,即
- 查看斯皮尔曼等级相关的临界值表格
- 样本相关系数 必须大于等于表格中的临界值,才能得出显著的结论
大样本情况,即
- 设置确定原假设 和备择假设
- 在原假设成立的条件下,根据需要检测的量构造一个分统计量
- 求出对应的p值,并与0.05相比即可
双侧检验时,p值乘以2;
假如p>0.05,则无法拒绝原假设;
假如p≤0.05,则拒绝原假设。
Matlab代码:
disp((1-normcdf(检验值)*2)
5.直接计算斯皮尔曼相关系数和p值
[R , P] = corr(Test, 'type' , 'Spearman')
R输出的是Test矩阵各列之间的斯皮尔曼相关系数
P输出的是其对应的p值
6.标注斯皮尔曼相关系数的相关性显著水平
运用SPSS:
分析 — 相关 — 双变量 — 勾选斯皮尔曼,标记显著性相关性 — 确定
二、斯皮尔曼相关系数和皮尔逊相关系数的比较与选择
- 连续数据,正态分布,线性关系,用pearson相关系数最恰当,当然spearman也可以,但是效率略微低下。
- pearson相关系数的使用条件不满足的条件下,使用spearman相关系数。
备注:条件有连续数据,正态分布,线性关系 - 两个定序数据之间也用spearman相关系数,不能用pearson相关系数。
定序数据是指仅仅反应观测对象等级、顺序关系的数据。例如:优、良、差/甲、乙、丙、丁