关键词:R语言; R软件; 非参数检验; 秩和检验; 多样本Kruskal-Wallis H检验; Kruskal-Wallis H检验; 多样本秩和检验; 事后检验
一、案例介绍
某医师对30名胆管癌患者的肿瘤直径进行了测定,其中9名患者肿瘤直径<2cm,11名患者肿瘤直径为2~3cm,10名患者肿瘤直径>3cm。同时该医生对所有患者血清中癌抗原19-9 (cancer antigens 19-9, CA19-9)水平(μg/L)进行了测定,问不同肿瘤直径的胆管癌患者CA19-9水平是否不同?部分数据见图1。本文案例可从“附件下载”处下载。
二、问题分析
本案例的分析目的是比较三种不同肿瘤直径的胆管癌患者CA19-9水平是否不同。针对这种情况,可考虑使用Kruskal-Wallis H检验。Kruskal-Wallis H检验是基于秩次的非参数检验方法,用于检验多组间(也可以是两组)连续或有序分类变量是否存在差异。使用Kruskal-Wallis H检验,需要满足4个条件。
条件1:有一个观察变量和一个分组变量,在本案例中胆管癌患者CA19-9水平为观察变量,肿瘤直径分组为分组变量,该条件满足。
条件2:观察变量为非正态分布或方差不齐的连续变量或有序分类变量,变量的正态性或方差齐性需要通过软件分析进行判断。
条件3:存在多个分组(k≥2)。本研究中分为三组,该条件满足。
条件4:具有相互独立的观测值。本研究中各研究对象的CA19-9水平都是独立的,不存在互相干扰的情况,该条件满足。
三、软件操作及结果解读
(一) 导入数据
mydata <- read.csv("Kruskal-Wallis H检验.csv") #导入CSV数据 View(mydata) #查看数据
在数据栏目中可以查看全部数据情况,数据集中共有3个变量和30个观察数据,3个变量分别代表被调查者的编号(ID)、组别(group)及CA19-9水平(CA)。
如果数据集较大也可使用如下命令查看数据框结构:
str(mydata) #查看数据框结构
(二) 适用条件判断
1. 条件2判断(正态性检验)
(1) 软件操作
Kruskal-Wallis H检验时,需要分别考察每一组数据的正态性情况,因此需要拆分数据。
## 拆分数据 ## mydata1<-subset(mydata, mydata$group==1) #按组生成数据子集1 mydata2<-subset(mydata, mydata$group==2) #按组生成数据子集2 mydata3<-subset(mydata, mydata$group==3) #按组生成数据子集3 ## 分组描述数据子集 ## summary(mydata1$CA) #描述子集1基本情况 summary(mydata2$CA) #描述子集2基本情况 summary(mydata3$CA) #描述子集3基本情况
## 分组查看缺失值情况 ## is.na(mydata1$CA) #查看子集1有无缺失值 is.na(mydata2$CA) #查看子集2有无缺失值 is.na(mydata3$CA) #查看子集3有无缺失值
## 绘制Q-Q图 ## par(mfrow = c(1, 3)) #设置画1行3个图片 qqnorm(mydata1$CA, main="<2") #绘制子集1的Q-Q图 qqline(mydata1$CA) #增加趋势线 qqnorm(mydata2$CA, main="2~3") #绘制子集2的Q-Q图 qqline(mydata2$CA) #增加趋势线 qqnorm(mydata3$CA, main=">3") #绘制子集3的Q-Q图 qqline(mydata3$CA) #增加趋势线
## 正态性检验 ## tapply(mydata$CA, mydata$group, shapiro.test) #分组进行Shapiro-Wilk正态性检验
(2) 结果解读
图5的Q-Q图上三组散点偏离对角线较远,提示三组数据不服从正态分布;图6的正态性检验结果显示三组的P值分别为0.02283、0.03485和0.0165,均<0.1,也提示三组数据不服从正态分布。关于正态性检验的注意事项详见文章医学统计学核心概念及重要假设检验的软件实现(2/4)——正态性假设检验的SPSS实现。
2. 条件2判断(方差齐性检验)
(1) 软件操作
## 计算标准差 ## library(psych) #调用包“psych” describeBy (mydata$CA, group = mydata$group) #分组描述统计
## levene法方差齐性检验 ## mydata$group<-factor(mydata$group, labels = c("<2","2~3",">3")) #把变量group转换为分类变量 library(car) #调用软件包“car” leveneTest(CA~group, data=mydata, center=mean) #levene法方差齐性检验
(2) 结果解读
由图7“describeBy (描述性分析)”运行结果中“sd (标准差)可知,肿瘤直径<2cm组、2~3cm组、>3cm组标准差分别为9.24、98.18和153.86,三组之间标准差存在较大差异,但还需要依据统计学检验的结果进行判断。
图8“Levene’s Test for Homogeneity of Variances (Levene’s方差齐性检验)”为方差齐性检验结果,可见F=7.1921,P=0.003134<0.1,提示三组数据方差不齐。
综上,本案例中三组连续变量数据既不服从正态分布,也不满足方差齐性,可以考虑使用Kruskal-Wallis H检验。
(三) 整体检验
1. 软件操作
## 描述性统计 ## summary(mydata1$CA) #<2组描述性统计分析 summary(mydata2$CA) #2~3组描述性统计分析 summary(mydata3$CA) #>3组描述性统计分析
## Kruskal-Wallis H检验 ## library(coin) #调用包“coin” kruskal.test(mydata$CA, mydata$group) #Kruskal-Wallis检验
2. 结果解读
(1) 统计描述
图9“summary (描述性分析)”提供了三组数据的“Min.(最小值)”、“1st Qu.(第1四分位数)”、“Median(中位数)、“Mean(平均值)”、“3rd Qu.(第3四分位数)”和“Max.(最大值)”。可知,肿瘤直径<2cm的患者CA19-9水平为34.00 (P25~P75:32.00~40.00) μg/L,肿瘤直径2~3cm的患者CA19-9水平为367.0 (P25~P75:325.0~381.0) μg/L,肿瘤直径>3cm的患者CA19-9水平为828.0 (P25~P75:796.8~957.5) μg/L。三组的CA19-9值目测存在差异,但还需要依据统计学检验的结果进行判断。
(2) 统计学推断
图10“Kruskal-Wallis rank sum test”(Kruskal-Wallis 秩和检验)表格中提供了Kruskal-Wallis检验分析的“χ2(统计量)”、“df(自由度)”、“P值”。可知,χ2=25.748,df=2,P<0.001,可认为三种不同肿瘤直径的胆管癌患者的CA19-9水平不全相同(至少存在两组不相同)。
(四) 事后检验(两两比较)
虽然得到了“三种不同肿瘤直径的胆管癌患者的CA19-9水平不全相同”的结论,但我们仍然不清楚到底是哪两组之间不同,因此需要进一步两两比较。
1. 软件操作
## 事后两两比较 ## library(PMCMR) #调用程序包“PMCMR” library(PMCMRplus) #调用程序包“PMCMRplus” posthoc.kruskal.nemenyi.test(CA ~ group, mydata) #事后检验
2. 结果解读
图11“posthoc.kruskal.nemenyi.test (两两比较)”运行结果提供了不同肿瘤直径胆管癌患者CA19-9水平两两比较的P值。可知,肿瘤直径<2cm的患者CA19-9水平和肿瘤直径2~3cm的患者CA19-9水平差异有统计学意义(P=0.031),肿瘤直径2~3cm的患者CA19-9水平和肿瘤直径>3cm的患者CA19-9水平差异有统计学意义(P=0.017),肿瘤直径<2cm的患者CA19-9水平和肿瘤直径>3cm的患者CA19-9水平差异有统计学意义(P<0.001)。
四、结论
本研究采用Kruskal-Wallis H检验判断不同肿瘤直径的胆管癌患者CA19-9水平是否不同。通过Q-Q图和Shapiro-Wilk检验,提示三组数据不服从正态分布;通过Levene’s检验,提示三组数据总体方差不齐,符合使用Kruskal-Wallis H检验的条件。
结果显示,肿瘤直径<2cm、2~3cm和>3cm的患者CA19-9水平分别为34.00 (P25~P75:32.00~40.00) μg/L、367.0 (P25~P75:325.0~381.0) μg/L和828.0 (P25~P75:796.8~957.5) μg/L。Kruskal-Wallis H检验结果显示,三种不同肿瘤直径的胆管癌患者的CA19-9水平不全相同(χ2=25.748,P<0.001)。两两比较显示,不同肿瘤直径的胆管癌患者CA19-9水平均不相同。