【问题标题】:Scipy Weibull parameter confidence intervalsScipy Weibull 参数置信区间
【发布时间】:2019-06-05 10:12:25
【问题描述】:

我一直在使用 Matlab 使用 [paramhat, paramci] = wblfit(data, alpha) 将数据拟合到 Weibull 分布。这给出了 Weibull 分布的形状和尺度参数以及每个值的置信区间。

我正在尝试使用 Scipy 来完成理智的任务,并且可以使用 scipy.stats.weibull_min.fit 轻松获取参数,但我无法找到获取 vlauee 置信区间的方法。 Scipy 是否提供此功能?还是我需要自己编写 MLE 置信区间估计?

【问题讨论】:

    标签: python scipy weibull


    【解决方案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 将威布尔分布拟合到您的数据中。这也将为您提供协方差,因此您可以估计拟合参数的误差。

      【讨论】:

        猜你喜欢
        • 2015-07-27
        • 2019-12-26
        • 2021-07-06
        • 2015-02-10
        • 2015-03-30
        • 2013-07-03
        • 2019-02-28
        • 2019-11-01
        • 1970-01-01
        相关资源
        最近更新 更多