从this question开始,有没有办法使用MLE以外的任何方法(最大似然估计)来拟合scipy中的连续分布?我认为我的数据可能导致MLE方法出现分歧,所以我想尝试使用矩阵的方法,但我不知道如何在scipy中做到这一点。具体来说,我期待找到像
这样的东西scipy.stats.genextreme.fit(data, method=method_of_moments)
有谁知道这是否可能,如果可以,怎么做?
答案 0 :(得分:2)
很少提及:
1)scipy
不支持GMM。通过statsmodels
(http://statsmodels.sourceforge.net/stable/gmm.html)对GMM提供了一些支持,你也可以通过Rpy2
访问许多R例程(而且R
必然会有各种GMM风格的发明):http://rpy.sourceforge.net/rpy2/doc-2.1/html/index.html
2)关于收敛的稳定性,如果这是问题,那么可能你的问题不在于目标被最大化(例如,可能性,而不是广义时刻),而是优化者。渐变优化器可能非常挑剔(或者说,我们给它们的问题并不适合梯度优化,导致收敛性差)。
如果statsmodels和Rpy没有为您提供所需的例程,那么将您的时刻计算写出详细可能是一个好主意,并了解如何自己最大化它 - 也许定制的小工具可以很好地工作为你?