天天看点

箱形图或盒图Boxplot以及matlab实现

箱形图(英文:Box plot),又称为盒须图、盒式图、盒状图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因型状如箱子而得名。在各种领域也经常被使用,常见于品质管理,快速识别异常值。

箱形图最大的优点就是不受异常值的影响,能够准确稳定地描绘出数据的离散分布情况,同时也利于数据的清洗。

五大因“数”

我们一组序列数为例:12,15,17,19,20,23,25,28,30,33,34,35,36,37讲解这五大因“数”

箱形图或盒图Boxplot以及matlab实现

1、下四分位数Q1

(1)确定四分位数的位置。Qi所在位置=i(n+1)/4,其中i=1,2,3。n表示序列中包含的项数。

(2)根据位置,计算相应的四分位数。

例中:

Q1所在的位置=(14+1)/4=3.75,

Q1=0.25×第三项+0.75×第四项=0.25×17+0.75×19=18.5;

2、中位数(第二个四分位数)Q2

中位数,即一组数由小到大排列处于中间位置的数。若序列数为偶数个,该组的中位数为中间两个数的平均数。

例中:

Q2所在的位置=2(14+1)/4=7.5,

Q2=0.5×第七项+0.5×第八项=0.5×25+0.5×28=26.5

3、上四分位数Q3

计算方法同下四分位数。

例中:

Q3所在的位置=3(14+1)/4=11.25,

Q3=0.75×第十一项+0.25×第十二项=0.75×34+0.25×35=34.25。

4、上限

上限是非异常范围内的最大值。

首先要知道什么是四分位距如何计算的?

四分位距IQR=Q3-Q1,那么上限=Q3+1.5IQR

5、下限

下限是非异常范围内的最小值。

下限=Q1-1.5IQR

matlab统计工具箱中有一个画盒图的函数boxplot,它的用法如下;

函数 boxplot

格式 boxplot(X) %产生矩阵X的每一列的盒图和“须”图,“须”是从盒的尾部延伸出来,并表示盒外数据长度的线,如果“须”的外面没有数据,则在“须”的底部有一个点。

boxplot(X,notch) %当notch=1时,产生一凹盒图,notch=0时产生一矩箱图。

boxplot(X,notch,'sym') %sym表示图形符号,默认值为“+”。

boxplot(X,notch,'sym',vert) %当vert=0时,生成水平盒图,vert=1时,生成竖直盒图(默认值vert=1)。

boxplot(X,notch,'sym',vert,whis) %whis定义“须”图的长度,默认值为1.5,若whis=0则boxplot函数通过绘制sym符号图来显示盒外的所有数据值。

一、介绍

盒图是在1977年由美国的统计学家约翰·图基(John Tukey)发明的。它由五个数值点组成:最小值(min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(max)。也可以往盒图里面加入平均值(mean)。如上图。下四分位数、中位数、上四分位数组成一个“带有隔间的盒子”。上四分位数到最大值之间建立一条延伸线,这个延伸线成为“胡须(whisker)”。

由于现实数据中总是存在各式各样地“脏数据”,也成为“离群点”,于是为了不因这些少数的离群数据导致整体特征的偏移,将这些离群点单独汇出,而盒图中的胡须的两级修改成最小观测值与最大观测值。这里有个经验,就是最大(最小)观测值设置为与四分位数值间距离为1.5个IQR(中间四分位数极差)。即IQR = Q3-Q1,即上四分位数与下四分位数之间的差,也就是盒子的长度。

最小观测值为min = Q1 - 1.5*IQR,如果存在离群点小于最小观测值,则胡须下限为最小观测值,离群点单独以点汇出。如果没有比最小观测值小的数,则胡须下限为最小值。

最大观测值为max = Q3 -1.5*IQR,如果存在离群点大于最大观测值,则胡须上限为最大观测值,离群点单独以点汇出。如果没有比最大观测值大的数,则胡须上限为最大值。

通过盒图,在分析数据的时候,盒图能够有效地帮助我们识别数据的特征:直观地识别数据集中的异常值(查看离群点)。判断数据集的数据离散程度和偏向(观察盒子的长度,上下隔间的形状,以及胡须的长度)。

1.箱体的左侧(下)边界代表第一四分位(Q1),而右侧(上)边界代表第三四分位(Q3)。至于箱体部分代表四分位距(IQR),也就是观测值的中间50%值。

2.在箱体中间的线代表的是数据的中位数值。

3.从箱体边缘延伸出去的直线称为触须(whisker).触须(whisker)的向外延伸表示了数据集中的最大和最小(异常点除外)。

4.极端值或异常点(outlier),用星号(*)来标识.如果一个值位于箱体外面(大于Q3或小于Q1),并且距离相应边界大于1.5倍的IQR,那么这个点就被认为是一个异常点(outlier)。

二、使用

matlab中:

1、随机数列

X = randn(100,25); %随机产生100*25 double数据

subplot(2,1,1);

boxplot(X) 

subplot(2,1,2);

boxplot(X,'plotstyle','compact')

结果如下:

箱形图或盒图Boxplot以及matlab实现

2、m*n已知数据:

x=[0.7582 0.9809 0.9089 0.9841

   0.9529 0.9365 0.8307 0.8270

   0.9254 0.7601 0.9708 0.8859

   0.8475 0.9449 0.9100 0.9198 

   0.8599 0.9539 0.7721 0.7754]

subplot(2,1,1);

boxplot(x) 

subplot(2,1,2);

boxplot(x,'plotstyle','compact')

结果:

箱形图或盒图Boxplot以及matlab实现

一列是一组。

参考

https://blog.csdn.net/uinglin/article/details/79895993 

http://www.sohu.com/a/220236877_434937

https://blog.csdn.net/flyfrommath/article/details/51483417

继续阅读