我一直在使用Matlab使用paramhat,paramci = wblfit( data,alpha)将数据拟合为威布尔分布。这给出了威布尔分布的形状和尺度参数,以及每个值的置信区间。
我正在尝试使用Scipy来完成合理的任务,并且可以使用scipy.stats.weibull_min.fit轻松地获得参数,但是我想不出一种方法来获得vlauee上的置信区间。Scipy提供此功能吗?或者我需要自己编写MLE置信区间估计?
发布于 2021-10-28 09:42:54
您可以使用MLE python包来获得surpyval的逆赫斯矩阵(协方差)。
import surpyval as surv
x = [1, 4, 5, 7, 8, 10]
model = surv.Weibull.fit(x)
model.hess_invarray([[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)发布于 2019-01-10 23:03:43
您可以使用scipy.optimize.curve_fit将威布尔分布拟合到您的数据中。这也会给你协方差,因此你可以估计拟合参数的误差。
https://stackoverflow.com/questions/54130419
复制相似问题