Rozumiem, że po wykreśleniu wartości w formie wykresu możemy zidentyfikować rozkład bimodalny, obserwując bliźniacze piki, ale jak można go znaleźć programowo? (Szukam algorytmu).
Rozumiem, że po wykreśleniu wartości w formie wykresu możemy zidentyfikować rozkład bimodalny, obserwując bliźniacze piki, ale jak można go znaleźć programowo? (Szukam algorytmu).
Odpowiedzi:
Identyfikacja trybu ciągłej dystrybucji wymaga wygładzenia lub binowania danych.
Binning jest zazwyczaj zbyt procrustowy: wyniki często zależą od tego, gdzie umieścisz punkty odcięcia bin.
Wygładzanie jądra (szczególnie w postaci szacowania gęstości jądra ) jest dobrym wyborem. Chociaż możliwych jest wiele kształtów jądra, zazwyczaj wynik nie zależy w dużej mierze od kształtu. To zależy od przepustowości jądra. Dlatego ludzie albo używają adaptacyjnego wygładzania jądra, albo przeprowadzają sekwencję wygładzania jądra dla różnych stałych szerokości pasma, aby sprawdzić stabilność zidentyfikowanych trybów. Chociaż stosowanie adaptacyjnego lub „optymalnego” wygładzacza jest atrakcyjne, należy pamiętać, że większość (wszystkie?) Z nich ma na celu osiągnięcie równowagi między precyzją a średnią dokładnością: nie są one zaprojektowane do optymalizacji szacowania położenia modów.
Jeśli chodzi o implementację, jądro wygładza lokalnie przesunięcie i skalowanie z góry określonej funkcji w celu dopasowania danych. Pod warunkiem, że ta podstawowa funkcja jest rozróżnialna - Gaussowie są dobrym wyborem, ponieważ możesz je rozróżnić tyle razy, ile chcesz - to wszystko, co musisz zrobić, to zastąpić ją pochodną, aby uzyskać pochodną gładkości. Następnie wystarczy po prostu zastosować standardową procedurę znajdowania zera w celu wykrycia i przetestowania punktów krytycznych. ( Metoda Brenta działa dobrze.) Oczywiście możesz wykonać tę samą sztuczkę z drugą pochodną, aby szybko sprawdzić, czy jakikolwiek punkt krytyczny jest lokalnym maksimum - to znaczy trybem.
Istnieje dobrze znany artykuł Silvermana na ten temat. Wykorzystuje szacowanie gęstości jądra. Widzieć
BW Silverman, Wykorzystanie szacunków gęstości jądra do badania multimodalności , J. Royal Stat. Soc. B , vol. 43, nr 1, 1981, s. 97–99.
Zwróć uwagę, że w tabelach papieru są pewne błędy. To tylko punkt wyjścia, ale całkiem niezły. Zapewnia dobrze zdefiniowany algorytm do użycia w przypadku, gdy najbardziej tego szukasz. Możesz spojrzeć na Google Scholar w gazetach, które cytują go, aby uzyskać bardziej „nowoczesne” podejście.
Przyjechałem późno na imprezę, ale jeśli jesteś zainteresowany tym, czy jest to multimodalny, czy nie, co oznacza, że nie jesteś zainteresowany liczbą trybów, powinieneś spojrzeć na diptest .
W R
pakiecie nazywa się diptest
.
Definicja w wiki jest dla mnie nieco myląca. Prawdopodobieństwo, że ciągły zbiór danych będzie miał tylko jeden tryb, wynosi zero. Prostym sposobem na zaprogramowanie bimodalnego dystrygitonu jest użycie dwóch oddzielnych rozkładów normalnych wyśrodkowanych inaczej. Tworzy to dwa szczyty lub tryby, które wiki nazywa. Właściwie możesz użyć prawie dowolnych dwóch rozkładów, ale jedną z trudniejszych możliwości statystycznych jest ustalenie, jak powstał zestaw danych po połączeniu dwóch losowych rozkładów danych.