Wie passe ich die Parameter einer t-Verteilung an, dh die Parameter, die dem Mittelwert und der Standardabweichung einer Normalverteilung entsprechen? Ich nehme an, sie heißen 'Mittelwert' und 'Skalierung / Freiheitsgrade' für eine t-Verteilung.
Der folgende Code führt häufig zu Fehlern bei der Optimierung.
library(MASS)
fitdistr(x, "t")
Muss ich x zuerst skalieren oder in Wahrscheinlichkeiten konvertieren? Wie geht das am besten?
r
distributions
maximum-likelihood
fitting
robust
user12719
quelle
quelle
Antworten:
fitdistr
Verwendet Maximum-Likelihood- und Optimierungstechniken, um Parameter einer bestimmten Verteilung zu finden. Manchmal, besonders für T-Distribution, wie @ user12719 bemerkte, die Optimierung in der Form:schlägt mit einem Fehler fehl.
In diesem Fall sollten Sie dem Optimierer eine Hand geben, indem Sie den Startpunkt und die Untergrenze angeben, um mit der Suche nach optimalen Parametern zu beginnen:
Beachten Sie,
df=3
ist Ihre beste Vermutung, was ein "Optimum" seindf
könnte. Nachdem Sie diese zusätzlichen Informationen eingegeben haben, ist Ihr Fehler behoben.Einige Auszüge zum besseren Verständnis der inneren Mechanik von
fitdistr
:...
quelle
Lassen Sie uns einige Simulationen versuchen:
Das Anzeigen der Schätzung ist sehr instabil (im Histogramm befindet sich ein beträchtlicher Teil der geschätzten Werte an der Obergrenze für die Optimierung von 200).
Wiederholen mit einer größeren Stichprobe:
Das ist viel besser, aber der Mittelwert liegt immer noch weit über dem wahren Wert von 2,5.
Denken Sie dann daran, dass dies eine vereinfachte Version des eigentlichen Problems ist, bei dem auch Standort- und Skalenparameter geschätzt werden müssen.
quelle
In der Hilfe für fitdistr ist dieses Beispiel:
Zeigt an, dass Sie nur einen Wert für df benötigen. Das setzt aber eine Standardisierung voraus.
Für mehr Kontrolle zeigen sie auch
wobei die Parameter m = Mittelwert sein würden, s = Standardabweichung, df = Freiheitsgrade
quelle
\mu
und\sigma
als gut. +1 übrigens vor langer Zeit.df
die Ursache für den Fehler, und die richtige Antwort sollte ein Rezept liefern, um ihn zu finden.df=9
in ihrem Beispiel gut und irrelevant ist.