作者:長行
時間:2019.03.10
偏度:偏度(skewness),也稱偏態,是衡量統計數據分佈偏斜方向和程度的統計量。例如,正態分佈的偏度=0,即分佈關於均值左右對稱。
若偏度<0,則說明分佈呈左偏態,此時均值左邊的數據比右邊少;若偏度>0,則說明分佈呈右偏態,此時均值右邊的數據比左邊少;若偏度接近於0,則說明分佈是接近對稱的。
統計學解釋
偏度的定義式:
Skeness=E[(σX−μ)3]=σ3μ3=(E[(X−μ)2])23E[(X−μ)3]=k223k3
其中μ爲均值,σ爲標準差,μ3爲三階中心距,kt爲tth累積量。
偏度第一種的計算公式:
Skewness=[n−11∑i=1n(Xi−X)2]23n1∑i=1n(Xi−X3)
其中X爲樣本均值。
偏度的第二種計算公式,SPSS、Excel等軟件均使用這一公式:
Skewness=n−2n(n−1)[[n−11∑i=1n(Xi−X)2]23n1∑i=1n(Xi−X3)]
其中X爲樣本均值。
實現思路
先計算出數據的樣本個數和均值;通過遍歷數據中所有的樣本,計算出∑i=1n(Xi−X)3和∑i=1n(Xi−X)2的結果,再以此計算偏度的值。
實現代碼
data_test=[1,1,1,1,1,2,2,2,2,3,3,3,4,4,5]
計算偏度
import math
import numpy
def sknewness(data):
n = len(data)
average=numpy.mean(data)
m1=0
m2=0
k=math.sqrt(n*(n-1))/(n-2)
for i in data:
m1+=(i-average)**3
m2+=(i-average)**2
m1/=n
m2/=n
m2=math.sqrt(m2**3)
skewness=k*m1/m2
return skewness
print('skewness =',sknewness(data_test))
結果
skewness = 0.6554279508966393
代碼解釋
x/=y
與x=x/y的含義相同