背景描述
自从写了搞懂箱形图这篇文章,收到了许多小伙伴的回应,甚至还曾收到妈妈们关于小学数学中箱形图练习题的提问。博文收到回应至于作者还是非常欣慰的一件事,同时在不同观点的碰撞过程中,也感受到了伙伴们对知识准确性的追求。
上篇文章分享了许多理论性的知识点,之所以续写搞懂箱型图(下篇),还是由于有些问题在上一篇中没有说明白。本篇将通过实际例子来告诉大家,不必太纠结上四分位数和下四分位数具体的计算规则。因为四分位数的计算规则不是唯一的,有几种不同的计算方法,不同的统计分析软件,默认的处理方式也不太相同。
test = [1,2,3,4,5,6,7,8]
本文中还是以此为例进行演示
1. Rstudio计算四分位数
打开Rstudio软件,输入以下代码,可以查看变量test的四分位数计算结果,包括上四分位数,下四分位数。
2. Mathlab计算四分位数
在mathlab中是通过函数quantitle(x,p)来计算分位数的,其中x表示数据对象。计算四分位数时,参数p=0.25;计算四分之三分位数时,参数p=0.75。以下展示了这组数据在Mathlab中的计算结果。
同样一组数据在Rstudio中与Mathlab中竟然得到了不同的四分位数,这是什么情况?抱着这个问题再来看看python中的计算结果。
3. IPython计算四分位数
同样的打开IPython,来看一下python 中是如何计算四分位数的。
结果与Rstudio的结果一致,这又说明什么?为了进一步探究这个结果是如何计算出来的,我们需要查看numpy库中percentile()函数的实现方法。通过pycharm这个集成开发环境找到了percentile()函数的实现方法,以及其参数定义。
其中有个interpolation参数,正是定义了计算规则的关键。仔细一阅读,这下就明白了,如果不给interpolation参数赋值,该方法默认选择linear线性计算方法。
反之,可以通过给interpolation赋值选择计算分位数的方法。
- lower:表示以两数之间较小者作为分位数
- higher:表示以两数之间较大者作为分位数
- nearest:表示以分位点所靠较近的一个数作为分位数
- midpoint:表示以两个数的算数平均数作为分位数
这里所说的两个数,是指(n+1)/k,其中n表示一组数据的样本个数,k指这组数据被分成的段数,比如,二分位k=2,四分位k=4。
假设分数部分是f,就用if+j(1-f)即可得到相应的分位数
扫描下方二维码,关注微信公众号“数据分析师手记”