Vergleich von Ansätzen von MLE-Schätzungen einer Weibull-Verteilung


7

Ich muss eine Weibull-Verteilung auf einige Daten parametrisieren. Daher verwende ich die Maximum-Likelihood-Estimation (MLE) aus dem fitdistrplus-Paket in R. Ich wollte jedoch verstehen, was im Paket getan wird, und habe daher neben der Verwendung des Pakets zwei manuelle Lösungen ausprobiert, um die von angegebenen MLE-Schätzungen zu überprüfen Fitdist.

Zusammenfassend sind meine Ansätze:

(i) Verwenden Sie die Funktion fitdist mit der Methode "MLE".

(ii) Lösen Sie die partiellen Ableitungen der Wahrscheinlichkeitsfunktion

(iii) Minimieren Sie die negative Wahrscheinlichkeit mithilfe der Optimierungsfunktion

Simulieren Sie zunächst einige Daten:

n <- 1e4    
set.seed(1) 
dat <- rweibull(n, shape=0.8, scale=1.2)

Ansatz 1: Wenden Sie das fitdistrplus-Paket an:

library(fitdistrplus)
A1 <- fitdist(dat, "weibull", method="mle")$estimate
A1
    shape     scale 
0.7914886 1.2032989 

Ansatz 2:

Als Weibull-Dichte haben

,

Die partiellen Ableitungen sind:

Suchen Sie nach den Wurzeln der oben genannten partiellen Ableitungen:

weib1 <- function(c) { 1/c - sum(dat^c*log(dat))/sum(dat^c) + 1/n*sum(log(dat)) }
shape <- uniroot(weib1, c(0,10), tol=1e-12)$root  
scale <- (1/n*sum(dat^shape))^(1/shape)
A2    <- c(shape, scale)
A2
[1] 0.7914318 1.2033179

Ansatz 3: Suchen Sie nach den Parametern, die die negative Log-Wahrscheinlichkeit minimieren:

fobj <- function(params){
  -sum(log(dweibull(dat, params[1], params[2])))
}
A3 <- optim(c(0.5, 1), fobj)$par
A3
[1] 0.7913756 1.2032748

Beim Vergleich der Ansätze unterscheiden sich die Parameterschätzungen (A1, A2, A3) in der vierten Dezimalstelle. In Anbetracht der Fitdist-Dokumentation hätte ich erwartet, dass A1 und A3 die gleichen Schätzungen liefern, da beide optim verwenden.

Daher sind meine Fragen:

Welche Zielfunktion wird von fitdist verwendet und wie kann ich Ansatz 3 ändern, um genau die gleichen Schätzungen wie fitdist zu erhalten? Und was wäre im Allgemeinen der bevorzugte Ansatz? Ich gehe davon aus, dass das Lösen der partiellen Ableitungen der sauberste Ansatz ist.

Antworten:


1

Die Schätzung der Weibull-Parameter erfolgt typischerweise mit gradientenabstiegsbezogenen Algorithmen. Soweit ich weiß, implementieren die meisten Pakete dies, indem sie eine Standortskalentransformation durchführen und dann die Prozedur mit der resultierenden Gumbel-Protokollwahrscheinlichkeit ausführen.

Überprüfen Sie verwandte

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.