R(ExtDist)中的威布尔分布



有没有人在使用 ExtDist 软件包的 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)

但是,当我运行它时,我得到以下输出:

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

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

在我看来,这是软件包中的一个错误。 我做了我自己的独立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 (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(...)...... ?? 看看威布尔代码的其余部分,这个错误似乎重复了——也许这只是一个草率的剪切和粘贴? 我肯定会联系维护者(maintainer("ExtDist")(。

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

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(指着他们。

易威牛电流输出:

# 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 的电流输出:

# 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 

最新更新