一、总体
一般通过偏度和峰度对数据分布形态进行分析,与正态分布进行比较。
正态分布的偏度和峰度都看做零。
实际分析中,如果遇到峰度、偏度不为零情况,即表明变量存在左偏右偏,或者高顶平顶一说。
二、偏度 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代码)