关键词:R语言; R软件; ;t检验; 单样本t检验; 适用条件
一、案例介绍
某医生测量了52名特殊作业成年男性工人的血红蛋白含量,即判断研究对象的血红蛋白含量均值与已知血红蛋白含量均值145g/L之间是否有差异。假设已知正常成年男性血红蛋白含量均数为145g/L,试问特殊作业成年男性工人的血红蛋白含量是否与正常成年男性有差异?部分数据见图1。本文案例可从“附件下载”处下载。
二、问题分析
本案例的分析目的是比较研究样本与已知均数是否相同。针对这种情况可以使用单样本t检验。但需要满足四个条件:
条件1:观察变量为连续变量。本研究中的血红蛋白为连续变量,该条件满足。
条件2:观察变量相互独立。本研究中各研究对象的观察变量都是独立的,不存在互相干扰的情况,该条件满足。
条件3:观察变量不存在显著的异常值,该条件需要通过软件分析后判断。
条件4:观察变量为正态(或近似正态)分布,该条件需要通过软件分析后判断。
三、软件操作及结果解读
(一) 导入数据
mydata <- read.csv("单样本t检验.csv") #导入CSV数据 View(mydata) #查看数据
在数据栏目中可以查看全部数据情况,数据集中共有2个变量和52个观察数据,2个变量分别代表被调查者的编号(ID)及其对应的血红蛋白含量(Hb)。
如果数据集较大也可使用如下命令查看数据框结构:
str(mydata) #查看数据框结构
(二) 适用条件判断
1. 条件3判断(异常值判断)
(1) 软件操作
##查看最大值和最小值##
summary(mydata$Hb) #Hb描述性统计分析
is.na(mydata$Hb) #检查Hb是否存在缺失值
##绘制Hb的箱线图 ##
boxplot(mydata$Hb) #绘制箱式图 out.vals = boxplot(mydata$Hb)$out #获取异常值信息 print(out.vals) #输出异常值信息 for( i in out.vals){text(i, adj = -0.2, labels = i)} #在箱线图上标注异常点的值
(2) 结果解读
图3“summary (描述性分析)”命令运行结果,列出了观察变量的“Min(最小值)”、“1st Qu(P25)”、“Median(中位数)”、“Mean(平均值)”、“3rd Qu(P75)”和“Max(最大值)”,依据专业可判断人体血红蛋白含量均可能存在89g/L和165g/L的情况;此外,图5中的箱线图提示的异常值为数据的最大值和最小值。综上,本案例未发现需要删除的异常值,满足条件3。
2. 条件4判断(正态性检验)
(1) 软件操作
##绘制Q-Q图 ##
qqnorm(mydata$Hb, ylab="Hb") #Q-Q图 qqline(mydata$Hb) #增加趋势线
##正态性检验 ##
shapiro.test(mydata$Hb) # Shapiro-Wilk正态性检验
(2) 结果解读
图6 Q-Q图上散点基本围绕对角线分布,提示数据呈正态分布;图7的“Shapiro-Wilk normality test (夏皮罗-威尔克正态性检验)”表格结果显示P=0.1789>0.1,也提示数据服从正态分布。综上,本案例满足条件4。关于正态性检验的更多内容请阅读(医学统计学核心概念及重要假设检验的软件实现(2/4) ——正态性假设检验的SPSS实现)。
(三) 统计描述及推断
1. 软件操作
## 描述性分析Hb ## install.packages("psych") #安装程序包“psych” library(psych) #调用程序包“psych” des <- describe(mydata$Hb) #描述Hb的集中和离散趋势,默认显示2位小数。 print(des,digits=3) #以三位小数显示结果,小数为0的部分在结果中不会显示,请自行在论文中补充
## 单样本t检验 ## t.test(mydata$Hb,mu=145) #对比的均数为145
2. 结果解读
(1) 统计描述
图8“describe (描述性分析)”运行结果提供了研究案例的“vars(第几个变量)”“n (样本量)”、“Mean (均数)”、 “sd (标准差)”、“median (中位数)”、“trimmed(截尾均值)”、“绝对中位差(mad)”、“min(最小值)”、“max(最大值)”、range(值域)、“skew(偏度)”、“kurtosis(峰度)”和“se (标准误) ”。可知样本人群的血红蛋白含量为128.308±17.597g/L。
(2) 统计学推断
图9的“t.test (单样本t检验)”运行结果中提供了统计学推断的“t (统计量t)”、“df (自由度)”、“p-value (P值)”、推断结果、变量的均值及“95 percent confidence interval (95%可信区间,95%CI)”。可知样本人群的血红蛋白含量平均值与正常人群之间的差异有统计学意义(t=-6.8402,P<0.001)。
四、结论
本研究采用单样本t检验判断某特殊作业成年男性工人的血红蛋白含量是否与正常成年男性有差异。通过专业知识判断,数据不存在需要删除的异常值;通过绘制Q-Q图和Shapiro-Wilk检验,提示数据服从正态分布。
结果显示,某特殊作业成年男性人群的血红蛋白含量为128.308±17.597g/L,与正常成年男性人群血红蛋白均值145g/L的差值为-16.692。单样本t检验提示,样本人群的血红蛋白含量低于正常成年男性(t=-6.8402,P<0.001),差异有统计学意义。本研究结果提示某特殊作业成年男性工人的血红蛋白含量低于正常成年男性。