在互联网数据分析的过程中,我们经常需要分析一组数据的离散分布情况以及分析这组数据的最大值、最小值、平均数、四分位数。
有时我们会有如下应用场景:假设一款内容型产品,想要对比分析用户一周内对不同类型内容的打开情况。想要查看某个类型的内容一周内打开最多的用户是打开了几个,打开最少的用户是打开了几个,用户平均打开了几个,大多数的用户是看了几个内容。
那么箱型图是一个能够很好反映这些数据离散的图表,在学习绘制箱形图前先介绍一下四分位数。
一、分位数
分位数,统计学的定义是指将一个随机变量的概率分布范围分为几个等份的数值点,通俗点说就是将一组数据按数量均分的点。比如二分位数就是指将一组数据均分为两等分的点,也被称作中位数。
那么顾名思义四分位数就是将一组数据均分为四等分的点,一组数据被分为四等分需要有三个点,分别被称为:第一四分位数(下四分位数)、第二四分位数(中位数)、第三四分位数(上四分位数)。
下四分位数等于这组数据中从小到大第25%的数字,上四分位数等于这组数据中从小到大第75%的数字。下四分位数与上四分位数之间的差距被称为四分位距,箱形图中的异常值就需要通过四分位距计算出来。
二、箱形图
箱形图因为形状类似一个箱子所以被称为箱形图,通过箱形图可以很直观的读出一组数据的最大值、最小值、中位数、上四分位数、下四分位数、异常值,甚至有的箱形图还能读出平均值。
绘制箱形图:
1. 首先需要得到这组数据的:最大值、最小值、平均值、四分位数。
2. 其次分别在坐标轴上根据最大值、上四分位数、中位数、下四分位数、最小值的数值画出5条线段。连接上四分位数与下四分位数两端形成一个矩形,而后分别由矩形的上下端作垂线连接到上边缘(最大值)与下边缘(最小值)。
3. 接下来通过上面提到的四分位距计算温和异常值和极端异常值的范围(将上四分位数用Q3表示、下四分位数用Q1表示、四分位距用IQR表示)。温和异常值的范围:上限为Q3+1.5*IQR,下限为Q1-1.5*IQR,处在这个范围内的值为温和异常值,一般用圆圈表示;极端异常值的范围:上限为Q3+3*IQR,下限为Q1-3*IQR,处在这个范围内的值为极端异常值,一般用星号表示。(之所以要画出异常值的范围是因为对于非正太分布的数据来说,方差、标准差很容易被异常值所影响,比如对于100个人的年收入这组数据来说,如果里面加入了马云这个异常值,这个数据就不具有代表性了。)
具体箱形图如下图:
三、用python绘制一幅简单的箱形图
python中可以使用matplotlib库来绘制基础的箱形图,绘制出来的箱形图在异常值相关的表示上会有所简化。代码和效果如下:
总而言之,箱形图可以很直观的分析数据的离散分布情况,上四分位数与下四分位数的距离越小说明越集中,否则说明越分散,对于上下边缘来说是一样的。然后通过中位数偏向于上四分位数还是下四分位数可以来分析数据分布的偏向。箱形图还有一个优点是相对受异常值的影响比较小,能够准确稳定地描绘出数据的离散分布情况,会比较有利于数据的清洗。