箱图主要是用最小值、下四分位数(第25百分位数)、中位数(第50百分位数)、上四分位数(第75百分位数)以及最大值来考察连续变量的分布情况的图形。下面我们介绍如何利用R的boxplot函数绘制箱图。 首先我们需要生成一个数据集:
dataset <- data.frame(id=c(1:300),x1=rnorm(300,20,6),
sex=sample(c("0","1"),300,replace=TRUE),
smokestatus=sample(c("1","2","3"),300,replace=TRUE))
该数据集包含四个变量,分别是id,x1,sex,smokestatus。其中x1是连续型变量,sex和smokestatus都是分类变量。其中sex的0代表“man”,1代表“female”;smokestatus的1代表“never smoke”,2代表“current smoke”,3代表“quit smoke”。
1.绘制简单箱图:
attach(dataset)
boxplot(x1,data=dataset,main="Boxplot",ylab="x1",col="gold")#main是给图形添加题目,ylab是添加y轴
关于箱图的结果解读在前面的推文已经介绍过,这里不在进行解释。请大家参考:
https://mp.weixin.qq.com/s?__biz=MzIwMDIwNTIyNQ==&mid=2247484166&idx=1&sn=836233ce81f8329f891c416c5b503c04&chksm=9681f5c0a1f67cd6c1345b8c2918111c088ffdd1cafde86feb96e675b46d473c2b4ea97ffd71&token=1012777190&lang=zh_CN#rd
2.绘制并列箱图进行跨组比较(此处是以sex为分组变量,即分性别来看男性和女性得x1是否相同):
boxplot(x1~sex,data=dataset,main="Boxplot",ylab="x1",xlab="sex",col="gold",notch=TRUE)#notch=TRUE,可以得到含凹槽的箱线图,col是给图形添加颜色
3.绘制两个交叉因子的箱图(此处我们以sex和smokestatus两个作为交叉因子):
dataset$sex.f=factor(dataset$sex,levels = c("0","1"),labels = c("M","F"))#创建sex的因子
dataset$smokestatus.f=factor(dataset$smokestatus,levels =c("1","2","3"),labels = c("n","c","q"))#创建smokestatus的因子
此时查看数据,dataset中多了两列,分别是我们刚才所创建的两个因子sex.f和smokestatus.f。
boxplot(x1~sex.f*smokestatus.f,data=dataset,col=c("gold","darkgreen"),varwidth=TRUE,main="Boxplot group by smoke status",xlab="status",notch=TRUE) #varwidth=TRUE是使箱线图的宽度与它们各自的样本大小成正比
其中,M代表男性,F代表女性; n代表从不吸烟,c代表仍在吸烟,q代表已戒烟。
我们可以看到生成了6个箱图,它们分别是三种吸烟状态(smokestatus)两个性别(sex)的组合下x1值的箱图,如M.n代表男性从不吸烟。这就等同于是SPSS软件里面的簇状箱图。
今天箱图的学习就到这。
更多内容请关注我weixingongzhonghao
统计练习题