拟合具有正态分布的加权直方图

时间:2014-01-11 15:13:11

标签: python scipy histogram

我知道如何使用SCipy库(Fitting a histogram with python)使用正态分布拟合输入直方图的数据但是如果在数据之上我有一个具有相同数量的权重数组,我怎么能这样做呢?尺寸。是否有适当的功能,或者我应该创建由数据馈送的第二个数组并自己加权?

干杯。

编辑:

这已经在这里得到了解答:

Weighted standard deviation in NumPy?

2 个答案:

答案 0 :(得分:0)

只需使用scipy.histogram上的权重参数,然后传入权重数组:

scipy.stats.histogram(a, numbins=10, defaultlimits=None, weights=None, printextras=False)

来自文档:

  

weights:array_like,optional a中每个值的权重。   默认值为None,它为每个值赋予权重1.0


注意:从v1.0起,scipy does not have the function histogram,但从v1.11 histogram appears in numpy开始,使用包含weights=参数的类似(但不完全相同)的呼叫签名:< / p>

numpy.histogram(a, bins=10, range=None, normed=False, weights=None, density=None)

答案 1 :(得分:0)

如果您正在寻找正态分布N(mu,sigma) 您可以从输入数据中精确计算出mu和sigma。

例如:X = x1,...,xN是值,W = w1,...,wN是权重

mu = sum (X * W) / sum(W)
sigma = np.sqrt (sum (W * (X- mu)**2) / sum(W))

如果要适合另一种发行版,我建议使用OpenTURNS库提供答案here