拟合分布的参数

时间:2018-03-20 21:12:54

标签: python numpy scipy statistics pymc3

在搜索我的数据集的最佳拟合分布时,结果是指数修正的正态分布,其中包含以下参数:

K=10.84, loc=154.35, scale=73.82 

Scipy为我们提供了一种分析分布均值的方法:

  fitted_mean =  scipy.stats.exponnorm.stats(K=10.84, loc=154.35, scale=73.82, moments='mean') 

得到的fits_mean = 984,与我的数据集的含义相同。但是,我不确定这是告诉我的。我认为loc = 154.35是分布的平均值。

这两个意味着什么?如果我使用最佳分布拟合数据,fit_mean(154.35)不是新的且唯一的意思吗?

1 个答案:

答案 0 :(得分:2)

对于指数修正的正态分布,location参数与均值相同。对于许多发行版都是如此。

看看wikipedia page for the exponentially modified Gaussian distribution。这与scipy.stats.exponnorm的分布相同,但具有不同的参数化。维基百科版和scipy之间的参数映射是:

μ = loc
σ = scale
λ = 1/(K*scale)

维基百科页面说明分布的平均值是μ+ 1 /λ,就scipy参数而言,它是loc + K*scale

当您将分配符合数据时,您找到了

loc = 154.35
scale = 73.82 
K = 10.84

来自维基百科页面的均值公式

loc + K*scale = 954.5587999999999

以下是使用exponnorm的计算:

In [16]: fitted_mean = scipy.stats.exponnorm.stats(K=10.84, loc=154.35, scale=73.82, moments='mean')

In [17]: fitted_mean
Out[17]: array(954.5587999999999)

与维基百科公式的结果相匹配。

(您报告了fitted_mean = 984,但我认为这是一个印刷错误。)