Ich versuche, eine weibliche Verteilung darauf anzupassen, habe aber Probleme. Nicht sicher warum. Was verursacht die NaNs?
temp <- dput(temp)
c(477.25, 2615.56, 1279.98, 581.57, 13.55, 80.4, 6640.22, 759.46,
1142.33, 134, 1232.23, 389.81, 7811.65, 992.11, 1152.4, 3139.01,
2636.78, 3294.75, 2266.95, 32.12, 7356.84, 1448.54, 3606.82,
465.39, 950.5, 3721.49, 522.01, 1548.62, 2196.3, 256.8, 2959.72,
214.4, 134, 2307.79, 2112.74)
fitdist(temp, distr = "weibull", method = "mle")
Fitting of the distribution ' weibull ' by maximum likelihood
Parameters:
estimate Std. Error
shape 0.8949019 0.1205351
scale 1803.8816283 357.9042207
Warning messages:
1: In dweibull(c(477.25, 2615.56, 1279.98, 581.57, 13.55, 80.4, 6640.22, :
NaNs produced
2: In dweibull(c(477.25, 2615.56, 1279.98, 581.57, 13.55, 80.4, 6640.22, :
NaNs produced
3: In dweibull(c(477.25, 2615.56, 1279.98, 581.57, 13.55, 80.4, 6640.22, :
NaNs produced
4: In dweibull(c(477.25, 2615.56, 1279.98, 581.57, 13.55, 80.4, 6640.22, :
NaNs produced
5: In dweibull(c(477.25, 2615.56, 1279.98, 581.57, 13.55, 80.4, 6640.22, :
NaNs produced
6: In dweibull(c(477.25, 2615.56, 1279.98, 581.57, 13.55, 80.4, 6640.22, :
NaNs produced
7: In dweibull(c(477.25, 2615.56, 1279.98, 581.57, 13.55, 80.4, 6640.22, :
NaNs produced
8: In dweibull(c(477.25, 2615.56, 1279.98, 581.57, 13.55, 80.4, 6640.22, :
NaNs produced
9: In dweibull(c(477.25, 2615.56, 1279.98, 581.57, 13.55, 80.4, 6640.22, :
NaNs produced
10: In dweibull(c(477.25, 2615.56, 1279.98, 581.57, 13.55, 80.4, 6640.22, :
NaNs produced
fitdist(temp, distr = "weibull", method = "mle", lower = c(0, 0))
keine Fehler erzeugt. Andernfalls werdenoptim
negative Werte versucht, die wiederum den Fehler erzeugen.fitdist
? Ich sehefitdistr
inMASS
. CRAN kann bei der Paketbewertung ziemlich lasch sein.Antworten:
Die Weibull-Verteilung hat zwei Parameter, die Skala und die Form (ich folge der Notation von Wikipedia). Beide Parameter sind positive reelle Zahlen.λ k
Die Funktion
fitdist
aus demfitdistrplus
Paket verwendet dieoptim
Funktion, um die Schätzungen der maximalen Wahrscheinlichkeit der Parameter zu ermitteln. Standardmäßig werdenoptim
den Parametern keine Einschränkungen auferlegt und auch negative Zahlen ausprobiert. Negative Werte für die Skala oder Form ergeben jedochNaNs
für die Weibull-Verteilung. Mit den Optionenlower
undupper
können Sie dem Parametersuchbereich für Grenzen setzenoptim
.Die Gammaverteilung hat auch zwei Parameter und wie bei der Weibull-Verteilung sind beide positiv. Daher können die gleichen Grenzwerte
lower = c(0, 0)
für die Gammaverteilung verwendet werden.Bearbeiten
Hier ist ein kleiner Vergleich der Weibull- und Gamma-Anpassung für die veröffentlichten Daten. Die Fehler für die Gammaverteilung entstehen durch schlechte Startwerte. Ich stelle sie manuell zur Verfügung und dann funktioniert es einwandfrei ohne Fehler.
Zeichnen Sie die Passform für den Weibull:
Und für die Gammaverteilung:
Sie sind praktisch nicht zu unterscheiden. Die AICs sind für beide Passungen praktisch gleich:
quelle
fitdist(temp, distr = "gamma", method = "mle", lower = c(0,0))
verursacht ein"Error in fitdist(splitData[[1]], distr = "gamma", method = "mle", lower = c(0, : the function mle failed to estimate the parameters, with the error code 100
Allerdings, wenn ich es einstellec(0,1)
, funktioniert es aber gut.