原文鏈接:https://blog.csdn.net/xidiancoder/article/details/71341345
對於一維數據的分析,最常見的就是計算平均值(Mean)、方差(Variance)和標准差(Standard Deviation)。在做【特征工程】的時候,會出現缺失值,那么經常會用到使用 平均值 或者 中位數等進行填充。
平均值
平均值的概念很簡單:所有數據之和除以數據點的個數,以此表示數據集的平均大小;其數學定義為
以下面10個點的CPU使用率數據為例,其平均值為17.2。
14 31 16 19 26 14 14 14 11 13
方差、標准差
方差這一概念的目的是為了表示數據集中數據點的離散程度;其數學定義為:
標准差與方差一樣,表示的也是數據點的離散程度;其在數學上定義為方差的平方根:
為什么使用標准差?
與方差相比,使用標准差來表示數據點的離散程度有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)?為了回答這些問題,除了平均值、方差和標准差,需要更合適的工具和分析指標,而這,就是中位數、均方根、百分位數和四分差的意義所在。