【问题标题】:Method of moments in scipy?scipy中的矩方法?
【发布时间】:2026-01-24 21:10:01
【问题描述】:

this question 开始,有没有办法使用 MLE(最大似然估计)以外的任何方法来拟合 scipy 中的连续分布?我认为我的数据可能导致MLE方法发散,所以我想尝试使用moments的方法,但我无法在scipy中找到如何做到这一点。具体来说,我希望找到类似的东西

scipy.stats.genextreme.fit(data, method=method_of_moments)

有谁知道这是否可行,如果可以怎么做?

【问题讨论】:

  • 不在 scipy stats 中,无论如何也不是开箱即用的。 DIY可能会更好。如果您提供有关所涉及数学的更多详细信息,那么说一些有用的东西会更容易。

标签: python statistics scipy


【解决方案1】:

有几件事要提:

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 不能为您提供所需的例程,最好将您的时刻计算详细地写出来,然后看看如何自己最大化它 - 也许定制的小工具会很好用给你?

【讨论】: