Jak dopasować parametry rozkładu t, tj. Parametry odpowiadające „średniej” i „odchyleniu standardowemu” rozkładu normalnego. Zakładam, że są one nazywane „średnimi” i „skalowaniem / stopniami swobody” dla rozkładu t?
Poniższy kod często powoduje błędy „nieudana optymalizacja”.
library(MASS)
fitdistr(x, "t")
Czy najpierw muszę skalować x, czy przeliczać na prawdopodobieństwa? Jak najlepiej to zrobić?
r
distributions
maximum-likelihood
fitting
robust
użytkownik12719
źródło
źródło
Odpowiedzi:
fitdistr
wykorzystuje techniki największego prawdopodobieństwa i optymalizacji w celu znalezienia parametrów danej dystrybucji. Czasami, szczególnie dla t-dystrybucji, jak zauważył @ user12719, optymalizacja w postaci:kończy się błędem.
W takim przypadku powinieneś pomóc optymalizatorowi, podając punkt początkowy i dolną granicę, aby rozpocząć wyszukiwanie optymalnych parametrów:
Uwaga:
df=3
najlepiej zgadnąć, codf
może być „optymalne” . Po podaniu tych dodatkowych informacji Twój błąd zniknie.Kilka fragmentów, które pomogą Ci lepiej zrozumieć wewnętrzną mechanikę
fitdistr
:...
źródło
Wypróbujmy niektóre symulacje:
Wyświetlanie oszacowania jest bardzo niestabilne (patrząc na histogram, znaczna część oszacowanych wartości znajduje się w górnej granicy podanej w celu optymalizacji 200).
Powtarzanie z większą próbką:
co jest znacznie lepsze, ale średnia wciąż znacznie przewyższa prawdziwą wartość 2,5.
Pamiętaj, że jest to uproszczona wersja prawdziwego problemu, w którym należy również oszacować parametry lokalizacji i skali.
źródło
W pomocy dla fitdistr znajduje się ten przykład:
wskazując, że potrzebujesz tylko wartości df. Ale to zakłada standaryzację.
Dla większej kontroli pokazują również
gdzie parametrami byłoby m = średnia, s = odchylenie standardowe, df = stopnie swobody
źródło
\mu
i\sigma
jak dobrze. Nawiasem mówiąc, dawno +1.df
jest przyczyną błędu, a właściwa odpowiedź powinna dostarczyć przepis na jego znalezienie.df=9
jest dobry w ich przykładzie i nie ma znaczenia tutaj.