关键词:SAS; 秩和检验; Jonckheere-Terpstra趋势检验
一、案例介绍
某医师欲研究胆管癌患者血清中糖类抗原19-9(carbohydrate antigen19-9,CA19-9)水平(μg/L)是否随肿瘤直径的增大而升高,根据肿瘤直径大小分成<2cm (赋值为1),2~3cm (赋值为2)和>3cm (赋值为3)3组,每组随机选择9人,该医生分别对所有患者血清中CA19-9水平进行了测定。试分析血清中CA19-9是否随着肿瘤直径的变化呈某种趋势。对数据的变量和水平进行标签赋值后部分数据见图1。本案例数据可从“附件下载”处下载。
二、案例分析
本案例分析目的是研究胆管癌患者中不同的肿瘤直径与血清CA19-9水平是否有顺序效应。针对这种情况,可考虑使用Jonckheere-Terpstra趋势检验,使用时,需要满足以下条件:
条件1:处理资料为完全随机设计资料。本例中3组分别随机选择9人,该条件满足。
条件2:有一个观察变量,且观察变量为连续变量(不满足正态分布或方差严重不齐)或等级变量。该条件需要通过软件判断或专业判断。
条件3:有一个多分类的分组变量(k>2)。本案例中肿瘤直径分为3组(<2cm,2~3cm和>3cm),该条件满足。
条件4:具有相互独立的观测值。本研究中各研究对象的血清CA19-9水平都是独立的,不存在互相干扰的情况,该条件满足。
三、软件操作及结果解读
(一) 导入数据
①利用LIBNAME语句建立SAS逻辑库关联,注意逻辑库名称要求:最大长度8字符,必须以字母或下划线“_”开始,可以是字母、数字和下划线的任意组合。具体代码如下:
libname mydata"D:\mydata";
通过这一步骤,SAS能够识别引号中的物理位置,将逻辑库建立在该目录下,同时在以下过程中新建的SAS表格便可以永久储存在该位置,便于反复读取和使用。先运行该代码使其生效。
②利用PROC IMPORT语句导入文件,代码如下:
proc import out= mydata.example datafile="D:\mydata\Jonckheere-Terpstra趋势检验.csv" dbms=csv replace; getnames=yes; run;
该过程在mydata逻辑库中生成example数据集,数据文件由DATAFILE=选项指定,DBMS=选项指定其数据库类型。该案例中初始数据集为csv文件,故而使用“dbms=csv”指定。如果已经存在相同名称的SAS数据集,即可使用REPLACE选项进行覆盖。GERNAMES=YES选项指定从第2行开始读取数据,将数据集的首行变量名作为SAS数据集的变量名。
(二) 适用条件判断
1. 条件2判断(正态性检验)
(1) 软件操作
运用UNIVARIATE 过程进行正态性检验,示例代码如下:
proc univariate data= mydata.example plot normal; class group; var CA; Histogram /normal kernel; run;
其中“mydata.example”为上一步中导入的数据集名称,CA为分析变量名,即血清中CA19-9水平。选项PLOT产生了平行条状图,箱线图和正态概率图,胆管癌患者(group=1,<2cm)、胆管癌患者(group=2,2~3 cm) 和胆管癌患者(group=3,>3cm)的结果分别见图2、图3和图4。
选项NORMAL进行正态性检验,得到“Tests for Normality (正态性检验)”结果,胆管癌患者(group=1,<2cm)、胆管癌患者(group=2,2~3 cm) 和胆管癌患者(group=3,>3cm)的结果分别见图5、图6和图7。
HISTOGRAM语句可以针对指定变量CA绘制直方图,该语句中NORMAL选项可作正态分布的密度曲线,而KERNERL选项可作基于数据的核分布密度曲线,可直观展示变量的分布情况,见图8。
(2) 结果解读
正态性检验结果见图5、图6和图7,分别给出了4种正态性检验的结果,本例适用Shapiro-Wilk (夏皮罗-威尔克,S-W)检验,结果显示3组胆管癌患者血清中CA19-9水平均不符合正态分布(W=0.8042,P=0.0228;W=0.8260,P=0.0403;W=0.8279,P=0.0423,均P<0.1);结合3组胆管癌患者的Q-Q图(图2、图3和图4)上散点与对角线的分布重合度较低,且图8中数据的核分布密度曲线与正态分布密度曲线重合度较低,因此,认为数据为非正态分布。
2. 条件2判断(方差齐性检验)
(1) 软件操作
①通过ANOVA过程得到方差齐性检验结果(图9):
proc anova data=mydata.example; class group; model CA=group; means group/hovtest=levene(type=abs); run;
该步骤中,CLASS语句指定分类变量,即变量group。MODEL语句指定分析因素与响应变量,即按照group分组对变量CA分析。MEANS语句计算均数和方差,其常见选项HOVTEST可指定分析方法,此处我们使用LEVENE检验,(type=abs)指定该过程计算绝对值(absolute value)进行分析。
(2) 结果解读
“The ANOVA Procedure (方差齐性检验)”结果(图9)显示,F=8.45,P=0.0017<0.1,提示两组数据方差不齐。
因此,本案例中两组连续变量数据既不服从正态分布,也不满足方差齐性,可以考虑使用Jonckheere-Terpstra趋势检验。
(三) 统计描述及推断
1. 统计学描述
(1) 软件操作
运用UNIVARIATE 过程检验数据的分布,示例代码如下:
proc univariate data= mydata.example; class group; var CA; run;
(2) 结果解读
处理组各组的数据分布见图10、图11、图12,可知肿瘤直径<2cm、2~3cm和>3cm的胆管癌患者的CA19-9水平分别为34.00(32.00~40.00) μg/L、332.00 (325.00~374.00)μg/L和826.00 (789.00~980.00)μg/L ,3组胆管癌患者血清CA19-9水平的中位数随着肿瘤直径增大而上升。
2. Jonckheere-Terpstra趋势检验
(1) 软件操作
通过NPAR1WAY过程得到检验结果,见图13
proc npar1way data=mydata.example wilcoxon; class group; var CA; exact; title1 'Kruskal-Wallis Test'; run; proc freq; table group*CA/jt nopercent nocol norow; run;
注意:此处NPAR1WAY中为数字1,而非英文字母I或L。
(2) 结果解读
Kruskal-wallis检验和Jonckheere-Terpstra趋势检验的分析结果分别见图14、图15。Kruskal-wallis检验的统计量为23.1499,P<0.0001;Jonckheere-Terpstra趋势检验的统计量(JT值)为243.000,P<0.0001,表明CA19-9水平会随着肿瘤直径的增大而升高。
四、结论
本案例采用Jonckheere-Terpstra趋势检验分析胆管癌患者血清中CA19-9水平是否随着肿瘤直径的变化呈某种趋势。肿瘤直径<2cm、2~3cm和>3cm的胆管癌患者的CA19-9水平分别为34.00(32.00~40.00) μg/L、332.00 (325.00~374.00)μg/L和826.00 (789.00~980.00)μg/L ,3组胆管癌患者血清CA19-9水平的中位数随着肿瘤直径增大而上升。Jonckheere-Terpstra趋势检验分析显示,这种趋势有统计学意义(JT=243.000,P<0.0001)。
五、知识小贴士
Jonckheere-Terpstra趋势检验用于检验连续性资料或有序分类资料与各处理组是否有顺序效应,此类型资料还可以使用Spearman ρ系数或Kendall τ系数表示。