【问题标题】:Python counter part of wblinv in matlabmatlab中wblinv的Python计数器部分
【发布时间】:2018-11-26 02:31:26
【问题描述】:

我正在尝试将 matlab 代码转换为 python 代码。 我陷入的是逆威布尔函数部分。 所以,matlab代码如下:

p = 0.9978
scale_param = 3.5666
shape_param = 0.4936
wblinv(p, scale_param, shape_param)

wblinv 给出对应于 cdf 的分位数 p 的值,上面的结果给出 139.9775。

我搜了一下发现scipy提供了weibull分布函数。 我猜 scipy.stats.invweibull.cdf 函数会做同样的操作。但结果却大不相同。

from scipy import stats
p = 0.9978
scale_param = 3.5666
shape_param = 0.4936
stats.invweibull.cdf(p, shape_param, scale=scale_param)

它给出了abt。 0.153312

任何建议都会有所帮助。

【问题讨论】:

    标签: python scipy weibull


    【解决方案1】:

    Matlab 函数wblinv 计算Weibull distribution 的逆累积分布函数。您想要的 scipy 中对应的分布是scipy.stats.weibull_min,计算 CDF 的逆函数(也称为 百分比点函数quantile function)的方法是 scipy.stats.weibull_min.ppf。分布scipy.stats.invweibull 是一个不同的概率分布。

    例如,

    In [10]: from scipy import stats
    
    In [11]: p = 0.9978
    
    In [12]: scale_param = 3.5666
    
    In [13]: shape_param = 0.4936
    
    In [14]: stats.weibull_min.ppf(p, shape_param, scale=scale_param)
    Out[14]: 139.97751836430132
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2015-07-27
      • 2019-02-20
      • 1970-01-01
      相关资源
      最近更新 更多