【发布时间】:2014-09-28 09:44:01
【问题描述】:
我在 python/numpy/scipy 环境中有需要适合概率密度函数的数据。一种方法是创建数据的直方图,然后将曲线拟合到该直方图。 scipy.optimize.leastsq 方法通过最小化 (y - f(x))**2 的总和来实现这一点,在这种情况下,(x,y) 将是直方图的 bin 中心和 bin 内容。
在统计术语中,此最小二乘法通过从以该 bin 位置处的拟合函数为中心的高斯采样每个 bin 计数来最大化获得该直方图的可能性。您可以很容易地看到:每一项 (y-f(x))**2 是 -log(gauss(y|mean=f(x))),总和是所有 bin 的高斯似然相乘的对数。
但这并不总是准确的:对于我正在查看的统计数据类型,每个 bin 计数都是泊松过程的结果,所以我想最小化(所有 bin 的乘积对数(x ,y) 的)poisson(y|mean=f(x))。对于较大的 f(x) 值,泊松分布非常接近高斯分布,但如果我的直方图没有那么好的统计数据,则差异将是相关的并影响拟合。
【问题讨论】:
-
不是我的领域,但你能重新表述问题以便
scipy.optimize.fsolve解决吗?
标签: python numpy statistics curve-fitting