scipy.stats.kstat

scipy.stats.kstat(data, n=2)[源代码]

返回第n个k-统计量(到目前为止,1<=n<=4)。

第n个k统计量k_n是n个累积量kappa_n的唯一对称无偏估计。

参数
dataarray_like

输入数组。请注意,n-D输入被展平。

nint,{1,2,3,4},可选

默认值等于2。

退货
kstat浮动

第n个k-统计量。

参见

kstatvar

返回k统计量方差的无偏估计器。

moment

返回关于样本平均值的第n次中心矩。

注意事项

对于样本大小为n的情况,前几个k统计量由下式给出:

\[k_{1} = \mu k_{2} = \frac{n}{n-1} m_{2} k_{3} = \frac{ n^{2} } {(n-1) (n-2)} m_{3} k_{4} = \frac{ n^{2} [(n + 1)m_{4} - 3(n - 1) m^2_{2}]} {(n-1) (n-2) (n-3)}\]

哪里 \(\mu\) 是样本均值, \(m_2\) 是样本方差,并且 \(m_i\) 是第i个样本中心时刻。

参考文献

http://mathworld.wolfram.com/k-Statistic.html

http://mathworld.wolfram.com/Cumulant.html

示例

>>> from scipy import stats
>>> from numpy.random import default_rng
>>> rng = default_rng()

随着样本量的增加,n阶矩和n阶k统计量收敛到相同的数字(尽管它们不相同)。在正态分布的情况下,它们收敛到零。

>>> for n in [2, 3, 4, 5, 6, 7]:
...     x = rng.normal(size=10**n)
...     m, k = stats.moment(x, 3), stats.kstat(x, 3)
...     print("%.3g %.3g %.3g" % (m, k, m-k))
-0.631 -0.651 0.0194  # random
0.0282 0.0283 -8.49e-05
-0.0454 -0.0454 1.36e-05
7.53e-05 7.53e-05 -2.26e-09
0.00166 0.00166 -4.99e-09
-2.88e-06 -2.88e-06 8.63e-13