数据的概括性度量
数据的分布特征可以从三个方面进行测度和描述:一是分布的集中趋势,反映各数据向其中心值靠拢或聚集的程度;二是分布的离散程度,反映各数据远离其中心值的趋势;三是分布的形状,反映数据分布的偏态和峰态。这三个方面分别反映了数据分布特征的不同侧面。
集中趋势的度量
集中趋势(central tendency)是指一组数据向某一中心值靠拢的程度,它反映了一组数据中心点的位置所在。
分类数据:众数 众数(mode)是一组数据中出现次数最多的变量值,用表示。众数主要用于测度分类数据的集中趋势,也可作为顺序数据以及数值型数据集中趋势的测度值。一般情况下,只有在数据量较大的情况下众数才有意义。
# 例4.3
# 使用python获得众数
import numpy as np
from scipy import stats
dataset = [1080, 750, 1080, 1080, 850, 960, 2000, 1250, 1630]
mode = stats.mode(dataset)
print(mode)
# 打印的结果为众数本身,以及众数出现的次数
# 结果使用数组的原因为可能存在两个或多个众数
ModeResult(mode=array([1080]), count=array([3]))
顺序数据:中位数和分位数 在一组数据中,可以找出处在某个位置上的数据,这些位置上的数据就是相应的分位数,其中包括中位数、四分位数、十分位数、百分位数等。
中位数 中位数(median)是一组数据排序后处于中间位置上的变量值,用表示。设一组数据为,按从小到大的顺序排序后为,则中位数为:

# 例4.5
# 使用python计算中位数
import numpy as np
dataset = [750, 780, 850, 960, 1080, 1250, 1500, 1630, 2000]
median = np.median(dataset)
print(median)
# 奇数个,即用第5个数字即可
dataset2 = [660, 750, 780, 850, 960, 1080, 1250, 1500, 1630, 2000]
median2 = np.median(dataset2)
print(median2)
# 偶数个,取5,6两个的平均值
1080.0
1020.0
四分位数 中位数从中间点将全部数据等分为两部分。与中位数类似的还有四分位、十分位数(decile)和百分位数(percentile)等。它们分别是用3个点、9个点和99个点将数据4等分、10等分和100等分后各分位点上的值。四分位数(quartile)也称为四分位点,它是一组数据排序后处于25%和75%位置上的值。四分位数通过3个点将全部数据等分为4部分,其中每部分包含25%的数据。很显然,中间的四分位数就是中位数,因此通常所说的四分位数是指处在25%位置上的数值(称为下四分位)和处在75%位置上的数值(称为上四分位数)。设下四分位数为,上四分位数为,根据四分位数的定义有:
# 例4.6
# 计算四分位数
import numpy as np
dataset = [750, 780, 850, 960, 1080, 1250, 1500, 1630, 2000]
print("Q2 quantile of dataset : ", np.percentile(dataset, 50, interpolation='linear'))
print("Q1 quantile of dataset : ", np.percentile(dataset, 25, interpolation='linear'))
print("Q3 quantile of dataset : ", np.percentile(dataset, 75, interpolation='linear'))
Q2 quantile of dataset : 1080.0
Q1 quantile of dataset : 850.0
Q3 quantile of dataset : 1500.0
从计算结果看,与课本中(71页)的计算结果是不同,这里的算法是在将25%分位固定在(1+5)/2,第三个位置上。
平均数 平均数也称为均值(mean),它是一组数据相加后除以数据的个数得到的结果。
3-1. 简单平均数与加权平均数 根据未经分组数据计算的平均数称为简单平均数(simple mean)。设一组样本数据为,样本量(样本数据的个数)为n,则简单样本平均数用
根据分组数据计算的平均数称为加权平均数(weighted mean)。设原始数据被分成k组,各组的组中值分别用表示,各组变量值出现的频数分别用表示,则样本加权平均数的计算公式为:
式中,,即样本量。
3-2. 一种特殊的平均数:几何平均数 几何平均数(geometric mean)是n个变量值乘积的n次方根,用G表示。计算公式为:
式中, 为连乘符号。几何平均数主要用于计算平均比率,比如平均增长率。
众数、中位数和平均数的比较
三者的比较 从分布的角度看,众数始终是一组数据分布的最高峰值,中位数处于一组数据中间位置上的值,而平均数则是全部数据的算术平均。如果数据的分布是对称的,众数、中位数和平均数必定相等。如果数据是左偏分布,说明数据存在极小值,拉动平均数向极小值一方靠,而众数和中位数由于是位置代表值,不受极值的影响,三者的关系,平均数<中位数<众数。相反,右偏分布,则存在极大值,拉动平均数向极大值一方靠,因此众数<中位数<平均数。
众数、中位数和平均数的特点与应用场合 众数是一组数据分布的峰值,不受极端值的影响。其缺点是具有不唯一性,一组数据可能有一个众数,也可能有两个或多个众数,也可能没有众数。众数只有在数据量较多时才有意义,当数据量较少时,不宜使用众数。众数适合作为分类数据的集中趋势测度值。中位数是一组数据中间位置上的值,不受数据极端值的影响。当一组数据的分布偏斜程度较大时,使用中位数也许是一个好的选择。中位数适合作为顺序数据的集中趋势测度值。平均数是针对数值型数据计算的,而且利用了全部数据信息,它是应用最广泛的集中趋势测度值。当数据呈对称分布或接近对称分布时,三个代表值相等或接近相等,这时则应选择平均数作为集中趋势的代表值。但平均数的主要缺点是易受数据极端值的影响,对于偏态分布的数据,平均数的代表性较差。因此,当数据为偏态分布,特别是偏斜程度较大时,可以考虑选择中位数或众数,这时它们的代表性要比平均数好。
离散程度的度量
数据的离散程度是数据分布的另一个重要特征,它反映的是各变量远离其中心值的程度。数据的离散程度越大,集中趋势的测度值对该组数据的代表性就越差;离散程度越小,其代表性就越好。
分类数据:异众比率 异众比率(variation ratio)是指非众数的频数占总频数的比例,用表示。计算公式为:

异众比率主要用于衡量众数对一组数据的代表程度。异众比率越大,说明非众数组的频数占总频数的比重越大,众数的代表性越差。异众比率适合测度分类数据的离散程度。
顺序数据:四分位差 四分位差(quartile deviation)也称为内距或四分间距(inter-quartile range),它是上四分位数与下四分位数之差,用表示。其计算公式为:
四分位差反映了中间50%的数据的离散程度,数值越小,说明中间的数据越集中;数值越大,说明中间的数据越分散。四分位差不受极值的影响。四分位差主要用于测度顺序数据的离散程度。对于数值型数据也可以计算四分位差,但它不适合分类数据。
数值型数据:方差和标准差
测度数值型数据离散程度的方法主要有极差、平均差、方差和标准差,其中最常用的是方差和标准差。
极差 一组数据的最大值与最小值之差称为极差(range),也称全距,用R表示。其计算公式为:
平均差(mean deviation)也称平均绝对离差(mean absolute deviation),它是各变量值与其平均数离差绝对值的平均数,用表示。根据为分组数据计算平均差的公式为:

根据分组数据计算平均差的公式为:

其中为组内平均值。
方差和标准差 方差(variance)是各变量值与其平均数离差平方的平均数。它在数学处理上通过平方的办法消去离差的正负号,然后再进行平均。方差的平方根称为标准差(standard deviation)。方差(或标准差)能较好地反映出数据的离散程度,是应用最广的离散程度的测度值。
设样本方差为,根据未分组数据和分组数据计算样本方差的公式分别为:


样本方差是用样本数据个数减1后去除离差平方和,其中样本数据个数减1即n-1称为自由度(degree of freedom)。相应的,标准差计算公式为以上方差公式开根号。
# 标准差计算, ddof=1限制自由度为1
import numpy as np
dataset= [2,6,8,12,18,24,28,32]
sd= np.std(dataset,ddof=1)
print(sd)
10.977249200050075
相对位置的度量 有了平均数和标准差之后,可以计算一组数据中各个数据的标准分数,以测度每个数据在该组数据中的相对位置,并可以用它来判断一组数据是否有离群数据。
(1) 标准分数
变量值与其平均数的离差除以标准差后的称为标准分数(standard score),也称为标准化值或分数。设标准分数为,则有
标准分数给出了一组数据中个数据的相对位置。比如,如果某个数据的标准分数为-1.5,就知道该数据比平均值低1.5个标准差。
# 标准分数计算
import numpy as np
from scipy import stats
dataset = [2,6,8,12,18,24,28,32]
sd = np.std(dataset,ddof=1)
print(sd)
zs = stats.zscore(dataset)
print(zs)
10.977249200050075
[-1.38776942 -0.99822011 -0.80344546 -0.41389614 0.17042782 0.75475179
1.1443011 1.53385041]
(2) 经验法则
当一组数据对称分布时,经验法则表明:
约有68%的数据在平均数正负1个标准差的范围之内。 约有95%的数据在平均数正负2个标准差的范围之内。 约有99%的数据在平均数正负3个标准差的范围之内。
(3) 切比雪夫不等式
经验法则适合对称分布的数据。如果一组数据不是对称分布,经验法则就不再使用,这时可使用切比雪夫不等式(Chebyshev's inequality),至少有的数据落在正负k个标准差之内。其中k是大于1的任意值,但不一定是整数。
至少有75%的数据在平均数正负2个标准差的范围之内。 至少有89%的数据在平均数正负3个标准差的范围之内。 至少有94%的数据在平均数正负4个标准差的范围之内。
相对离散程度:离散系数 离散系数(coefficient of variation)也称为变异系数,它是一组数据的标准差与其相应的平均数之比。其计算公式为:
离散系数是测度数据离散程度的统计量,主要用于比较不同样本数据的离散程度。离散系数大,说明数据的离散程度也大;离散系数小,说明数据的离散程度也小。使用场景,比较射击运动员的发挥稳定性,离散系数越小则越稳定。
# python计算离散系数
from scipy.stats import variation
variation([1, 2, 3, 4, 5])
0.47140452079103173
偏态与峰态的度量
集中趋势和离散程度是数据分布的两个重要特征,但要全面了解数据分布的特点,还需要知道数据分布的形状是否对称、偏斜的程度以及分布的扁平程度等。偏态和峰态就是对分布形状的测度。
偏态及其测度 "偏态"(skewness)一词是由统计学家皮尔逊(K.Pearson)于1895年首次提出的,它是对数据分布对称性的测度。测度偏态的统计量是偏态系数(coefficient of skewness),记做SK。
偏态系数的计算方法有很多。在根据未分组的原始数据计算偏态系数时,通常采用下面的公式:
式中,是样本标准差的三次方。如果一组数据的分布是对称的,则偏态系数等于0;如果偏态系数明显不等于0,表明分布是非对称的。若偏态系数大于1或小于-1,称为高度偏态分布;若偏态系数在0.51或-1-0.5之间,则认为是中等偏态分布;偏态系数越接近0,偏斜程度就越小。
峰态及其测度 "峰态"(kurtosis)一词同样由皮尔逊于1905年首次提出。它是对数据分布平峰或尖峰程度的测度。测度峰态的统计量是峰态系数(coefficient of kurtosis),记作K。
峰态通常是与标准正态分布相比较而言的。如果一组数据服从标准正态分布,则峰态系数的值等于0;若峰态系数的值明显不等于0,则表明分布比正态分布更平或更尖,通常称为平峰分布或尖峰分布。未分组数据计算峰态系数时,通常采用下面的公式:

由于正态分布的峰态系数为0,当K>0时为尖峰分布,数据的分布更集中;当K<0时为扁平分布,数据的分布更分散。
# 计算正态数组的偏态和峰态,及其分布图
%matplotlib inline
import numpy as np
import pandas as pd
from scipy.stats import kurtosis
from scipy.stats import skew
import matplotlib.pyplot as plt
plt.style.use('ggplot')
data = np.random.normal(0, 1, 10000000)
np.var(data)
plt.hist(data, bins=60)
print("mean : ", np.mean(data))
print("var : ", np.var(data))
print("skew : ",skew(data))
print("kurt : ",kurtosis(data))
mean : -3.91560976123657e-05
var : 0.9998920570474006
skew : -0.0003303810019233754
kurt : 0.001272621774793592

总结
+--------------------+
| 数据分布特征 |
| |
+-----------------+--------+-----------+---------------+
| | |
| | |
+-------v-------+ +--------v-------+ +----------v---------+
| 集中趋势 | | 离散程度 | | 分布的形状 |
| | | | | |
+-----+---------+ +------+---------+ +------+-------------+
| | |
| | +--------+ |
| +-------+ +-->众异比率 | | +-----------+
+--> 众数 | | +--------+ +---> 偏态系数 |
| +-------+ | | +-----------+
| | +--------+ |
| +-------+ +-->四分位差| | +-----------+
+--> 中位数| | +--------+ +---> 峰态系数 |
| +-------+ | +-----------+
| | +---------+
| +-------+ +--> 极差 |
+--> 平均数| | +---------+
+-------+ | +---------+
+--> 平均差 |
| +---------+
| +---------+
+--> 方差或 |
| | 标准差 |
| +---------+
| +---------+
+--> 离散系数|
+---------+




