关键词:SAS; t检验; 单样本t检验; 适用条件
一、案例介绍
某医生测量了52名特殊作业成年男性工人的血红蛋白含量。假设已知正常成年男性血红蛋白含量均数为145g/L,试问特殊作业成年男性工人的血红蛋白含量是否与正常成年男性有差异?部分数据见图1。本文案例可从“附件下载”处下载。
二、问题分析
本案例的分析目的是比较研究样本与已知均数是否相同,即判断研究对象的血红蛋白含量均值与已知血红蛋白含量均值145g/L之间是否有差异。针对这种情况可以使用单样本t检验。但需要满足四个条件:
条件1:观察变量为连续变量。本研究中的血红蛋白为连续变量,该条件满足。
条件2:观察变量相互独立。本研究中各研究对象的观察变量都是独立的,不存在互相干扰的情况,该条件满足。
条件3:观察变量不存在显著的异常值,该条件需要通过软件分析后判断。
条件4:观察变量为正态(或近似正态)分布,该条件需要通过软件分析后判断。
三、软件操作及结果解读
(一) 导入数据
①利用LIBNAME语句建立SAS逻辑库关联,注意逻辑库名称要求,即最大长度8字符,必须以字母或下划线“_”开始,可以是字母、数字和下划线的任意组合。具体代码如下:
libname ttest’D:\DATA’;
通过这一步骤,SAS能够识别引号中的物理位置,将逻辑库建立在该目录下,同时在以下过程中新建的SAS表格便可以永久储存在该位置,便于反复读取和使用。先运行该代码使其生效。
②利用PROC IMPORT语句导入文件,代码如下:
proc import out= ttest.Hbtest DATAFILE=" D:\DATA\单样本T检验.csv" DBMS=csv replace; GETNAMES=YES; run;
该过程在ttest逻辑库中生成Hbtest数据集,数据文件由DATAFILE=选项指定,DBMS=选项指定其数据库类型。该案例中初始数据集为csv文件,故而使用“DBMS=csv”指定。如果已经存在相同名称的SAS数据集,即可使用REPLACE选项进行覆盖。GETNAMES=YES选项指定从第2行开始读取数据,将数据集的首行变量名作为SAS数据集的变量名。
(二) 适用条件判断
1. 条件3判断(异常值判断)
(1) 软件操作
运用UNIVARIATE过程进行检验:
proc univariate data=ttest.Hbtest plot; var Hb; run;
其中“ttest.Hbtest”为上一步中导入的数据集名称,“Hb”为分析变量名,即从事特殊作业成年男性工人的血红蛋白含量。选项PLOT产生了平行条状图,箱线图和正态概率图,如图2所示。
(2) 结果解读
图3“Quantiles (百分位数)”表格中,列出了观察变量的“0% Min (最小值)”和“100% Max (最大值)”,依据专业可判断人体血红蛋白含量均可能存在89 g/L和165g/L的情况;此外,图2中的箱线图提示的异常值为数据的最大值和最小值,不算是异常值。综上,本案例未发现需要删除的异常值,满足条件3。
2. 条件4判断(正态性检验)
(1) 软件操作
①运用前一步骤中UNIVARIATE 过程进行正态性检验:
proc univariate data=ttest.Hbtest normal; var Hb; run;
该步骤中,可在上一步骤异常值判断的UNIVARIATE 过程中直接添加选项NORMAL,同时进行正态性检验,输出“Normality Test (Shapiro-Wilk) (夏皮罗-威尔克正态性)”检验结果,如图4所示。
②运用TTEST过程得出直方图和Q-Q图:
proc ttest data=ttest.Hbtest; var Hb; run;
TTEST过程中默认输出直方图(图5)和Q-Q图(图6)可以快速检查数据是否满足t检验的正态性条件。
(2) 结果解读
UNIVARIATE 过程所得图4的“Normality Test (Shapiro-Wilk) (夏皮罗-威尔克正态性)”表格结果显示,P=0.1789>0.1,提示数据服从正态分布;由图5的直方图可知,观察变量基本服从正态分布;此外图6的Q-Q图上散点基本围绕对角线分布,也提示数据呈正态分布。综上,本案例满足条件4。关于正态性检验的更多内容请阅读医学统计学核心概念及重要假设检验的软件实现(2/4) ——正态性假设检验的SPSS实现。
(三) 统计描述及推断
1. 软件操作
①UNIVARIATE过程给出详细的统计学描述信息(图7):
proc univariate data=ttest.Hbtest plot; var Hb; run;
②运用先前步骤中TTEST过程,得出单样本t检验的结果:
proc ttest data=ttest.Hbtest h0=145 plots(shownull)=interval; var Hb; run;
可在上一步骤TTEST过程中直接添加选项h0=,指定位置检验中原假设的总体均值或者位置参数值,默认情况下h0=0。由于需要判断案例数据均值与总体均值145g/L是否一致,故而设定“h0=145”。TTEST过程结果如图8所示。该步骤中还可以选择添加“plots(shownull)=interval”选项,可作置信区间图(图9)。
③另外,UNIVARIATE 过程也可得出单样本t检验的结果(图10)。示例代码如下:
proc univariate data=ttest.Hbtest mu0=145; var Hb; run;
选项“mu0=”指定了位置检验中原假设的总体均值或者位置的参数值。由于需要判断案例数据均值与总体均值145g/L是否一致,故而设定“mu0=145”。
2. 结果解读
(1)统计学描述
图7的表格中提供了研究案例的“N (样本量)”、“Mean (均数)”、“Std Deviation (标准差)”、“Std Error Mean (标准误)”、“Minimum (最小值)”和“Maximum(最大值)”等指标。可知样本人群的血红蛋白含量为128.308±17.597g/L。
(2)统计学推断
图8的表格中提供了统计学推断的“Mean (均值)”及其“95% CL Mean (95%可信区间,95%CI)”、“Std Dev(标准差)”及其“95% CL Std Dev(95%CI)”、“t Value (t值)”、“DF(自由度)”和“P值”。
可知样本人群的血红蛋白含量平均值为128.3 g/L,95%CI为123.4~133.2 g/L;差异有统计学意义(t=-6.84,P<0.0001)。
另外,通过UNIVARIATE过程得到的检验结果如图10所示:表格中提供了统计学推断的Student’s t值和P值。可知样本人群的血红蛋白含量与正常成年男性血红蛋白含量均数的差异有统计学意义(t=-6.84022,P<0.0001)。
四、结论
本研究采用单样本t检验判断特殊作业成年男性工人的血红蛋白含量是否与正常成年男性有差异。通过专业知识判断,数据不存在需要删除的异常值;通过绘制直方图、Q-Q图和Shapiro-Wilk检验,提示数据满足正态性要求。
结果显示,特殊作业成年男性人群的血红蛋白含量为128.308±17.597g/L (95%CI:123.4~-133.2)。单样本t检验提示,样本人群的血红蛋白含量低于正常成年男性(t=-6.84022,P<0.0001)。本研究结果提示铅作业成年男性工人的血红蛋白含量低于正常成年男性。