在scipy.stats公司rv_-continuous有一个寻找MLEs的拟合方法,但rv_离散没有。为什么?

2024-10-06 12:41:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想找到一些数据的最大似然估计量,这些数据可能是由离散分布控制的。但是在scipy.stats公司只有表示连续分布的类才有一个拟合函数。代表离散分布的类没有这样做的原因是什么?在


Tags: 数据函数stats公司原因代表scipy估计量
1条回答
网友
1楼 · 发布于 2024-10-06 12:41:18

简而言之:因为据我所知,没有人为它编写代码,甚至没有尝试过。在

更详细的回答是:我不知道用一般的最大似然法来处理离散模型能走多远,因为连续分布适用于许多但不是所有的分布。在

大多数离散分布对参数有很强的限制,大多数离散分布很可能需要一种特定于分布的拟合方法

>>> [(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公司. 在

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

相关问题 更多 >