Potrzebujesz pomocy w identyfikacji rozkładu według jego histogramu


13

Mam populację próbek zarejestrowanych maksimów amplitudy określonego sygnału. Populacja wynosi około 15 milionów próbek. Stworzyłem histogram populacji, ale nie mogę zgadnąć rozkładu z takim histogramem.

EDYCJA 1: Plik z surowymi przykładowymi wartościami jest tutaj: surowe dane

Czy ktoś może pomóc oszacować rozkład za pomocą następującego histogramu: wprowadź opis zdjęcia tutaj


1
nie ma to większego znaczenia, ale przy użyciu histogramów zwykle pomaga zachować częstotliwość względną zamiast bezwzględnej na osi y.
posdef

to znaczy podać 120000/15000000 = 0,008 zamiast 120000 na osi pionowej?
mbaitoff

@mbaitoff: Twoje komentarze do odpowiedzi schenectady wskazują, że jesteś mniej zainteresowany uzyskaniem nazwy dystrybucji, ale ustaleniem DLACZEGO wartości są dystrybuowane w ten sposób. Czy to jest poprawne ?
steffen

1
@mbaitoff, nie jestem pewien, czy pasowałoby to do twojej aplikacji, ale w powiązanych obszarach aplikacji wielkości fal, które przechodzą (wiele) losowych odbić między źródłem a odbiornikiem, są modelowane przez rozkład Rayleigha lub jedno z jego uogólnień, np. Rice lub Nakagami- rozkładu. m
kardynał

2
Rzeczywiste zainteresowanie tymi danymi leży w kilkunastu skokach: ilość danych jest wystarczająco duża, aby były prawdziwe , w tym sensie, że są dowodem rzeczywistych trybów lokalnych. Wydaje się, że istnieje tutaj bogaty zestaw danych z bogactwem informacji, które można by przeoczyć, gdyby prosty parametryczny wzór użyty do podsumowania ich rozkładu.
whuber

Odpowiedzi:


23

Użyj fitdistrplus:

Oto link CRAN do fitdistrplus.

Oto stary link winiety dla fitdistrplus.

Jeśli łącze winiety nie działa, wyszukaj „Użyj biblioteki fitdistrplus do określenia rozkładu z danych”.

Winieta dobrze wyjaśnia, jak korzystać z opakowania. Możesz sprawdzić, jak różne dystrybucje pasują w krótkim czasie. Tworzy również diagram Cullen / Frey.

#Example from the vignette
library(fitdistrplus)
x1 <- c(6.4, 13.3, 4.1, 1.3, 14.1, 10.6, 9.9, 9.6, 15.3, 22.1, 13.4, 13.2, 8.4, 6.3, 8.9, 5.2, 10.9, 14.4)
plotdist(x1)
descdist(x1)

f1g <- fitdist(x1, "gamma")
plot(f1g)
summary(f1g)      

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj


(+1): Nie znałem tego pakietu wcześniej.
steffen

1
(+1 (nie wiedział, że był nazywany schematem Cullen / Frey musiałem wymyślić tym siebie w jednym punkcie..
Glen_b -Reinstate Monica

drugi obraz jest z plotdistcomamnd? Jak mogę uzyskać diagram Cullen / Frey?
juanpablo

1
@juanpablo - Try descdist(). Zaktualizowałem powyższy post, aby zawierał trochę kodu i link do starej winiety. Nie mogłem dostać powyższego linku winiety do pracy. Tak więc Google: „Użycie biblioteki fitdistrplus do określenia rozkładu z danych”. Jest to plik .pdf.
bill_080

3
@juanpablo - Instrukcja f1g <- fitdist(x1, "gamma")dopasowuje rozkład gamma do oryginalnych danych x1i przechowuje je f1g. Lewy górny wykres plot(f1g)pokazuje histogram dla oryginalnych danych x1jako słupki i dopasowany wykres gęstości gamma f1gjako linię ciągłą. Wykres gęstości (linia ciągła) jest rysowany na histogramie jako wskaźnik tego, jak dobrze „dopasowanie” reprezentuje dane.
bill_080

6

Populacja wynosi około 15 milionów próbek.

Wtedy najprawdopodobniej będziesz w stanie odrzucić jakąkolwiek konkretną dystrybucję prostej, zamkniętej formy.

Nawet ten niewielki guz po lewej stronie wykresu prawdopodobnie wystarczy, abyśmy powiedzieli „wyraźnie nie takie i takie”.

Z drugiej strony jest to prawdopodobnie dość dobrze przybliżone przez wiele popularnych dystrybucji; oczywistymi kandydatami są lognormalne i gamma, ale istnieje wiele innych. Jeśli spojrzysz na log zmiennej x, prawdopodobnie możesz zdecydować, czy lognormal jest w porządku na widoku (po pobraniu logów histogram powinien wyglądać symetrycznie).

Jeśli dziennik jest pochylony, rozważ, czy Gamma jest w porządku, czy jest prawy, sprawdź, czy odwrotna Gamma lub (jeszcze więcej pochylenia) odwrotna gaussowska jest w porządku. Ale to ćwiczenie polega raczej na znalezieniu dystrybucji, która jest wystarczająco blisko, aby z nią żyć; żadna z tych sugestii nie ma w rzeczywistości wszystkich funkcji, które wydają się tam obecne.

Jeśli masz jakąkolwiek teorię na poparcie wyboru, porzuć całą tę dyskusję i skorzystaj z niej.


Wow, co to za intuicja w tej sprawie; ładny! :)
onurcanbektas

1

Nie jestem pewien, dlaczego miałbyś chcieć klasyfikować próbkę do określonej dystrybucji o tak dużej próbce; parsimony, porównując go z inną próbką, szukając fizycznej interpretacji parametrów?

Większość pakietów statystycznych (R, SAS, Minitab) pozwala na wykreślanie danych na wykresie, który daje linię prostą, jeśli dane pochodzą z określonego rozkładu. Widziałem wykresy, które dają linię prostą, jeśli dane są normalne (log normalny - po transformacji log), Weibull i chi-kwadrat natychmiast przychodzą do mnie. Ta technika pozwoli ci zobaczyć wartości odstające i da ci możliwość przypisania powodów, dla których punkty danych są wartościami odstającymi. W R normalny wykres prawdopodobieństwa nazywa się qqnorm.


Dobry pomysł sugerujący qqplot. Myślę jednak, że twoje wyjaśnienie tej techniki jest trochę niejasne / trudne do zrozumienia. Czy możesz podać przykładowy kod R? To znacznie zwiększyłoby wartość odpowiedzi.
steffen

Oczekuję, że ktoś zetknął się z obrazem takim jak mój i zbadał leżący u jego podstaw rozkład, ponieważ wartości mają podstawy fizyczne.
mbaitoff

Badam fizyczne tło dystrybucji próbki - jak to jest dystrybuowane i dlaczego.
mbaitoff
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.