Obliczanie trybu danych próbkowanych z ciągłego rozkładu

12

Jakie są najlepsze metody dopasowania „trybu” danych próbkowanych z ciągłego rozkładu?

Ponieważ tryb jest technicznie niezdefiniowany (prawda?) Dla ciągłej dystrybucji, naprawdę pytam „jak znaleźć najczęstszą wartość”?

Jeśli przyjmiesz, że rozkład rodzica jest gaussowski, możesz bin binować dane i stwierdzić, że tryb jest lokalizacją bin z największą liczbą. Jak jednak określić rozmiar pojemnika? Czy są dostępne solidne wdrożenia? (tj. odporny na wartości odstające). Używam python/ scipy/ numpy, ale prawdopodobnie potrafię tłumaczyć Rbez większych trudności.

Keflavich
źródło
8
Nie jestem pewien, czy tryb jest technicznie zdefiniowany w ten sposób, ale tryb globalny ciągłego rozkładu jest zwykle uważany za oznaczający punkt o największej gęstości.
Makro
1
@Macro - to pomocne. Następnie możesz przeczytać moje pytanie: „Jakie są najlepsze metody określania (szczytowej) gęstości?”
keflavich
1
Może zmieścisz oszacowanie gęstości jądra dla swoich danych i oszacujesz tryb jako szczyt tego? To wydaje się rozsądnym podejściem, ale nie znam literatury na ten temat.
Makro
1
x0=xmin,x1,x2),,x9,x10=xmax10%xja+1-xjamin1jot10xjot+1-xjot
2
Jakie można przyjąć założenia dotyczące dystrybucji rodzicielskiej, keflavich? Jeśli są parametryczne, najlepiej oszacować parametry, a następnie oszacować tryb na podstawie tych parametrów. (Np. Średnia próbki szacuje tryb rozkładu normalnego.) Jeśli nie, binowanie może być złą metodą. Zamiast tego można zastosować sekwencję estymatorów jądra o różnej połowie szerokości w celu zapewnienia sekwencji estymatorów; zazwyczaj, jeśli podstawowa dystrybucja jest nieimodalna, tryby wygładzania jądra wydają się zbliżać do unikalnego trybu, gdy połówki stają się duże, i może to być twój szacunek.
whuber

Odpowiedzi:

4

W R, stosując metodę, która nie jest oparta na modelowaniu parametrycznym rozkładu podstawowego i używa domyślnego estymatora gęstości jądra do 10000 zmiennych rozkładu gamma:

x <- rgamma(10000, 2, 5)
z <- density(x)
plot(z) # always good to check visually
z$x[z$y==max(z$y)]

zwraca 0,199, czyli wartość x, która ma największą gęstość (szacunki gęstości są przechowywane jako „z $ y”).

Peter Ellis
źródło
3
Jedyne, co zrobiłbym inaczej niż to, to użyć innej przepustowości. Domyślna szerokość pasma dla gęstości () nie jest szczególnie dobra. gęstość (x, bw = „SJ”) jest lepsza. Jeszcze lepiej byłoby użyć przepustowości przeznaczonej do oszacowania trybu. Zobacz sciencedirect.com/science/article/pii/0167715295000240 jakiegoś dyskusji.
Rob Hyndman,
2

Załóżmy, że tworzysz histogram wielkości pojemnika b, a największy pojemnik ma k wpisów z całej próbki o rozmiarze n. Następnie średni PDF w tym pojemniku można oszacować jako b * k / n.

Problem polega na tym, że inny pojemnik, który ma mniej wszystkich członków, może mieć wysoką gęstość plamek. Możesz o tym wiedzieć tylko wtedy, gdy masz uzasadnione założenie dotyczące tempa zmian w pliku PDF. Jeśli to zrobisz, możesz oszacować prawdopodobieństwo, że drugi największy pojemnik rzeczywiście zawiera ten tryb.

Podstawowym problemem jest to. Próbka zapewnia dobrą znajomość CDF według twierdzenia Kołmogorowa-Smirnowa, a zatem dobre oszacowanie mediany i innych kwantyli. Ale znajomość przybliżenia funkcji w L1 nie zapewnia przybliżonej wiedzy o jej pochodnej. Dlatego żadna próbka nie zapewnia dobrej znajomości pliku PDF bez dodatkowych założeń.

chrishmorris
źródło
0

Oto kilka ogólnych szkiców rozwiązań, które działają również w przypadku rozkładów wielowymiarowych:

  • Wytrenuj f-GAN z odwrotną dywergencją KL, nie dając generatorowi żadnych losowych danych wejściowych (tj. Wymuszając determinizm).

  • Trenuj f-GAN z odwrotną dywergencją KL, przesuwaj rozkład wejściowy do generatora w kierunku funkcji delta Diraca w miarę postępu treningu i dodaj karę gradientu do funkcji utraty generatora.

  • Przećwicz (generalnie różnicowalny) model generatywny, który może w sposób praktyczny ocenić aproksymację pdf w dowolnym momencie (uważam, że wystarczyłoby np. VAE, model oparty na przepływie lub model autoregresyjny). Następnie użyj pewnego rodzaju optymalizacji (można zastosować pewien smak wznoszenia gradientu, jeśli wnioskowanie modelu jest rozróżnialne), aby znaleźć maksimum tego przybliżenia.

Stephane Bersier
źródło