一般通过偏度和峰度对数据分布形态进行分析,与正态分布进行比较。
正态分布的偏度和峰度都看做零。
实际分析中,如果遇到峰度、偏度不为零情况,即表明变量存在左偏右偏,或者高顶平顶一说。
偏度(skewness),是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。
偏度也称偏态、偏态系数。
表征概率分布密度曲线相对于平均值不对称程度的特征数。
直观看就是密度函数曲线尾部的相对长度。
偏度是三阶中心距计算得到的。
pandas
的调用方法为:
DataFrame.skew(axis=None, skipna=None, level=None, numeric_only=None, **kwargs) # axis{index (0), columns (1)} 定义计算的轴
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 '''
峰度(kurtosis)是描述某变量所有取值分布形态陡缓程度的统计量,简单来说,就是数据分布顶的尖锐程度。
峰度是四阶标准矩计算得到的。
pandas
的调用方法为:
DataFrame.kurt(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
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,求偏度
参考链接:pandas.DataFrame.skew
参考链接:数据的偏度和峰度——df.skew()、df.kurt()
参考链接:偏度与峰度(附python代码)