Table of contents
该教程用简单的语言解释了斯皮尔曼相关的基础知识,并展示了如何在Excel中计算斯皮尔曼等级相关系数。
在Excel中进行相关分析时,在大多数情况下,你会处理皮尔逊相关。 但是,由于皮尔逊相关系数只测量两个变量之间的线性关系,它并不适用所有的数据类型--你的变量可能以非线性的方式强烈相关,但其系数仍然接近于零。 在这种情况下,你可以做Spearman秩相关,而不是皮尔逊相关。
斯佩尔曼相关--基础知识
ǞǞǞ 斯佩尔曼相关 是皮尔逊相关系数的非参数版本,根据两个变量的等级来衡量它们之间的关联程度。
ǞǞǞ 皮尔逊产品矩相关 测试 线型 两个连续变量之间的关系。 线性是指两个变量以恒定的速度向同一方向变化时的关系。
斯佩尔曼等级相关 评估了 单调性 在单调关系中,变量也倾向于一起变化,但不一定以恒定的速度变化。
什么时候做Spearman相关
当皮尔逊相关的基本假设不满足时,斯皮尔曼相关分析将在以下任何情况下使用。
- 如果你的数据表现出 非线性 关系或不属于正态分布。
- 如果至少有一个变量是 序数 如果你的数值可以按 "第一、第二、第三...... "的顺序排列,你就是在处理序数数据。
- 如果有重大 异常值 与皮尔逊相关不同,斯皮尔曼相关对异常值不敏感,因为它对等级进行计算,所以实际值之间的差异没有意义。
例如,你可以使用Spearman相关来寻找以下问题的答案。
- 受教育程度高的人是否更关心环境?
- 病人的症状数量与他们的服药意愿有关吗?
斯佩尔曼相关系数
在统计学中, 斯佩尔曼相关系数 是由以下两种方式表示 r s 或希腊字母 ρ ("rho"),这就是为什么它经常被称为 斯佩尔曼的rho .
斯皮尔曼等级相关系数衡量数据等级之间关系的强度和方向。 它可以是-1到1之间的任何数值,系数的绝对值越接近1,关系就越强。
- 1是完全正相关
- -1是一个完美的负相关
- 0是没有关联性
斯佩尔曼等级相关公式
根据排名中是否存在平局(分配给两个或更多观测值的相同排名),可以用以下公式之一计算Spearman相关系数。
如果有 无并列名次 ,一个更简单的公式就可以了。
在哪里?
- d i 是一对等级之间的差异
- n 是观察值的数量
要处理好 并列排名 因此,必须使用完整版的Spearman相关公式,它是Pearson's r的一个略微修改的版本。
在哪里?
- R(x)和R(y)的等级为 x 和 y 变量
- R(x)和R(y)是平均等级
如何在Excel中用CORREL函数计算Spearman相关关系
遗憾的是,Excel没有计算Spearman等级相关系数的内置函数。 然而,这并不意味着你必须为上述公式绞尽脑汁。 通过对Excel进行一些操作,我们可以想出一种更简单的方法来进行Spearman相关。
举个例子,让我们试着找出我们的身体活动与我们的血压是否有关系。 在B栏中,我们有10名同龄男性每天在健身房花费的分钟数,在C栏中,我们有他们的收缩压。
要在Excel中找到Spearman相关系数,请执行以下步骤。
- 对你的数据进行排名
因为Spearman相关性是根据两个变量的等级来评估它们之间的关联,你需要对你的源数据进行排序。 这可以通过使用Excel的RANK.AVG函数快速完成。
要对第一个变量(身体活动)进行排名,在D2中输入以下公式,然后将其向下拖到D11。
=rank.avg(b2,$b$2:$b$11,0)
要对第二个变量(血压)进行排序,将以下公式放在单元格E2中,并将其复制到下一列。
=rank.avg(c2,$c$2:$c$11,0)
为了使公式正确工作,请确保用绝对的单元格引用来锁定范围。
在这一点上,你的源数据应该看起来类似于这样。
- 查找Spearman相关系数
在建立了等级之后,我们现在可以使用Excel的CORREL函数来获得Spearman's rho。
=correl(d2:d11, e2:e11)
该公式返回的系数为-0.7576(四舍五入到4位数),这显示了相当强的负相关关系,使我们可以得出结论,一个人运动越多,血压越低。
同一样本的皮尔逊相关系数(-0.7445)表明相关性稍弱,但仍有统计学意义。
这种方法的好处是,它快速、简单,而且无论排名中是否有并列关系,都能发挥作用。
在Excel中用传统公式计算Spearman相关系数
如果你不太确定CORREL函数是否正确计算了Spearman's rho,你可以用统计学中使用的传统公式来验证结果。 方法如下。
- 找出每对等级之间的差异( d ),用一个等级减去另一个等级。
=D2-E2
这个公式进入F2,然后被复制到下一列。
- 将每个等级差提高到2的幂 ( d2 ):
=F2^2
这个公式归入G列。
- 将差额的平方加起来。
=SUM(G2:G11)
这个公式可以转到任何空白单元格,在我们的例子中是G12。
从下面的截图中,你可能会对数据的安排有更好的理解。
- 根据你的数据集是否有任何并列的等级,使用这些公式中的一个来计算Spearman相关系数。
在我们的例子中,没有平局,所以我们可以使用一个更简单的公式。
与 d2 等于290,和 n (观察数)等于10,该公式经历了以下转变。
结果,你得到了-0.7575758,这与前面例子中计算的Spearman相关系数完全一致。
在Microsoft Excel中,上述计算可以用以下公式进行。
=1-(6*G12/(10*(10^2-1)))
其中G12是平方等级差异的总和(d2)。
如何在Excel中用图表进行Spearman相关分析
Excel中的相关系数只测量线性(Pearson)或单调(Spearman)关系。 然而,其他关联也是可能的。 因此,无论你做哪种关联,用图表来表示变量之间的关系总是一个好主意。
要为排名的数据画一个相关图,你需要做的是以下几点。
- 通过使用RANK.AVG函数来计算等级,如本例所解释的。
- 选择有等级的两列。
- 插入一个XY散点图。 为此,点击 散点 图表 上的图标。 内页 选项卡,在 聊天记录 组。
- 在你的图表中添加趋势线。 最快的方法是点击 图表元素 按钮>。 添加趋势线... .
- 在图表上显示R平方值。 双击趋势线以打开其窗格,切换到 趋势线选项 选项卡,并选择 显示R-squared值 图表上的 箱子。
- 在R2值中显示更多的数字以获得更好的准确性。
作为结果,你将得到一个等级之间关系的可视化表示。 此外,你将得到 测定系数 (R2),其平方根是皮尔逊相关系数(r)。但由于你绘制的是排名数据,这个皮尔逊的r不是别的,而是斯皮尔曼的rho。
注意:R平方总是一个正数,因此推导出的Spearman等级相关系数也将总是正数。 要加一个适当的符号,只要看一下你的相关图中的线--向上的斜率表示正相关(加号),向下的斜率表示负相关(减号)。
在我们的例子中,R2等于0.5739210285。 使用SQRT函数来寻找平方根。
=sqrt(0.5739210285)
...你会得到已经熟悉的系数0.757575758。
图中的下坡表现出负相关,所以我们加上减号,得到正确的Spearman相关系数为-0.7575758。
这就是在Excel中计算Spearman等级相关系数的方法。 如果想仔细看看本教程中讨论的例子,欢迎下载我们下面的样本工作簿。 感谢你的阅读,希望下周在我们的博客上见到你!
实践工作手册
Excel中的Spearman Rank Correlation (.xlsx文件)