有没有人使用ExtDist Package对威布尔发行版有疑问?
具有未知形状参数的分布的参数估计 示例来自:Rinne(2009)Dataset p.338和示例pp.418-419 参数估计值为shape = 99.2079,scale = 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
这显然是错误的,但我不确定我是否犯了错误或包装中是否有错误?
答案 0 :(得分:1)
在我看来,这是包中的一个错误。我做了自己独立的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(...)
... ??看看weibull代码的其余部分,这个错误似乎重复了 - 也许这只是一个草率的剪切和粘贴?我肯定会联系维护者(maintainer("ExtDist")
)。
PS。如果我使用替代方法拟合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