当前位置: 首页>>代码示例>>用法及示例精选>>正文


python scipy stats.kurtosis用法及代码示例

用法:

scipy.stats.kurtosis(a, axis=0, fisher=True, bias=True, nan_policy='propagate')

计算数据集的峰度(Fisher或Pearson)。

峰度是第四个中心矩除以方差的平方。如果使用Fisher的定义,则从结果中减去3.0,得出正态分布为0.0。

如果偏差为False,则使用k统计量计算峰度,以消除来自偏差矩估计量的偏差

使用kurtosistest查看结果是否足够接近正常值。

参数:

aarray

计算峰度的数据。

axisint 或 None, 可选参数

计算峰度的轴。默认值为0。如果为None,则对整个数组进行计算。

fisherbool, 可选参数

如果为True,则使用Fisher的定义(正常==> 0.0)。如果为False,则使用Pearson的定义(正常==> 3.0)。

biasbool, 可选参数

如果为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()

拉普拉斯分布的尾部比正态分布重。均匀分布(具有负峰度)的尾巴最薄。

../_images/scipy-stats-kurtosis-1.png

源码:

scipy.stats.kurtosis的API实现见:[源代码]

注:本文由纯净天空筛选整理自 scipy.stats.kurtosis。非经特殊声明,原始代码版权归原作者所有,本译文的传播和使用请遵循“署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)”协议。