Hi kann das gleiche gezeigt werden, um Form- und Skalierungsparameter für die modifizierte Maximum-Likelihood-Methode zu erhalten
19
Hi kann das gleiche gezeigt werden, um Form- und Skalierungsparameter für die modifizierte Maximum-Likelihood-Methode zu erhalten
fitdistr(mydata, densfun="weibull")
inR
die Parameter über MLE suchen. Verwenden Sie zum Erstellen eines Diagramms dieqqPlot
Funktion aus demcar
Paket:qqPlot(mydata, distribution="weibull", shape=, scale=)
mit den Form- und Skalierungsparametern, die Sie gefunden habenfitdistr
.R
der frei verfügbaren können Sie das Paket installieren und ladenMASS
undfitdistr
mit Ihren Daten die Schätzungen von k und c berechnen. Und dann können Sie Ihre Daten mit dem Weibull mit den geschätzten ParameternqqPlot
aus demcar
Paket vergleichen.MASS
undcar
durch Eingabe:install.packages(c("MASS", "car"))
. Laden Sie die Pakete, indem Sie Folgendes eingeben:library(MASS)
undlibrary(car)
. 3. Importieren Sie Ihre Daten inR
, vorzugsweise mit einer .txt-Datei. 4. Wenn Sie Ihre Daten genannt wirdmy.data
Verwendungfitdistr
in folgenden Weise:fitdistr(my.data, distribution="weibull")
. 5. Zeichnen Sie ein Diagramm, wie ich es im ersten Kommentar mit beschrieben habeqqPlot
.Antworten:
Da in den Kommentaren von @zaynah angegeben ist, dass die Daten vermutlich einer Weibull-Verteilung folgen, werde ich ein kurzes Tutorial zur Schätzung der Parameter einer solchen Verteilung mithilfe von MLE (Maximum Likelihood Estimation) geben. Es gibt einen ähnlichen Beitrag über Windgeschwindigkeiten und Weibull-Verteilung auf der Website.
R
, es ist kostenlosMASS
undcar
durch Eingabe:install.packages(c("MASS", "car"))
. Laden Sie sie durch Eingabe von:library(MASS)
undlibrary(car)
.R
. Wenn Sie Ihre Daten beispielsweise in Excel haben, speichern Sie sie als durch Trennzeichen getrennte Textdatei (TXT) und importieren Sie sieR
mitread.table
.fitdistr
die Maximum - Likelihood - Schätzungen Ihrer Weibull - Verteilung zu berechnen:fitdistr(my.data, densfun="weibull", lower = 0)
. Ein ausführliches Beispiel finden Sie unter dem Link am Ende der Antwort.qqPlot(my.data, distribution="weibull", shape=, scale=)
Das Tutorial von Vito Ricci über das Anpassen der Distribution mit
R
ist ein guter Ausgangspunkt in dieser Angelegenheit. Und es gibt zahlreiche Beiträge auf dieser Seite zu diesem Thema (siehe auch diesen Beitrag ).fitdistr
Schauen Sie sich diesen Beitrag an, um ein vollständig ausgearbeitetes Beispiel für die Verwendung zu sehen .Schauen wir uns ein Beispiel an
R
:Die maximalen Wahrscheinlichkeitsschätzungen liegen in der Nähe derjenigen, die wir bei der Erzeugung der Zufallszahlen willkürlich festgelegt haben. Vergleichen wir unsere Daten mit einem QQ-Plot mit einer hypothetischen Weibull-Verteilung mit den Parametern, mit denen wir geschätzt haben
fitdistr
:Die Punkte sind gut auf der Linie ausgerichtet und liegen größtenteils innerhalb des 95% -Vertrauensbereichs. Wir würden daraus schließen, dass unsere Daten mit einer Weibull-Distribution kompatibel sind. Dies wurde natürlich erwartet, da wir unsere Werte aus einer Weibull-Verteilung abgetastet haben.
Abschätzung von (Form) und c (Skala) einer Weibull-Verteilung ohne MLEk c
In diesem Artikel werden fünf Methoden zur Schätzung der Parameter einer Weibull-Verteilung für Windgeschwindigkeiten aufgeführt. Ich erkläre hier drei davon.
Mittelwert und Standardabweichung
Die kleinsten Quadrate passen zur beobachteten Verteilung
Median und Quartil Windgeschwindigkeiten
Vergleich der vier Methoden
Hier ist ein Beispiel für den
R
Vergleich der vier Methoden:Alle Methoden führen zu sehr ähnlichen Ergebnissen. Der Maximum-Likelihood-Ansatz hat den Vorteil, dass die Standardfehler der Weibull-Parameter direkt angegeben werden.
Verwenden von Bootstrap, um der PDF- oder CDF-Datei punktweise Konfidenzintervalle hinzuzufügen
Wir können einen nicht-parametrischen Bootstrap verwenden, um punktweise Konfidenzintervalle um die PDF- und CDF-Datei der geschätzten Weibull-Verteilung zu erstellen. Hier ist ein
R
Skript:quelle
distribution=weibull
aus dem Autopaket zu verwenden , das über MLE zu den Parametern passt und das qq-Diagramm in einem Schritt erstellt.car
die MLE-Parameter automatisch berechnet. Wenn ich eine Zufallsvariable mit einer Weibull-Distribution (rweibull
) generiere und den Befehl verwende,qqPlot(rw, distribution="weibull")
erhalte ich eine Fehlermeldung, die besagt, dass die Parametershape
undscale
to angegeben werden müssenqqPlot
. Vermisse ich etwas?