Szukam prostego sposobu na pobranie próbki z wielowymiarowej dystrybucji von Misesa-Fishera w Pythonie. Mam spojrzał w statystyki modułu w scipy i modułem numpy ale tylko znaleźć jednoczynnikowej dystrybucję von Misesa. Czy jest dostępny kod? Jeszcze nie znalazłem
Najwyraźniej Wood (1994) opracował algorytm próbkowania z rozkładu vMF zgodnie z tym linkiem , ale nie mogę znaleźć papieru.
- edycja Dla precyzji interesuje mnie algorytm, który jest trudny do znalezienia w literaturze (większość artykułów dotyczy ). Według mojej wiedzy nie można znaleźć tego przełomowego artykułu (Wood, 1994).
distributions
sampling
python
mikrofon
źródło
źródło
scipy.stats.vonmises
mogą być podobne do tablic, dzięki czemu można określić rozkład jakoarray
. Zobacz ten przykładK = vonmises.pdf([x,x], kappa=[[1],[10]])
. 2-D vMF powinien mieć tylko jeden rzeczywisty jako parametr. Czy sie zgadzasz?Odpowiedzi:
W końcu to dostałam. Oto moja odpowiedź.
W końcu zdecydowałem się na statystyki kierunkowe (Mardia i Jupp, 1999) oraz algorytm Ulricha-Wooda do próbkowania. Publikuję tutaj to, co z niego zrozumiałem, tj. Mój kod (w języku Python).
Odrzucony schemat próbkowania:
Następnie pożądanym próbkowaniem jest , gdziewjest wynikiem ze schematu prób odrzucenia, avjest równomiernie próbkowany na hipersferze.v 1 - w2)------√+ w μ w v
I, dla skutecznego próbkowania z tym kodem, oto przykład:
źródło
(Przepraszam za formatowanie tutaj, utworzyłem konto tylko po to, aby odpowiedzieć na to pytanie, ponieważ ostatnio próbowałem to rozgryźć).
i zamień
w przykładzie mikrofonu z wezwaniem do
źródło