关键词:R语言; R软件; 相关分析; Kendall相关分析; 肯德尔相关分析; Kendall相关系数; 肯德尔相关系数; 等级相关分析
一、案例介绍
某社区卫生服务中心欲研究年龄(Age)与冠状动脉粥样硬化等级(Grade)之间的关系,抽样调查了283例年龄≥30岁的居民,收集其年龄和冠状动脉粥样硬化等级数据。年龄按30-39岁、40-49岁、50-59岁、≥60岁统计频数,冠状动脉粥样硬化按照0级、1级、2级、3级统计频数。问冠状动脉粥样硬化等级与年龄是否相关?部分数据见图1。本文案例可从“附件下载”处下载。
二、问题分析
本案例的分析目的是检验冠状动脉粥样硬化等级与年龄是否相关,即探究年龄与冠状动脉粥样硬化等级的相关性,两个变量均为有序多分类变量(等级变量),可以采用Kendall’s Tau-b相关性分析。但需要满足2个条件:
条件1:变量类型为,①两个定量变量,②两个有序多分类变量(等级变量),③一个有序多分类变量和一个定量变量。本案例数据的两个变量均为有序多分类资料,该条件满足。
条件2:两个变量是同一组研究对象的两个属性。本案例的两个变量(年龄和冠状动脉粥样硬化等级)是同一组研究对象的两个属性(特征),该条件满足。
三、软件操作及结果解读
(一) 导入数据
mydata <- read.csv("Kendall’s Tau-b相关性分析.csv") #导入CSV数据 View(mydata) #查看数据
在数据栏目中可以查看全部数据情况,数据集中共有3个变量和16个观察数据,3个变量分别代表年龄(Age)、冠状动脉粥样硬化等级(Grade)与频率(Frequency)。
如果数据集较大也可使用如下命令查看数据框结构:
str(mydata) #查看数据框结构
(二) 适用条件判断
本案例数据满足上述条件1和条件2。
(三) 统计描述及推断
1. 软件操作
##数据整理##
compare<-matrix(mydata$Frequency,nrow=4,ncol=4,byrow=TRUE,dimnames = list(c("30-39","40-49","50-59","≥60"),c("0级","1级","2级","3级"))) compare #查看数据
##计算构成比##
prop.table(compare,margin = 1) #计算行百分比
prop.table(compare,margin = 2) #计算列百分比
##相关性分析##
library(DescTools) #调用包“DescTools” KendallTauB(compare,conf.level=0.95) #计算Tau-b系数及其95%CI
2. 结果解读
(1) 统计描述
图4和图5中给出了不同年龄组中动脉粥样硬化的等级构成情况,和不同等级动脉粥样硬化组中年龄的构成情况。如,在年龄“30-39”岁组内,动脉粥样硬化等级为“1”的比例为23.0%;在动脉粥样硬化等级为“1”的患者中年龄“30-39”岁的占25.3%。
(2) 统计学推断
由图6的结果可知,年龄与动脉粥样硬化等级间的Kendall’s Tau-b相关系数为0.410(95%CI:0.33-0.49),即年龄与动脉粥样硬化的等级有相关性,且为正相关;参考Pearson相关系数的强弱判断,年龄与动脉粥样硬化的程度为中度相关。
四、结论
本研究采用Kendall’s Tau-b相关性分析检验年龄与动脉粥样硬化等级的相关性,两变量均为有序分类资料,且均为一组研究对象的两个属性,满足Kendall’s Tau-b相关性分析的条件。
Kendall’s Tau-b相关性分析结果表明,年龄与动脉粥样硬化等级呈正相关,相关系数为0.410 (95%CI:0.33-0.49)。表明,年龄越大,发生动脉粥样硬化的等级越高。相关程度为中等。
五、分析小技巧
- 两个连续变量间呈线性相关时,可以使用Pearson相关分析,不满足Pearson相关分析的适用条件时,可以使用Spearman相关系数来描述。
- 两个连续变量既可以使用Pearson相关分析,也可以使用Kendall's tau-b等级相关系数描述,但后者更多适用于两个分类变量均为有序分类的情况(也可以用于有序分类变量+连续变量)。
- 在R中,还可以通过函数cor.test()进行kendall’s Tau-b相关性分析,只需将参数method设置为“kendall”即可。但数据形式不是本案例所用的频数汇总数据,而是每一行为一个患者情况的长数据。大致分析过程如下:
##导入数据##
data<-read.csv("Kendall’s Tau-b相关性分析2.csv") View(data)
##kendall相关性分析##
attach(data) cor.test(Age,Grade,use = "everything",method = "kendall")