dask.array.stats.kurtosis

dask.array.stats.kurtosis

dask.array.stats.kurtosis(a, axis=0, fisher=True, bias=True, nan_policy='propagate')[源代码]

此文档字符串是从 scipy.stats.kurtosis 复制的。

Dask 版本可能存在一些不一致性。

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

峰度是第四中心矩除以方差的平方。如果使用费雪的定义,那么结果减去3.0,对于正态分布来说,结果为0.0。

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

使用 kurtosistest 来检查结果是否足够接近正态分布。

参数
a数组

计算峰度所用的数据。

int 或 None, 默认值: 0

如果是一个整数,表示输入数据中要计算统计量的轴。输入数据的每个轴切片(例如行)的统计量将出现在输出的相应元素中。如果为 None,则在计算统计量之前会将输入数据展平。

fisherbool, 可选

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

偏见bool, 可选

如果为 False,则计算会针对统计偏差进行修正。

nan_policy{‘propagate’, ‘omit’, ‘raise’}

定义如何处理输入的 NaN。

  • propagate: 如果在计算统计量的轴切片(例如行)中存在 NaN,则输出的相应条目将为 NaN。

  • omit: 在执行计算时,NaN 将被省略。如果在计算统计量的轴切片中剩余的数据不足,则输出的相应条目将为 NaN。

  • raise: 如果存在 NaN,将引发 ValueError

keepdimsbool, 默认: False (Dask 不支持)

如果设置为True,被减少的轴将作为尺寸为1的维度保留在结果中。通过此选项,结果将正确地与输入数组进行广播。

返回
峰度数组

沿轴的值的峰度,当所有值相等时返回 NaN。

注释

从 SciPy 1.9 开始,np.matrix 输入(不推荐用于新代码)在计算执行前被转换为 np.ndarray。在这种情况下,输出将是一个标量或适当形状的 np.ndarray,而不是一个 2D 的 np.matrix。同样,虽然掩码数组的掩码元素被忽略,但输出将是一个标量或 np.ndarray,而不是一个 mask=False 的掩码数组。

参考文献

1

Zwillinger, D. 和 Kokoska, S. (2000). CRC 标准概率与统计表格及公式. Chapman & Hall: 纽约. 2000.

示例

根据费舍尔的定义,正态分布的峰度为零。在下面的例子中,峰度接近于零,因为它是从数据集计算得出的,而不是从连续分布中计算得出的。

>>> import numpy as np  
>>> 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()

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