我有一些我适合使用scipy.stats的gamma分布 . 我能够提取形状,位置和比例参数,它们看起来与我期望的数据范围合理 .
我的问题是:有没有办法在参数中得到错误?类似于curve_fit的输出 . 注意:我不直接使用曲线拟合,因为它不能正常工作,并且大多数时间都无法计算伽马分布的参数 . 另一方面,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?
提前致谢
1 回答
edit 警告:以下说明了问题中示例后面
GenericLikelihoodModel
的用法 . 然而,在伽马分布的情况下,位置参数改变了分布的支持,该支持被最大似然估计的一般假设排除 . 更标准的用法将修复支持,floc = 0,因此它只是一个双参数分布 . 在这种情况下,标准MLE理论适用 .Statsmodels有一个用于最大似然估计的通用类,
GenericLikelihoodModel
. 它不是直接针对这种情况设计的,但可以在一些帮助下使用(定义属性并提供start_params) .这将打印以下内容
然后,基于最大似然估计的其他结果也是可用的,例如,可以通过指定限制矩阵或通过使用具有相等性的字符串表达式来执行第一参数为10的z测试: