📅  最后修改于: 2023-12-03 15:08:58.018000             🧑  作者: Mango
在统计学中,偏度和峰度是衡量数据分布形态的特征量。在Python中,我们可以使用scipy库中的stats模块来计算偏度和峰度。本文将介绍如何使用Python计算偏度和峰度。
偏度(Skewness)是表示数据分布非对称程度的统计量。偏度的值可以为正、负或零。如果数据分布是左偏的,那么偏度为正。如果数据分布是右偏的,那么偏度为负。如果数据分布是对称的,那么偏度为零。
scipy
库中stats
模块的skew
函数可以计算偏度,函数定义如下:
scipy.stats.skew(a, axis=0, bias=True, nan_policy='propagate')
参数说明:
a
:数组axis
:0表示列,1表示行,默认0bias
:是否使用有偏估计,默认为Truenan_policy
:处理缺失值的策略,可选参数包括:峰度(Kurtosis)是衡量数据分布尖峭程度的统计量。峰度的值可以为正、负、或零。如果峰度的值大于3,那么数据的分布陡峭(Leptokurtic)。如果峰度的值小于3,那么数据的分布平坦(Platykurtic)。如果峰度的值等于3,那么数据的分布正常(Mesokurtic)。
scipy
库中stats
模块的kurtosis
函数可以计算峰度,函数定义如下:
scipy.stats.kurtosis(a, axis=0, fisher=True, bias=True, nan_policy='propagate')
参数说明:
a
:数组axis
:0表示列,1表示行,默认0fisher
:是否使用Fisher偏度,默认为Truebias
:是否使用有偏估计,默认为Truenan_policy
:处理缺失值的策略,可选参数包括:下面我们分别通过一个示例来计算偏度和峰度。
假设我们有一个包含100个随机数的数组,并对数组进行正太分布处理。
import numpy as np
from scipy import stats
# 生成随机数
np.random.seed(1)
data = np.random.randn(100)
使用stats.skew
函数计算数据的偏度
# 计算偏度
sk = stats.skew(data)
print('偏度:', sk)
输出结果:
偏度: -0.15070566283647892
可以看到,数据的偏度接近于零,说明数据分布大致对称。
使用stats.kurtosis
函数计算数据的峰度
# 计算峰度
ku = stats.kurtosis(data)
print('峰度:', ku)
输出结果:
峰度: 0.14797827054236586
可以看到,数据的峰度接近于3,说明数据的分布正常。