gpt4 book ai didi

python - 使用 float 将正态分布拟合到加权数据

转载 作者:行者123 更新时间:2023-12-05 06:18:00 25 4
gpt4 key购买 nike

我想使一些数据点符合正态分布,但找不到可以让我输入数据点权重的函数。 scipy.stats.norm.fit 只需要一些数据,如有必要,locscale 参数用于平均值和标准偏差。

我的数据的权重是 float ,所以我不能使用 Fit normal distribution to weighted list 中描述的解决方案出于显而易见的原因。

values = [0, 1, 2, 3, ..., 44, 52]
weights = [0.06537925227866273, 0.9735569357920033, 3.1333312174908325, 5.558819116316957, ..., 0.0070813375592937555, 0.040237487324237445]

对我来说,将权重乘以 100 然后使用 round() 并不是一个好的解决方案,因为权重可以变得更小。

最佳答案

您可以通过对数据和平方误差取加权平均值来使加权数据符合正态分布:

def fit_normal(values, weights):

# prepare
values = np.array(values)
weights = np.array(weights)

# estimate mean
weights_sum = weights.sum()
mean = (values*weights).sum() / weights_sum

# estimate variance
errors = (values-mean)**2
variance = (errors*weights).sum() / weights_sum

return (mean, variance)

关于python - 使用 float 将正态分布拟合到加权数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61429917/

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