我正在尝试将伽玛分布拟合到我的数据点上,我可以使用以下代码进行操作。
import scipy.stats as ss
import numpy as np
dataPoints = np.arange(0,1000,0.2)
fit_alpha,fit_loc,fit_beta = ss.rv_continuous.fit(ss.gamma, dataPoints, floc=0)
我想使用许多小的Gamma分布来重构一个更大的分布(更大的分布与问题无关,只是为了证明我为什么要拟合累积分布而不是概率密度函数)。
为了实现这一目标,我希望将我的小分布数据拟合到累积分布而不是概率密度函数。—更准确地说,我只想将数据拟合到累积分布的一部分。
例如,我只想将数据拟合到累积概率函数(具有特定比例和形状)达到0.6之前的部分。
您对使用fit()
进行此目的有什么想法吗?
curve_fit
函数将其拟合为伽马分布。详情请参考文档:http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html 。 - ev-brss.gamma.fit(dataPoints, floc=0)
并没有产生任何有意义的结果,因为你的 dataPoints 不是从伽马分布中取样得到的。fit
只能从样本点估计分布参数。如果你只想拟合 cdf 的形状,请遵循 Zhenya 的建议。或者,将样本点拟合到截断版本的伽马分布中。 - Josef