簡體   English   中英

R中的Weibull MLE

[英]Weibull MLE in R

對數似然函數如下所示 我在R中為此寫了一個函數,此返回負數是對數似然的一倍。 我生成了一個帶有rWeibull的向量,其參數shape = 1.5,scale = 0.5。 但是,當我用對數似然函數調用nlm函數時,參數的估計值為:2.124180和4.003675。 我的R代碼有什么問題? 編碼:

vec<-rWeibull(n=1000, params=list(shape=1.5, scale=0.5))
weibull_loglik<-function(parm){
n<-length(vec)
gamma<-parm[1]
lambda<-parm[2]
loglik<-n*log(gamma/lambda)+(gamma-1)*sum(vec-log((lambda^(gamma-1))))-sum((vec/lambda)^gamma)
return(-loglik)}
weibull<-nlm(weibull_loglik,parm<-c(1,1), hessian=TRUE)
weibull$estimate

您的對數可能性不正確。 當我使用dweibull(..., log=TRUE)時,我得到正確的估計:

vec <- rweibull(n=1000, shape=1.5, scale=0.5)
weibull_loglik <- function(parm){
  n <- length(vec)
  gamma <- parm[1]
  lambda <- parm[2]
  loglik <- sum(dweibull(vec, shape=gamma, scale=lambda, log=TRUE))
  return(-loglik)
}
weibull <- nlm(weibull_loglik, p = c(1,1), hessian=TRUE)

> weibull$estimate
[1] 1.5547181 0.5116119

我認為應該是:

loglik<-n*log(gamma/lambda)+(gamma-1)*sum(vec)-log((lambda^(gamma-1)))-
sum((vec/lambda)^gamma)

因為您不總結LogLik函數的第三部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM