gpt4 book ai didi

python - 是否有用于分箱数据的 sci.stats.moment 函数?

转载 作者:太空宇宙 更新时间:2023-11-03 14:26:51 24 4
gpt4 key购买 nike

我正在寻找一个计算第n个中心矩的函数(与 scipy.stats.moment 中的相同)对于我的分箱数据(在 numpy.histogram 函数之外)。

# Generate normal distributed data
import numpy as np
import matplotlib.pyplot as plt
data = np.random.normal(size=500,loc=1,scale=2)
H = np.histogram(data,bins=50)
plt.scatter(H[1][:-1],H[0])
plt.show()

对于我上面的代码示例,前四个时刻的结果应为 (0,4,0,48),因为 sigma = 2(对于中心时刻)。

最佳答案

处理分箱数据本质上与处理加权数据相同。人们使用每个箱的中点作为数据点,并将该箱的计数作为其权重。如果 scipy.stats.moment 支持权重,我们可以直接进行此计算。按原样,使用方法 numpy.average它支持重量。

midpoints = 0.5 * (H[1][1:] + H[1][:-1])
ev = np.average(midpoints, weights = H[0])
print(ev)
for k in range(2, 5):
print(np.average((midpoints - ev)**k, weights = H[0]))

输出(显然是随机的):

1.08242834443
4.21602099286
0.713129264647
51.6257736139

我没有打印居中的第一时刻(构造时为 0),而是打印期望值。理论上*,这些是 1, 4, 0, 48,但对于任何给定的样本,分布参数都会存在一些偏差。

(*) 不完全是。在方差公式中,我没有包含校正因子n/(n-1)(其中n是数据集的总大小,即权重之和)。该因素调整sample variance因此它成为总体方差的无偏估计量。如果您愿意,可以将其包括在内。高阶矩可能需要类似的调整(如果目标是拥有无偏估计量),但我必须查找这一点,无论如何这不是一个统计站点。

关于python - 是否有用于分箱数据的 sci.stats.moment 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47575063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com