【问题标题】:Calculate raw moments in Python在 Python 中计算原始时刻
【发布时间】:2021-02-18 05:36:44
【问题描述】:

我想计算数据点列表的前 4 个原始矩,例如 my_list = [34.0, 35.0, 39.0, 43.0, 46.5, 48.5, 50.0, 51.5, 52.5]

我知道scipy.stats.moment,但它似乎只计算中心时刻:

scipy.stats.moment(a, moment=1, axis=0, nan_policy='propagate')

计算样本均值的第 n 个矩。

矩是对一组点形状的特定定量度量。由于与偏度和峰度的关系密切,常用于计算偏度和峰度系数。

我还注意到有scipy.stats 用于偏度或方差的函数:

from scipy.stats import variation, skew
my_list = [34.0, 35.0, 39.0, 43.0, 46.5, 48.5, 50.0, 51.5, 52.5]

print(np.var(my_list))
print(variation(my_list))

print(skew(my_list))

>>> 44.0246913580247
>>> 0.14928998626833617
>>> -0.39001327934054053

但正如您所见,numpyscipy 返回的结果截然不同。

这些方法之间有什么区别?找到前 4 个原始矩(均值、方差、偏度、峰度)的最有效方法是什么?

【问题讨论】:

  • scipy.stats.variation 返回变异系数,而不是 variance

标签: python numpy scipy


【解决方案1】:

使用scipy.stats.describe():

>>> x = [34.0, 35.0, 39.0, 43.0, 46.5, 48.5, 50.0, 51.5, 52.5]
>>> moments = scipy.stats.describe(x)
>>> moments.mean
44.44444444444444
>>> moments.variance
49.527777777777786
>>> moments.skewness
-0.39001327934054053
>>> moments.kurtosis
-1.3564638918570706

【讨论】:

    猜你喜欢
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 2016-08-29
    相关资源
    最近更新 更多