我有一些,我用scipy.stats拟合伽马分布。我能够提取形状、位置和比例参数,它们看起来与我期望的数据范围是合理的。
我的问题是:有没有办法同时得到参数中的错误?类似于曲线拟合的输出。注意:我不直接使用曲线拟合,因为它不能正常工作,而且大多数时间无法计算伽马分布的参数。另一方面,scipy.stats.gamma.fit工作正常。
这是我正在做的事情的一个例子(不是我的实际数据)。
from scipy.stats import gamma
shape = 12; loc = 0.71; scale = 0.0166
data = gamma.rvs(shape, loc=loc, scale=scale, size=1000)
params = gamma.fit(data) # params close to but not the same as (shape, loc, scale)
# HOW TO ESTIMATE/GET ERRORS FOR EACH PARAM?
提前谢谢
编辑警告:以下说明了在问题示例之后使用GenericLikelihoodModel。然而,在伽马分布的情况下,位置参数改变了分布的支持,这被最大似然估计的一般假设所排除。更标准的用法是固定支持,floc=0,所以它只是一个双参数分布。在这种情况下,标准MLE理论适用。
StatsModels有一个用于最大似然估计的通用类,GenericLikelihoodModel。它不是为这种情况直接设计的,但是可以与一些帮助一起使用(定义属性并提供start_参数)。
import numpy as np
from statsmodels.base.model import GenericLikelihoodModel
from scipy.stats import gamma
shape = 12; loc = 0.71; scale = 0.0166
data = gamma.rvs(shape, loc=loc, scale=scale, size=1000)
params = gamma.fit(data) # params close to but not the same as (shape, loc, scale)
# HOW TO ESTIMATE/GET ERRORS FOR EACH PARAM?
print(params)
print('
')
class Gamma(GenericLikelihoodMo