Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在scipy.stats中,rv_continuous有一种拟合方法来查找最大似然估计,但rv_discrete没有。为什么?_Python_Statistics_Scipy - Fatal编程技术网

Python 在scipy.stats中,rv_continuous有一种拟合方法来查找最大似然估计,但rv_discrete没有。为什么?

Python 在scipy.stats中,rv_continuous有一种拟合方法来查找最大似然估计,但rv_discrete没有。为什么?,python,statistics,scipy,Python,Statistics,Scipy,我想找到一些可能受离散分布控制的数据的最大似然估计。但是在scipy.stats中,只有表示连续分布的类才有适合的函数。代表离散分布的类不存在的原因是什么 简短回答:因为据我所知,没有人为它编写代码,甚至没有人尝试过 更详细的回答:我不知道用一般的最大似然法处理离散模型能走多远,因为它适用于连续分布,它适用于许多但不是所有的分布 大多数离散分布对参数有很强的限制,并且很可能大多数离散分布都需要特定于分布的拟合方法 >>> [(f, getattr(stats, f).shape

我想找到一些可能受离散分布控制的数据的最大似然估计。但是在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中常用的连续极小值


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

我明白了。谢谢你的回答。首先,如果我可以拒绝或不拒绝Zipf作为管理某些数据的候选分布,那么我的问题将向前推进,因此我可能不得不亲自尝试编写。有趣的是,Mathematica在能够找到离散分布的最大似然估计方面给人留下了很好的印象。但我相信M'matica函数往往有很多特殊情况硬编码到其中。Statsmodels有一个通用的最大似然类,在某些情况下可能有用,请看我的答案这里MLE可能适用于Zipf(我从未看过它)