一、總體
一般通過偏度和峰度對數據分布形態進行分析,與正態分布進行比較。
正態分布的偏度和峰度都看做零。
實際分析中,如果遇到峰度、偏度不為零情況,即表明變量存在左偏右偏,或者高頂平頂一說。
二、偏度 skewness
1.介紹
偏度(skewness),是統計數據分布偏斜方向和程度的度量,是統計數據分布非對稱程度的數字特征。
偏度也稱偏態、偏態系數。
表征概率分布密度曲線相對於平均值不對稱程度的特征數。
直觀看就是密度函數曲線尾部的相對長度。
偏度是三階中心距計算得到的。
- skewness = 0 —— 分布形態與正態分布偏度相同
- skewness > 0 —— 正偏差數值較大,為正偏或右偏。長尾巴拖在右邊,數據右端有較多的極端值
- skewness < 0 —— 負偏差數值較大,為負偏或左偏。長尾巴拖在左邊,數據左端有較多的極端值
- 數值的絕對值越大,表明數據分布越不對稱,偏斜程度大
pandas
的調用方法為:
DataFrame.skew(axis=None,
skipna=None,
level=None,
numeric_only=None,
**kwargs)
# axis{index (0), columns (1)} 定義計算的軸
2.實操
import pandas as pd
df = pd.DataFrame({
'A':[1,2,3,4],
'B':[2,4,5,2]
})
df.skew(axis=0)
df.skew()
'''
A 0.00000
B 0.37037
'''
df['C'] = [4,5,6,7]
df.skew()
'''
A 0.00000
B 0.37037
C 0.00000
dtype: float64
'''
三、峰度
1.介紹
峰度(kurtosis)是描述某變量所有取值分布形態陡緩程度的統計量,簡單來說,就是數據分布頂的尖銳程度。
峰度是四階標准矩計算得到的。
- kurtosis = 0 —— 與正態分布的陡緩程度相同
- kurtosis > 0 —— 比正態分布的高峰更加陡峭——尖頂峰
- kurtosis < 0 —— 比正態分布的高峰來得平台——平頂峰
pandas
的調用方法為:
DataFrame.kurt(self,
axis=None,
skipna=None,
level=None,
numeric_only=None,
**kwargs)
2.實操
import pandas as pd
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
import seaborn as sns
# 導入鳶尾花數據
iris = load_iris()
x = iris.data
y = iris.target
df = pd.DataFrame(x, columns=iris.feature_names)
# 可視化
sns.pairplot(df)
# 偏度、峰度
df.skew()
'''
sepal length (cm) 0.314911
sepal width (cm) 0.334053
petal length (cm) -0.274464
petal width (cm) -0.104997
dtype: float64
'''
df.kurt()
'''
sepal length (cm) -0.552064
sepal width (cm) 0.290781
petal length (cm) -1.401921
petal width (cm) -1.339754
dtype: float64
'''
參考鏈接:Pandas之skew,求偏度
參考鏈接:數據的偏度和峰度——df.skew()、df.kurt()
參考鏈接:偏度與峰度(附python代碼)