中位数和百分位数

前文中讨论了平均数和众数,接下来再了解一个代表序列中典型数据的统计量——中位数,也称为中值。首先,中位数应用的基础是,数列中的数据应是升序排列的,称为有序数列,如1、2、3。

中位数是位于有序数列正中间的数据,根据数据的数量区分会有两种情况,一是序列的数据数量是奇数时,中位数就是中间的一个数据,如1、2、3的中位数就是2;另一种情况是序列中数据的数量是偶数时,中位数是中间两个数据的平均数,如1、2、3、4的中位数就是2.5。

Excel中可以使用MEDIAN()函数计算中位数,对没有排序的数据会自动排序后计算,如下图所示。

使用MEDIAN()函数计算中位数

站在有序数列的正中间,中位数在数据序列会有一定的代表性,并且不会受极值的影响;但也需要注意,如果中位数比较“孤单”,则其代表性也就不明显了,如1、2、3的中位数是2,1和3距离它并不远,而-5、2、100的中位数也是2,但相邻的-5和100就距离它很远了。所以,在讨论一个有序数列的典型数据时,可以综合使用平均数、中位数和众数进行评估。

下图中有两个数列,在Excel分别计算了它们的平均数、中位数和众数。

通过平均数、中位数和众数观察数据的集中程度

平均数、中位数和众数都可以观察序列的典型数据和集中程度,本例中可以看到数列A的平均数、中位数和众数比较接近,可以得出结论:数列A中的数据比较集中,实际观察情况也是这样。而数列B的平均数、中位数和众数相差相大,说明数列B中的数据比较分散。

有序数列的百分位数是指在序列中百分位上的数据,先来看Excel中PERCENTILE.INC()函数的应用,如下图所示。

使用PERCENTILE.INC()函数求中位数

PERCENTILE.INC()函数需要两个参数,参数1指定数据范围,参数2需要一个0到1的数值,用于指定百分位,0表示0%,1表示100%;示例中的0.5表示50%,也就是序列的中位数。

PERCENTILE.INC()函数计算的百分位数与很多概念是对应的,即0%是最小值,100%是最大值,50%是中位数,25%是下四分位数,75%是上四分位数,可以通过第2个参数设置获取相应的数据。此外,序列中的最小值可以使用MIN()函数,最大值可以使用MAX()函数计算,中位数可以使用MEDIAN()函数计算。

Excel中另一个计算百分位数的函数是PERCENTILE.EXC(),它与PERCENTILE.INC()函数的内部算法略有不同,计算出的百分位数可能会略差别;而且,PERCENTILE.EXC()函数的第二个参数只能在0到1之间,但不能取0和1,也就是不能计算最小值和最大值。《Excel+Python轻松掌握数据分析》一书中讨论了两种算法的区别,并使用Python代码分别实现了这两种算法,有兴趣的朋友可以参考一下,在作者个人网站可以了解更多内容,网址http://caohuayu.com。