python 斯皮尔曼相关系数_斯皮尔曼等级相关系数(Spearmansrankcorrelationcoefficient)
斯皮尔曼等级相关系数 (Spearman's rank correlation coefficient)
1.
使用时机:
斯皮尔曼等级相关系数是用以反映两组变量之间关系密切程度的统计指标。
2.
分析类型:
无母数分析(non-parametric analysis) 。
3.
斯皮尔曼等级相关系数前提假设:
无。
4.
范例数据:
某研究喂食量对斑马鱼(zebrafish)存活的影响。在恒温下,投入饲料X
(mg),斑马鱼存活比例Y的资料如下:
X (mg)
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
0.55
Y (存活比例)
1
0.95
0.95
0.9
0.85
0.7
0.65
0.6
0.55
0.42
5.
画图看数据分布:
第一步:
输入建立数据,储存在变量名称为dat的data frame中。
v1
c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55)
v2
0.95, 0.95, 0.9, 0.85, 0.7, 0.65, 0.6, 0.55, 0.42)
dat
data.frame(v1,
v2)
第二步:
安装ggplot2程序套件。
第三步:
呼叫ggplot2程序套件备用。
library(ggplot2)
第四步:
使用函数ggplot代入dat及v1、v2画x-y散布图及回归线。
ggplot(dat, aes(x
= v1, y = v2)) +
geom_point(shape = 1) +
# 画空心圆
geom_smooth(method = lm)
# 加回归线
#
灰色区域是回归线的95%信赖区间。
6.
使用R计算斯皮尔曼等级相关系数,方法一:
第一步:
输入建立数据。
v1
c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55)
v2
0.95, 0.95, 0.9, 0.85, 0.7, 0.65, 0.6, 0.55, 0.42)
第二步:
使用基本模块(base)函数cor代入v1及v2计算斯皮尔曼等级相关系数。
cor(v1,
v2, method = "spearman")
[1]
-0. 9969651 #
计算结果斯皮尔曼等级相关系数
= -0.9969651
#
无提供p值。
第三步:
检定斯皮尔曼等级相关系数是否为零(X、Y无关): H0: ρ = 0,HA: ρ ≠ 0。
使用基本(base)模块函数cor.test代入v1及v2计算斯皮尔曼等级相关系数并进行假设检定。
cor.test(v1,
v2, alternative = "two.sided", method =
"spearman", exact = FALSE)
第四步:
判读结果。
Spearman's
rank correlation rho
data: v1 and v2
S = 329.5,
p-value = 3.698e-10
alternative
hypothesis: true rho is not equal to 0
sample
estimates:
rho -0.9969651 # 计算结果斯皮尔曼等级相关系数 =
-0.9969651
#
如计算结果p
< 0.05,H0: ρ = 0,不成立,X、Y有关。
#
如计算结果p
> 0.05,H0: ρ = 0,成立,X、Y无关。
#
如果要检定:
H0: ρ ≥ 0 & HA: ρ < 0或H0: ρ > 0 & HA: ρ ≤ 0,alternative =
"less"。
#
如果要检定:
H0: ρ ≤ 0 & HA: ρ > 0或H0: ρ < 0 & HA: ρ ≥ 0,alternative =
"greater"。
#
由于有数值相同数据(排序相同: tied rank)所以要设定exact =
FALSE。
7.
使用R计算斯皮尔曼等级相关系数,方法二:
第一步:
输入建立数据。
v1
c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55)
v2
0.95, 0.95, 0.9, 0.85, 0.7, 0.65, 0.6, 0.55, 0.42)
第二步: 安装fBasics程序套件。
第三步:
呼叫fBasics程序套件备用。
library(fBasics)
第四步:
阅读fBasics程序套件spearmanTest函数的使用说明。
help(spearmanTest)
第五步:
使用fBasics程序套件spearmanTest函数代入v1及v2计算斯皮尔曼等级相关系数。
spearmanTest(v1,
v2)
第六步:
判读结果。
Title:
Spearman's rho
Correlation Test
Test
Results:
SAMPLE
ESTIMATES:
rho: -0.997
STATISTIC:
S: 329.4992
P VALUE:
Alternative Two-Sided: 3.698e-10
Alternative
Less: 1.849e-10
Alternative
Greater: 1
#
如计算结果p
< 0.05,H0: ρ = 0,不成立,X、Y有关。
#
如计算结果p
> 0.05,H0: ρ = 0,成立,X、Y无关。
#
如果要检定:
H0: ρ ≥ 0 & HA: ρ < 0或H0: ρ > 0 & HA: ρ ≤ 0,alternative =
"less"。
#
如果要检定:
H0: ρ ≤ 0 & HA: ρ > 0或H0: ρ < 0 & HA: ρ ≥ 0,alternative =
"greater"。
#
由于有数值相同数据(排序相同: tied rank)此方法无法计算exact p
value。
8.
检定二组样本数不同之斯皮尔曼等级相关系数统计上是否有差: H0: ρ1 = ρ2,HA: ρ1 ≠ ρ2。
第一步:
输入建立数据。
v1
c(0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55)
v2
0.95, 0.95, 0.9, 0.85, 0.7, 0.65, 0.6, 0.55, 0.41)
v3
0.51, 0.56, 0.6, 0.64, 0.69, 0.74)
v4
c(0.99, 0.94, 0.93, 0.9, 0.86, 0.74, 0.66, 0.6, 0.55, 0.5, 0.45,
0.4, 0.35, 0.3)
第二步: 使用基本(base)模块函数cor,代入v1、v2及v3、v4算出两组斯皮尔曼等级相关系数r1、r2。
r1
cor(v1, v2, method = "spearman")
r2
cor(v3, v4, method = "spearman")
第三步:
安装cocor程序套件。
第四步:
呼叫cocor程序套件备用。
library(cocor)
第五步: 阅读cocor模块的cocor.indep.groups函数使用说明。
help(cocor.indep.groups)
第六步: 使用cocor模块的cocor.indep.groups函数,代入相关系数r1、r2及样本数(n1 = 10, n2
= 14),进行假设检定。
cocor.indep.groups(r1, r2, 10, 14, alternative = "two.sided", test = "all",
alpha = 0.05, conf.level = 0.95, null.value = 0, data.name = NULL,
var.labels = NULL, return.htest = FALSE)
第七步:
判读结果。
Results of a
comparison of two correlations based on independent
groups
Comparison
between r1.jk = -0.997 and r2.hm = -1
Difference:
r1.jk - r2.hm = 0.003
Group sizes:
n1 = 10, n2 = 14
Null
hypothesis: r1.jk is equal to r2.hm
Alternative
hypothesis: r1.jk is not equal to r2.hm (two-sided)
Alpha:
0.05
fisher1925:
Fisher's z (1925)
z = Inf, p-value =
0.0000
Null hypothesis
rejected
zou2007:
Zou's (2007) confidence interval
95% confidence
interval for r1.jk - r2.hm: 0.0007 0.0133
Null hypothesis
rejected (Interval does not include 0)
#
如计算结果p
< 0.05,H0: ρ1 = ρ2,不成立,二相关系数统计上有差。
#
如计算结果p
> 0.05,H0: ρ1 = ρ2,成立,二相关系数统计上没差。
#
如果要检定:
H0: ρ1 ≥ ρ2 & HA: ρ1 < ρ2或H0: ρ1 > ρ2 & HA: ρ1 ≤ ρ2,alternative =
"less"。
#
如果要检定:
H0: ρ1 ≤ ρ2 & HA: ρ1 > ρ2或H0: ρ1 < ρ2 & HA: ρ1 ≥ ρ2,alternative =
"greater"。
9.
范例数据2:
Bacteria_Genera.txt为空白分隔纯文本资料文件,内含不同实验样本中细菌组成比例。
第一步: 输入建立数据,使用read.table函数直接从档案读入数据或将数据贴到函数中如下所示,然后将数据放入变量dataset_g。
dataset_g
Acidipila
Aciditerrimonas Acinetobacter Amaricoccus Aminicenantes
Angustibacter
A1 0 0 0 0
0.046488287 0
A2
0.019110994 0 0 0.027027027 0.019110994 0
A3 0 0 0 0
0.016568013 0
B1
0.091030514 0.016349563 0 0 0 0.032699126
B2 0.09476955
0 0.032037955 0.027745683 0 0
B3
0.097683083 0 0.017834409 0 0 0.017834409
C1
0.090243422 0.018420861 0 0 0.026051032 0
C2 0.08234428
0 0.023290479 0.016468856 0 0.016468856
C3 0.06573422
0 0.017568209 0.017568209 0 0
D1
0.122666303 0.025039154 0 0 0 0
D2
0.099660276 0.022011273 0.026958193 0.022011273 0 0
D3
0.082080737 0.013874177 0 0 0 0
E1 0.05484085
0.019389168 0 0.027420425 0 0
E2
0.096534949 0.015457963 0.026773978 0.037864122 0 0
E3
0.072001213 0 0 0 0 0.033036422")
#
资料为空白分隔的纯文本。
# header =
T数据有标题。
#
资料第一列Acidipila前有一空白。
#
变量名称(dataset_g) 是使用者自定。
10.
相关系数的应用I:
相关系数矩阵(correlation
matrix),显示多变量数据中任二变量间的相关性。
第一步:使用as.matrix函数代入变量dataset_g将数据转换成R的matrix数据型态(data type),放入变量m。
m
as.matrix(dataset_g)
#
变量名称(m)是使用者自定。
第二步:
安装Hmisc程序套件。
第三步:
呼叫Hmisc程序套件备用。
library(Hmisc)
第四步:
阅读Hmisc程序套件的rcorr函数使用说明。
help(rcorr)
第五步:
执行rcorr函数代入变量m数据,计算任二变量数据之相关系数矩阵及相对应之p值矩阵。
res
第六步:
判读结果。
11.
相关系数的应用II:
相关系数矩阵(correlation
matrix),显示多变量数据中任二变量间的相关性。
第一步:使用前述cor函数代入变量dataset_g计算任二变量数据相关系数结果放入变量M。
M
cor(dataset_g, method =
"spearman")
#
变量名称(M)是使用者自定。
第二步:
安装corrplot程序套件。
第三步:
呼叫corrplot程序套件备用。
library(corrplot)
第四步:
阅读corrplot函数使用说明。
help(corrplot)
第五步:
执行corrplot函数代入M计算并画出相关矩阵。
corrplot(M, type = "upper",
method = "ellipse", order = "hclust", tl.col = "black")
第六步:
储存图档。
#
右上往左下斜(蓝色): 正相关。左上往右下斜(红色):
负相关。椭圆越细长相关系数越接近+1或-1。
12.
相关系数的应用III:
数值分布矩阵(scatter plot
matrix)及相关系数矩阵,显示多变量数据中任二变量间的数值分布及相关性。
第一步:
使用as.matrix函数将数据转换成R的matrix数据型态(data type),放入变量m。
m
as.matrix(dataset_g)
#
变量名称(m)是使用者自定。
第二步:
安装PerformanceAnalytics程序套件。
第三步:
呼叫PerformanceAnalytics程序套件备用。
library(PerformanceAnalytics)
第四步: 阅读PerformanceAnalytics程序套件chart.Correlation函数的使用说明。
help(chart.Correlation)
第五步: 执行PerformanceAnalytics程序套件的chart.Correlation函数代入变量m数据,计算任二变量数据之数值分布矩阵及相关系数矩阵。
chart.Correlation(m,
histogram = TRUE, method = "spearman", pch = 19)
第六步:
储存图档。
#
上图中每个变量的分布显示在对角在线。
#
在对角线的底部(下三角): 显示具有回归线的双变量(X-Y)散布图。
#
在对角线的顶端(上三角): 相关系数加上作为恒星的显著性水平。
#
每个显著性级别都与一个符号相关联:
p值(0: "***", 0.001: "**", 0.01: "*",
0.05: ".", 0.1: " ")。
13.
相关系数的应用IV:
使用相关系数矩阵作变量群聚分析(cluster
analysis)及相关系数热图(heatmap)。
第一步:
使用基本模块(base)函数cor计算相关系数矩阵,放入变量res。
res
cor(dataset_g, method =
"spearman")
#
变量名称(res)是使用者自定。
第二步:
使用基本模块(base)函数colorRampPalette选择颜色。
col
colorRampPalette(c("blue", "white", "red"))(20)
#
变量名称(col)是使用者自定。
第三步:
使用heatmap函数代入m及col进行群聚分析并绘制热图。
heatmap(x
= res, col = col, symm = TRUE)
第四步:
储存图档。
# 上图中红色为正相关(相关系数正值),蓝色为反相关(相关系数负值),白色为无关(相关系数近0)。
来劲了吗?
想知道更多??
补充资料(链接):
4. 关于R基础,R绘图及统计快速入门:
d.
Statistical tools for high-throughput data analysis (STHDA):
e. The Handbook of
Biological Statistics:
f. An R Companion for
the Handbook of Biological Statistics:
5. 关于cocor Diedenhofen B, Musch J.
2015. cocor: a comprehensive solution for the statistical
comparison of correlations. PLoS One. 10(3):e0121945. doi:
10.1371/journal.pone.0121945.
6. Zar, JH. 2010. Biostatistical Analysis, Fifth Edition,
Pearson.
python 斯皮尔曼相关系数_斯皮尔曼等级相关系数(Spearmansrankcorrelationcoefficient)相关推荐
- pearson相关系数_三个相关系数的注意事项
最近做相关性分析提高模型性能遇到不少问题,这里总结下: Correlation (Pearson, Spearman, and Kendall)www.kaggle.com 1. Pearson c ...
- 斯皮尔曼相关系数范围_数据的相关系数
Pearson相关系数 两个变量之间的皮尔逊相关系数定义为两个变量之间的协方差和标准差的商 从式子(1)能看到,Pearson 系数的取值范围在-1~+1之间,其中1是总正线性相关性,0是非线性相关性 ...
- 【数据科学】斯皮尔曼的等级相关系数(Spearman's coefficient)
在统计数据中,斯皮尔曼的等级相关系数或斯皮尔曼的rho,以查尔斯斯皮尔曼命名并经常用希腊字母表示或,是秩相关的非参数度量(两个变量的排名之间的统计依赖性).它评估了使用单调函数描述两个变量之间关系的程 ...
- 相关系数(皮尔逊pearson相关系数和斯皮尔曼spearman等级相关系数)
目录 总体皮尔逊Person相关系数: 样本皮尔逊Person相关系数: 两点总结: 假设检验:(可结合概率论课本假设检验部分) 皮尔逊相关系数假设检验: 更好的方法:p值判断方法 皮尔逊相关系数假设 ...
- 浅尝辄止_数学建模(笔记_斯皮尔曼相关系数)
文章目录 一.斯皮尔曼spearman相关系数 1.定义(1) 2.定义(2) 3.Matlab中计算斯皮尔曼相关系数 4.斯皮尔曼相关系数的假设检验 小样本情况,即n≤30n≤30n≤30 大样本情 ...
- 计算斯皮尔曼的等级相关系数(Spearman’s rank correlation coefficient)步骤
代码连接:code ( Matlab ) Spearman相关系数是在Pearson相关系数的基础上,利用两个集合中元素在各自集合的等级(排名)来计算他们之间的相关性,可以用于对数据进行分析. 假设两 ...
- 皮尔森、斯皮尔曼,肯德尔相关系数的理解
pandas中的corr()方法可使用如下方法,检测特征间的关系 皮尔森相关系数(线性相关) 计算公式:两个连续变量(X,Y)的pearson相关性系数(Px,y)等于(X, Y)的协方差cov(X, ...
- 数学建模:相关性分析学习——皮尔逊(pearson)相关系数与斯皮尔曼(spearman)相关系数
目录 前言 一.基本概念及二者适用范围比较 1.什么是相关性分析 2.什么是相关系数 3.适用范围比较 二.相关系数 1.皮尔逊相关系数(Pearson correlation) 1.线性检验 2.正 ...
- python求解典型相关系数_三大相关系数: pearson, spearman, kendall(python示例实现)...
三大相关系数:pearson, spearman, kendall 统计学中的三大相关性系数:pearson, spearman, kendall,他们反应的都是两个变量之间变化趋势的方向以及程度,其 ...
- 数学建模——皮尔逊person相关系数VS斯皮尔曼spearman相关系数学习笔记
皮尔逊 person相关系数和斯皮尔曼spearman等级相关系数,它们可用来衡量两个变量之间的相关性的大小,根据 数据满足的不同条件,我们要选择不同的相关系数进行计算和分析(建模论文中最容易用错的方 ...
最新文章
- 谈谈UI架构设计的演化
- 20162316刘诚昊 第九周学习总结
- python移动文件中某个内容_如果python中的某些文件类型,则移动文件并创建目录...
- oracle11关闭账户验证,Windows下Oracle11g中使用外部操作系统账户验证
- Lucene分类统计示例
- 【MySQL】PREPARE 的应用
- 【超直白】算法:斐波那契数列
- Redis教程:数据库
- android焦点动画,Android编程中PopupWindow的用法分析【位置、动画、焦点】
- C语言之简单通讯录制作
- 因需要**云音乐歌单转到apple music,不满**云音乐下载都是ncm格式,所以想办法转化格式
- V.PhyloMaker:维管束植物系统发育树构建实践
- 【通信】盖氏圆盘方法(GDE)计算均匀直线阵(ULA)中信号源个数附matlab代码
- 用浏览器访问防火墙提示建立连接失败的有点总结
- 真杜比全景声家庭影院级投影设备,当贝做到了五千元内也支持
- 小米路由器安装mysql_小米路由器安装和设置方法(图文教程)
- python 根据网易云歌曲的ID 直接下载歌曲
- C语言--独立的大括号{}
- Ubuntu18.04使用anaconda3安装tensorflow-gpu、pytorch
- 计算机网络与图论,图论与复杂网络.pdf
热门文章
- 学士后java软件工程师_北大青鸟码农学士后Java软件工程师课程
- Echarts官网无法打开的问题
- 计算机web前端岗位职责,web前端开发工程师岗位的职责
- Ubuntu系统周立功CAN驱动安装及常见问题
- WEB安全 asp+access注入
- hdu4282 A very hard mathematic problem
- VSTO:无法安装此应用程序,因为已安装具有相同标识的应用程序(亲测有效)
- ip网络广播系统连接服务器失败,航天广电数字IP网络广播系统安装IP地址调试6大知识...
- 2021年7月国产数据库大事记
- windows7系统下使DOS窗口最大化(全屏)