gpt4 book ai didi

python - 在 scipy.stats 中,rv_continuous 有一个 fit 方法来查找 MLE,但 rv_discrete 没有。为什么?

转载 作者:太空狗 更新时间:2023-10-29 17:48:37 25 4
gpt4 key购买 nike

我想为一些可能受离散分布支配的数据找到最大似然估计。但是在 scipy.stats 中,只有代表连续分布的类才有合适的函数来做到这一点。代表离散分布的类不代表的原因是什么?

最佳答案

简短的回答:因为据我所知,没有人为它编写代码,甚至没有人尝试过。

更长的答案:我不知道使用通用最大似然法的离散模型可以走多远,就像连续分布一样,它适用于许多但不是所有这些。

大多数离散分布对参数都有严格的限制,并且很可能大多数都需要特定于分布的拟合方法

>>> [(f, getattr(stats, f).shapes) for f in dir(stats) if isinstance(getattr(stats, f), stats.distributions.rv_discrete)]
[('bernoulli', 'pr'), ('binom', 'n, pr'), ('boltzmann', 'lamda, N'),
('dlaplace', 'a'), ('geom', 'pr'), ('hypergeom', 'M, n, N'),
('logser', 'pr'), ('nbinom', 'n, pr'), ('planck', 'lamda'),
('poisson', 'mu'), ('randint', 'min, max'), ('skellam', 'mu1,mu2'),
('zipf', 'a')]

statsmodels 提供了一些离散模型,其中参数也可以取决于一些解释变量。其中大多数,如广义线性模型,需要一个链接函数来将参数值限制在有效范围内,例如概率区间 (0, 1),或计数模型中参数大于零。

然后二项式中的“n”参数和其他一些参数必须是整数,这使得无法使用 scipy.optimize 中通常的连续最小化器。

一个好的解决方案是让某人添加特定于分布的拟合方法,这样我们至少可以使用更简单的方法。

关于python - 在 scipy.stats 中,rv_continuous 有一个 fit 方法来查找 MLE,但 rv_discrete 没有。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16451222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com