浅尝辄止_数学建模(笔记_斯皮尔曼相关系数)

一、斯皮尔曼spearman相关系数


1.定义(1)

X X Y Y 为两组数据,其斯皮尔曼(等级)相关系数:在这里插入图片描述其中, d i d_i X i X_i Y i Y_i 之间的等级差。

  • 一个数的等级,就是将它所在的一列按照从小到大排序后,这个数所在的位置。(如果有的数值相同,则将它们所在的位置取算术平均。)

  • 可以证明: r s r_s 位于-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.斯皮尔曼相关系数的假设检验

小样本情况,即 n 30 n≤30

  1. 查看斯皮尔曼等级相关的临界值表格
  2. 样本相关系数 r r 必须大于等于表格中的临界值,才能得出显著的结论

大样本情况,即 n > 30 n>30

  1. 设置确定原假设 H 0 r s = 0 H_0:r_s=0 和备择假设 H 1 r s 0 H_1:r_s≠0
  2. 在原假设成立的条件下,根据需要检测的量构造一个分统计量 r s ( n 1 ) r_s√(n-1)
  3. 求出对应的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:
分析 — 相关 — 双变量 — 勾选斯皮尔曼,标记显著性相关性 — 确定


二、斯皮尔曼相关系数和皮尔逊相关系数的比较与选择

  1. 连续数据,正态分布,线性关系,用pearson相关系数最恰当,当然spearman也可以,但是效率略微低下。
  2. pearson相关系数的使用条件不满足的条件下,使用spearman相关系数。
    备注:条件有连续数据,正态分布,线性关系
  3. 两个定序数据之间也用spearman相关系数,不能用pearson相关系数。
    定序数据是指仅仅反应观测对象等级、顺序关系的数据。例如:优、良、差/甲、乙、丙、丁

猜你喜欢

转载自blog.csdn.net/ICISTRUE/article/details/108134147
今日推荐