【孙老湿画图系列--第四弹】 箱形图 Boxplot
John Tukey
箱形图是由美国数学家John Tukey(1915.6.16-2000.7.26)在1977年发明的,老爷子已过世,深切缅怀。
小板报
箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。
其绘制须使用常用的统计量,能提供有关数据位置和分散情况的关键信息,尤其在比较不同的母体数据时更可表现其差异。
箱形图由五个数值点构成:最小值(Min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(Max)。上四分位数到最大值之间建立一条延伸线,这个延伸线成为“胡须(whisker)”。
由于真实观测数据中总是存在各式各样地“离群点”,于是为了不因这些少数的离群数据导致整体特征的偏移,需将这些离群点单独汇出,而箱形图中胡须的两级修改成最小观测值与最大观测值。一般情况,最大(小)观测值设置为1.5倍的四分位数值间距离(1.5 * IQR)。
IQR = Q3 - Q1,即上四分位数与下四分位数之间的差,也就是盒子的长度。
最小观测值为Min = Q1 - 1.5 * IQR,如果存在离群点小于最小观测值,则胡须下限为最小观测值,离群点单独以点汇出。如果没有比最小观测值小的数,则胡须下限为最小值。
最大观测值为Max = Q3 - 1.5 * IQR,如果存在离群点大于最大观测值,则胡须上限为最大观测值,离群点单独以点汇出。如果没有比最大观测值大的数,则胡须上限为最大值。
在分析数据的时候,箱形图能够直观的帮助我们了解数据的特征:
直观地识别数据集中的异常值(查看离群点)。
判断数据集的数据离散程度和偏向(观察盒子的长度,上下隔间的形状,以及胡须的长度)。
为了更好的理解箱形图,模拟一个符合正态分布N(0,1σ2)的数据,比较箱形图和正态分布曲线,如下图:
首先我们加载模拟数据mpg,用head()查看数据结构:
library(ggplot2)
data(mpg)
head(mpg[c("class","hwy")]) #因为我们绘图只用到两列,所以只查看需要的两列就可以了
ggplot中绘制箱形图使用的几何对象是geom_boxplot(),至少需要两个映射对象,x=>分类变量,y=>数值变量。选用主题theme_bw(),并通过theme()修改坐标轴字体等。
p <- ggplot(mpg, aes(class, hwy, fill =class)) +
geom_boxplot() +
theme_bw() +
theme(axis.title = element_text(size = 20),
axis.text = element_text(size = 16, color = "black"),
legend.position = "none")
p
添加扰动点geom_jitter(),并且翻转坐标轴coord_flip()。
p <- ggplot(mpg, aes(class, hwy, fill =class)) +
geom_boxplot(notch = TRUE) +
theme_bw() +
geom_jitter(width = 0.2) +
theme(axis.title = element_text(size = 20),
axis.text = element_text(size = 16, color = "black"),
legend.position = "none") +
coord_flip()
p
本系列课程主要侧重于讲解图形原理,以及在ggplot2中的实现过程,并没有特意追求美观,故很多图的细节部分修饰有限,大家重点理解实现过程。
本期箱形图就分享到这里!下周二,韦恩图,孙老湿与你不见不散!
关注
生信者言
编辑:Anymore
文字:孙怀博