繁体   English   中英

R 中的威布尔分布 (ExtDist)

[英]The Weibull distribution in R (ExtDist)

有人对使用ExtDist Package的 Weibull 分布有问题吗?

文档中:

具有未知形状参数的分布的参数估计示例来自:Rinne (2009) 数据集 p.338 和示例 pp.418-419 参数估计的形状为 99.2079,比例为 2.5957。 此数据和 Rinne 的参数估计值的对数似然为 -1163.278。

data <- c(35,38,42,56,58,61,63,76,81,83,86,90,99,104,113,114,117,119,141,183)
est.par <- eWeibull(X=data, method="numerical.MLE"); est.par
plot(est.par)

然而,当我运行它时,我得到以下 output:

Parameters for the Weibull distribution.
(found using the  numerical.MLE method.)

 Parameter  Type   Estimate       S.E.
     shape shape 5.82976007 1.79326460
     scale scale 0.06628166 0.02129258

这显然是错误的,但我不确定我是否犯了错误,或者 package 中是否存在错误?

在我看来,这是 package 中的一个错误。我做了自己的独立 MLE,并得到了与 Rinne 相同的答案:

library(bbmle)
m1 <- mle2(y~dweibull(shape=exp(lshape),scale=exp(lscale)),
     data=data.frame(y=data),
     start=list(lshape=0,lscale=0))

然后我深入研究并查看了dWeibull function 的来源:

function (x, shape = 2, scale = 2, params = list(shape = 2, scale = 2)) 
{
    if (!missing(params)) {
        shape <- params$shape
        scale <- params$scale
    }
    out = stats::dgamma(x, shape, scale)
    return(out)
}

似乎应该将out设置为dweibull(...)的结果而不是dgamma(...) ... ?? 查看weibull代码的rest,这个错误似乎重复出现——也许这只是草率的剪切和粘贴? 我肯定会联系维护者 ( maintainer("ExtDist") )。

附言。 如果我使用替代方法拟合 Gamma 分布,我会得到与ExtDist package 完全相同的答案:

m1g <- mle2(y~dgamma(shape=exp(lshape),rate=exp(lrate)),
     data=data.frame(y=data),
     start=list(lshape=0,lrate=0))
exp(coef(m1g))
##     lshape      lrate 
## 5.82976007 0.06628166 

错误影响了 eGamma 和 eWeibull 的代码,但现在已修复(v0.7-1,2023 年 1 月 17 日)。 感谢 Robert Dodier 指点他们。

当前微博output:

# Parameter Estimation for a distribution with unknown shape parameters
# Example from: Rinne (2009) Dataset p.338 and example pp.418-419
# Parameter estimates are given as shape = 2.5957 and scale = 99.2079.
data <- c(35,38,42,56,58,61,63,76,81,83,86,90,99,104,113,114,117,119,141,183)
est.par <- eWeibull(X=data, method="numerical.MLE"); est.par

Parameters for the Weibull distribution. 
(found using the  numerical.MLE method.)

Parameter  Type Estimate      S.E.
    shape shape  2.59566 0.4366932
    scale scale 99.20792 9.0404336

# consistent with EnvStats estimates
EnvStats::eweibull(data)$parameters
    shape     scale 
 2.595663 99.207982 

eGamma当前output:

# Parameter estimation for a distribution with unknown shape parameters
# Example from:  Bury(1999) pp.225-226, parameter estimates as given by Bury are
# shape = 6.40 and scale=2.54.
data <- c(16, 11.6, 19.9, 18.6, 18, 13.1, 29.1, 10.3, 12.2, 15.6, 12.7, 13.1,
          19.2, 19.5, 23, 6.7, 7.1, 14.3, 20.6, 25.6, 8.2, 34.4, 16.1, 10.2, 12.3)
est.par <- eGamma(data, method="numerical.MLE"); est.par

Parameters for the Gamma distribution. 
(found using the  numerical.MLE method.)

Parameter  Type Estimate      S.E.
    shape shape 6.404003 1.7661637
    scale scale 2.544659 0.7300405

# consistent with EnvStats estimates
EnvStats::egamma(data)$parameters
    shape    scale 
 6.404041 2.544643 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM