Automatycznie określ rozkład prawdopodobieństwa na podstawie zestawu danych


12

Podany zestaw danych:

x <- c(4.9958942,5.9730174,9.8642732,11.5609671,10.1178216,6.6279774,9.2441754,9.9419299,13.4710469,6.0601435,8.2095239,7.9456672,12.7039825,7.4197810,9.5928275,8.2267352,2.8314614,11.5653497,6.0828073,11.3926117,10.5403929,14.9751607,11.7647580,8.2867261,10.0291522,7.7132033,6.3337642,14.6066222,11.3436587,11.2717791,10.8818323,8.0320657,6.7354041,9.1871676,13.4381778,7.4353197,8.9210043,10.2010750,11.9442048,11.0081195,4.3369520,13.2562675,15.9945674,8.7528248,14.4948086,14.3577443,6.7438382,9.1434984,15.4599419,13.1424011,7.0481925,7.4823108,10.5743730,6.4166006,11.8225244,8.9388744,10.3698150,10.3965596,13.5226492,16.0069239,6.1139247,11.0838351,9.1659242,7.9896031,10.7282936,14.2666492,13.6478802,10.6248561,15.3834373,11.5096033,14.5806570,10.7648690,5.3407430,7.7535042,7.1942866,9.8867927,12.7413156,10.8127809,8.1726772,8.3965665)

.. Chciałbym określić najbardziej odpowiedni rozkład prawdopodobieństwa (gamma, beta, normalny, wykładniczy, Poissona, chi-kwadrat itp.) Z oszacowaniem parametrów. Jestem już świadomy pytania pod następującym linkiem, w którym rozwiązanie jest dostarczane za pomocą R: /programming/2661402/given-a-set-of-random-numbers-drawn-from-a- ciągła-jednoczynnikowa-dystrybucja-f najlepiej zaproponowane rozwiązanie jest następujące:

> library(MASS)
> fitdistr(x, 't')$loglik                                                              #$
> fitdistr(x, 'normal')$loglik                                                         #$
> fitdistr(x, 'logistic')$loglik                                                       #$
> fitdistr(x, 'weibull')$loglik                                                        #$
> fitdistr(x, 'gamma')$loglik                                                          #$
> fitdistr(x, 'lognormal')$loglik                                                      #$
> fitdistr(x, 'exponential')$loglik                                                    #$

Wybrano rozkład o najmniejszej wartości loglik. Jednak inne dystrakcje, takie jak dystrybucja beta, wymagają specyfikacji niektórych parametrów dodatkowych w funkcji fitdistr ():

   fitdistr(x, 'beta', list(shape1 = some value, shape2= some value)).

Biorąc pod uwagę, że próbuję ustalić najlepszy rozkład bez żadnych wcześniejszych informacji, nie wiem, jaka może być wartość parametrów dla każdej dystrybucji. Czy istnieje inne rozwiązanie, które uwzględnia ten wymóg? to nie musi być w R.

Odpowiedzi:


18

Co robisz z nieskończonością dystrybucji, których nie ma na liście?

Co robisz, gdy żadna z osób na liście nie pasuje odpowiednio? np. jeśli twoja dystrybucja jest silnie dwumodalna

Jak sobie poradzisz z faktem, że wykładniczy jest tylko specjalnym przypadkiem gamma, i jako taki, gamma musi zawsze lepiej pasować do dowolnego zestawu danych, ponieważ ma dodatkowy parametr, a zatem musi mieć większe prawdopodobieństwo ?

Jak sobie radzisz z faktem, że prawdopodobieństwo jest zdefiniowane tylko do stałej multiplikatywnej i że prawdopodobieństwo dla różnych rozkładów może nie być automatycznie porównywalne, chyba że jest konsekwentnie zdefiniowane?

Nie chodzi o to, że są one nierozpuszczalne, ale robienie tego w rozsądny sposób nie jest łatwe; z pewnością potrzeba więcej przemyślenia niż tylko rozwiązywanie wszystkiego poprzez obliczenie MLE i porównanie prawdopodobieństw.


3
Dbam tylko o dystrybucje na liście, a jeśli żadna z nich nie będzie pasować, zajmę się tym problemem w następnej kolejności. ale na razie osiągnięcie tego punktu jest dla mnie wystarczające. Jeśli chodzi o ostatnie pytanie dotyczące rozkładu gamma, tak, może ono lepiej pasować do jakiegoś parametru, moje pytanie dotyczy właśnie tego, czy istnieje algorytm, który pozwala mi na przeglądanie różnych wartości parametrów dla różnych rozkładów na liście? i zwrócić najbardziej odpowiedni rozkład z odpowiednimi parametrami?

1
Cóż, tak i nie. Możesz wymyślić „liczbę zasług”, aby obliczyć, który zestaw parametrów zapewnia najlepsze dopasowanie, i napisać pętlę „wznoszenia”, aby zoptymalizować wartość liczby zasług. Jednym z przykładów FOM jest wartość R dla dopasowań regresji.
Carl Witthoft

subskrybuję to +1.

4
@shachem Nie trafiłeś w sedno o gamma. Rozkłady z dodatkowymi parametrami zawsze będą miały większe prawdopodobieństwo, nawet jeśli dane pochodzą z rozkładu o mniejszej liczbie parametrów . Musisz to rozważyć. Niektóre miary dopasowania dostosowują się do tego efektu. Szczerze mówiąc, myślę, że to, co próbujesz zrobić, to prawdopodobnie „odpowiedzieć na złe pytanie”, podobnie jak pytanie „jak dowiedzieć się, który z tych młotów jest najlepszy do
wbijania

1
Jeśli „prawdopodobieństwo jest zdefiniowane tylko do stałej multiplikatywnej”, Glen, to jak można zrozumieć swoje stwierdzenie, że „rozkłady z dodatkowymi parametrami zawsze będą miały większe prawdopodobieństwo”? Rzeczywiście, jak można porównać tak źle zdefiniowane prawdopodobieństwa? Podejrzewam, że jakiś kluczowy pomysł został
nieopublikowany

3

Znalazłem funkcję, która odpowiada na moje pytanie za pomocą Matlaba. Można go znaleźć pod tym linkiem: http://www.mathworks.com/matlabcentral/fileexchange/34943

Jako dane wejściowe biorę wektor danych

   allfitdist(data)

i zwraca następujące informacje w celu uzyskania najlepszego dopasowania dystrybucji:

   DistName- the name of the distribution
   NLogL - Negative of the log likelihood
   BIC - Bayesian information criterion (default)
   AIC - Akaike information criterion
   AICc - AIC with a correction for finite sample sizes 
   ParamNames
   ParamDescription
   Params
   etc.

1
OK, teraz wszystko, co musisz zrobić, to przenieść plik m do pliku R. :-)
Carl Witthoft,

Nawet nie! Jak już wspomniałem, nie musi to być plik R, więc funkcja matlab całkowicie rozwiązuje mój problem :-)

AIC, BIC, AICc itp. Mogą być jednym ze sposobów decydowania, ale to, czy ma to sens, zależy od tego, co próbujesz zrobić. Na przykład, co robisz, jeśli jedna dystrybucja jest naprawdę podobna do innych pod względem log L? Jeśli starasz się przewidzieć, zwykle ignorowanie modeli zbliżonych do twojego kryterium nie powinno być po prostu odrzucane. Np. Uśrednianie modeli jest jednym ze sposobów ich uwzględnienia.
Björn,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.