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

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

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

五大因“数”

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

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')
结果如下:

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')

结果:

一列是一组。


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

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

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

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值