用法:
scipy.stats.kurtosis(a, axis=0, fisher=True, bias=True, nan_policy='propagate')
计算数据集的峰度(Fisher或Pearson)。
峰度是第四个中心矩除以方差的平方。如果使用Fisher的定义,则从结果中减去3.0,得出正态分布为0.0。
如果偏差为False,则使用k统计量计算峰度,以消除来自偏差矩估计量的偏差
使用
kurtosistest
查看结果是否足够接近正常值。参数:
- a:array
计算峰度的数据。
- axis:int 或 None, 可选参数
计算峰度的轴。默认值为0。如果为None,则对整个数组进行计算。
- fisher:bool, 可选参数
如果为True,则使用Fisher的定义(正常==> 0.0)。如果为False,则使用Pearson的定义(正常==> 3.0)。
- bias:bool, 可选参数
如果为False,则针对统计偏差对计算进行校正。
- nan_policy:{‘propagate’, ‘raise’, ‘omit’}, 可选参数
定义当输入包含nan时如何处理。 ‘propagate’返回nan,‘raise’引发错误,‘omit’忽略nan值执行计算。默认值为‘propagate’。
返回值:
- kurtosis:数组
值沿轴的峰度。如果所有值都相等,则Fisher的定义返回-3,Pearson的定义返回0。
参考文献:
- 1
Zwillinger,D。和Kokoska,S。(2000)。 CRC标准概率和统计表及公式。查普曼和霍尔:纽约。 2000。
例子:
在费舍尔的定义中,正态分布的峰度为零。在以下示例中,峰度接近零,因为峰度是根据数据集而不是连续分布计算得出的。
>>> from scipy.stats import norm, kurtosis >>> data = norm.rvs(size=1000, random_state=3) >>> kurtosis(data) -0.06928694200380558
峰度较高的分布具有较重的尾部。 Fisher定义中正态分布的零值峰度可以用作参考点。
>>> import matplotlib.pyplot as plt >>> import scipy.stats as stats >>> from scipy.stats import kurtosis
>>> x = np.linspace(-5, 5, 100) >>> ax = plt.subplot() >>> distnames = ['laplace', 'norm', 'uniform']
>>> for distname in distnames: ... if distname == 'uniform': ... dist = getattr(stats, distname)(loc=-2, scale=4) ... else: ... dist = getattr(stats, distname) ... data = dist.rvs(size=1000) ... kur = kurtosis(data, fisher=True) ... y = dist.pdf(x) ... ax.plot(x, y, label="{}, {}".format(distname, round(kur, 3))) ... ax.legend()
拉普拉斯分布的尾部比正态分布重。均匀分布(具有负峰度)的尾巴最薄。
源码:
scipy.stats.kurtosis的API实现见:[源代码]
注:本文由纯净天空筛选整理自 scipy.stats.kurtosis。非经特殊声明,原始代码版权归原作者所有,本译文的传播和使用请遵循“署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)”协议。