平均值(Mean)、⽅差(Variance)、标准差
(StandardDeviation)
开篇明志
对于⼀维数据的分析,最常见的就是计算平均值(Mean)、⽅差(Variance)和标准差(Standard Deviation)。在做【特征⼯程】的时候,会出现缺失值,那么经常会⽤到使⽤ 平均值 或者 中位数等进⾏填充。
平均值
平均值的概念很简单:所有数据之和除以数据点的个数,以此表⽰数据集的平均⼤⼩;其数学定义为
以下⾯10个点的CPU使⽤率数据为例,其平均值为17.2。
14 31 16 19 26 14 14 14 11 13
1
⽅差、标准差
⽅差这⼀概念的⽬的是为了表⽰数据集中数据点的离散程度;其数学定义为:
标准差与⽅差⼀样,表⽰的也是数据点的离散程度;其在数学上定义为⽅差的平⽅根:
为什么使⽤标准差?
与⽅差相⽐,使⽤标准差来表⽰数据点的离散程度有3个好处:
表⽰离散程度的数字与样本数据点的数量级⼀致,更适合对数据样本形成感性认知。依然以上述10个点的CPU使⽤率数据为例,其⽅差约为41,⽽标准差则为6.4;两者相⽐较,标准差更适合⼈理解。
表⽰离散程度的数字单位与样本数据的单位⼀致,更⽅便做后续的分析运算。
在样本数据⼤致符合正态分布的情况下,标准差具有⽅便估算的特性:66.7%的数据点落在平均值前后1个标准差的范围内、95%的数据点落在平均值前后2个标准差的范围内,⽽99%的数据点将会落在平均值前后3个标准差的范围内。
贝赛尔修正
在上⾯的⽅差公式和标准差公式中,存在⼀个值为N的分母,其作⽤为将计算得到的累积偏差进⾏平均,从⽽消除数据集⼤⼩对计算数据离散程度所产⽣的影响。不过,使⽤N所计算得到的⽅差及标准差只能⽤来表⽰该数据集本⾝(population)的离散程度;如果数据集是某个更⼤的研究对象的样本(sample),那么在计算该研究对象的离散程度时,就需要对上述⽅差公式和标准差公式进⾏贝塞尔修正,将N替换为N-1:
经过贝塞尔修正后的⽅差公式:
经过贝塞尔修正后的标准差公式:
公式的选择
是否使⽤贝塞尔修正,是由数据集的性质来决定的:如果只想计算数据集本⾝的离散程度(population),那么就使⽤未经修正的公式;如果数据集是⼀个样本(sample),⽽想要计算的则是样本所表达对象的离散程度,那么就使⽤贝塞尔修正后的公式。在特殊情况下,如果该数据集相较总体⽽⾔是⼀个极⼤的样本 (⽐如⼀分钟内采集了⼗万次的IO数据) — 在这种情况下,该样本数据集不可能错过任何的异常值(outlier),此时可以使⽤未经修正的公式来计算总体数据的离散程度。
平均值与标准差的适⽤范围及误⽤
⼤多数统计学指标都有其适⽤范围,平均值、⽅差和标准差也不例外,其适⽤的数据集必须满⾜以下条件:
中部单峰:
数据集只存在⼀个峰值。很简单,以假想的CPU使⽤率数据为例,如果50%的数据点位于20附近,另外50%的数据点位于80附近(两个峰),那么计算得到的平均值约为50,⽽标准差约为31;这两个计算结果完全⽆法描述数据点的特征,反⽽具有误导性。
这个峰值必须⼤致位于数据集中部。还是以假想的CPU数据为例,如果80%的数据点位于20附近,剩下的20%数据随机分布于30~90之间,那么计算得到的平均值约为35,⽽标准差约为25;与之前⼀样,这两个计算结果不仅⽆法描述数据特征,反⽽会造成误导。
遗憾的是,在现实⽣活中,很多数据分布并不满⾜上述两个条件;因此,在使⽤平均值、⽅差和标准差的时候,必须谨慎⼩⼼。
如果数据集仅仅满⾜⼀个条件:单峰。那么,峰值在哪⾥?峰的宽带是多少?峰两边的数据对称性如何?有没有异常值(outlier)?为了回答这些问题,除了平均值、⽅差和标准差,需要更合适的⼯具和分析指标,⽽这,就是中位数、均⽅根、百分位数和四分差的意义所在。