Scipy Weibull 参数置信区间
Posted
技术标签:
【中文标题】Scipy Weibull 参数置信区间【英文标题】:Scipy Weibull parameter confidence intervals 【发布时间】:2019-06-05 10:12:25 【问题描述】:我一直在使用 Matlab 使用 [paramhat, paramci] = wblfit(data, alpha) 将数据拟合到 Weibull 分布。这给出了 Weibull 分布的形状和尺度参数以及每个值的置信区间。
我正在尝试使用 Scipy 来完成理智的任务,并且可以使用 scipy.stats.weibull_min.fit 轻松获取参数,但我无法找到获取 vlauee 置信区间的方法。 Scipy 是否提供此功能?还是我需要自己编写 MLE 置信区间估计?
【问题讨论】:
【参考方案1】:可以使用surpyvalpython包获取MLE的逆黑森矩阵(协方差)。
import surpyval as surv
x = [1, 4, 5, 7, 8, 10]
model = surv.Weibull.fit(x)
model.hess_inv
array([[1.87507778, 0.27362521],
[0.27362521, 0.5031063 ]])
然后您可以使用对角线来估计参数的置信范围:
from scipy.special import ndtri as z
import numpy as np
d = z(0.05) * np.sqrt(model.hess_inv[0, 0])
model.alpha + d, model.alpha - d
(4.283756480648752, 8.788467083439066)
【讨论】:
【参考方案2】:您可以使用scipy.optimize.curve_fit
将威布尔分布拟合到您的数据中。这也将为您提供协方差,因此您可以估计拟合参数的误差。
【讨论】:
以上是关于Scipy Weibull 参数置信区间的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python 获得 Weibull 分布的置信区间?