Jak sprawdzić jednorodność w kilku wymiarach?

13

Testowanie jednorodności jest czymś powszechnym, ale zastanawiam się, jakie są metody, aby to zrobić dla wielowymiarowej chmury punktów.

gui11aume
źródło
Interesujące pytanie. Czy rozważasz niezależne wpisy?
1
@ Procrastinator Zastanawiam się teraz nad tym punktem. Próbowanie dowiedzieć się, czy można osiągnąć jednolitość bez niezależności. Wszelkie wskazówki są mile widziane.
gui11aume
4
Tak, możliwe jest uzyskanie jednolitości bez niezależności. Przykładowo, próbka z jednostki -cube przez wygenerowanie jednolitej siatki -cubes obejmujących i przesunięcie jej początku zgodnie z równomiernym rozkładem na sześcianie . Zachowaj środki tych kostek należących do kostki jednostki. Jeśli chcesz, próbkuj od nich losowo. Wszystkie punkty mają równe szanse na wybór: rozkład jest jednolity. Wynik również wygląda jednolicie, ale ponieważ żadne dwa punkty nie mogą znajdować się w odległości od siebie, oczywiście punkty nie są niezależne. ϵ R n ϵ ϵ ϵnϵRnϵϵϵ
whuber

Odpowiedzi:

14

Metoda standardowa wykorzystuje funkcję K Ripleya lub coś z niej pochodnego, na przykład funkcję L. Jest to wykres podsumowujący średnią liczbę sąsiadów punktów w funkcji maksymalnej odległości od siebie ( ). Aby uzyskać jednolity rozkład w wymiarach, ta średnia powinna zachowywać się jak : i zawsze będzie taka dla małych . Odchodzi od takiego zachowania ze względu na grupowanie, inne formy przestrzennej nie-niezależności i efekty krawędziowe (stąd kluczowe jest określenie regionu próbkowanego przez punkty). Z powodu tej komplikacji - która pogarsza się jakon ρ n ρ nρnρnρnwzrasta - w większości aplikacji pasmo ufności jest ustawiane dla zerowej funkcji K poprzez symulację, a obserwowana funkcja K jest wykreślana w celu wykrycia wychyleń. Z pewnymi przemyśleniami i doświadczeniem wycieczki można interpretować w kategoriach tendencji do skupiania się lub nie w określonych odległościach.

Rycina 1

Przykłady funkcji K i związanej z nią funkcji L z Dixon (2001), jw. Funkcja L jest skonstruowana w taki sposób, że dla równomiernego rozkładu jest poziomą linią zerową: dobrym wizualnym odniesieniem. Linie przerywane to przedziały ufności dla tego konkretnego obszaru badań, obliczone za pomocą symulacji. Jednolity szary ślad jest funkcją L dla danych. Dodatni skok na odległościach 0-20 m wskazuje na pewne skupienia na tych odległościach.L(ρ)ρ

Opublikowałem działający przykład w odpowiedzi na powiązane pytanie na /stats//a/7984 , gdzie wykres pochodzący z funkcji K dla jednolitego rozkładu na dwuwymiarowym kolektorze osadzonym w szacuje się na podstawie symulacji.R3

W R, na spatstat funkcje kesti k3estobliczyć K funkcji dla i , odpowiednio. W więcej niż 3 wymiarach prawdopodobnie jesteś sam, ale algorytmy byłyby dokładnie takie same. Możesz wykonać obliczenia z macierzy odległości obliczonej (z umiarkowaną wydajnością) przez .n = 3n=2n=3stats::dist

Whuber
źródło
Czy zdarzyło ci się kiedyś odkryć związek między mostem Browna a działkami, które pokazujesz w odpowiedzi, do której linkujesz?
gui11aume
13

Okazuje się, że pytanie jest trudniejsze niż myślałem. Mimo to odrobiłem pracę domową i po rozejrzeniu się znalazłem dwie metody oprócz funkcji Ripleya, aby przetestować jednorodność w kilku wymiarach.

Zrobiłem pakiet R o nazwie, unfktóry implementuje oba testy. Możesz pobrać go z github na https://github.com/gui11aume/unf . Duża jego część znajduje się w C, więc będziesz musiał go skompilować na swoim komputerze R CMD INSTALL unf. Artykuły, na których oparta jest implementacja, są w formacie pdf w pakiecie.

Pierwsza metoda pochodzi z referencji wspomnianej przez @ Procrastinator ( Testowanie jednorodności na wielu odmianach i jej zastosowania, Liang i wsp., 2000 ) i pozwala przetestować jednorodność tylko na jednostkowej hipersześcianie. Chodzi o zaprojektowanie statystyk rozbieżności, które są asymptotycznie gaussowskie według twierdzenia Central Limit. Pozwala to obliczyć statystykę , która jest podstawą testu.χ2

library(unf)
set.seed(123)
# Put 20 points uniformally in the 5D hypercube.
x <- matrix(runif(100), ncol=20)
liang(x) # Outputs the p-value of the test.
[1] 0.9470392

Drugie podejście jest mniej konwencjonalne i wykorzystuje minimalne drzewa opinające . Wstępna praca została wykonana przez Friedmana i Rafsky'ego w 1979 r. (Odniesienie w pakiecie), aby sprawdzić, czy dwie próbki wielowymiarowe pochodzą z tej samej dystrybucji. Poniższy obraz ilustruje zasadę.

jednolitość

Punkty z dwóch dwuwymiarowych próbek są wykreślone na czerwono lub niebiesko, w zależności od ich oryginalnej próbki (lewy panel). Obliczane jest minimalne drzewo rozpinające próbki zbiorczej w dwóch wymiarach (środkowy panel). To drzewo z minimalną sumą długości krawędzi. Drzewo jest rozkładane w poddrzewach, w których wszystkie punkty mają takie same etykiety (prawy panel).

Na poniższym rysunku pokazuję przypadek, w którym agregowane są niebieskie kropki, co zmniejsza liczbę drzew na końcu procesu, jak widać na prawym panelu. Friedman i Rafsky obliczyli asymptotyczny rozkład liczby drzew uzyskanych w procesie, co pozwala na wykonanie testu.

niejednorodność

Pomysł stworzenia ogólnego testu na jednorodność próbki wielowymiarowej został opracowany przez Smitha i Jaina w 1984 r. I wdrożony przez Bena Pfaffa w C (odniesienie w pakiecie). Druga próbka jest generowana równomiernie w przybliżonym wypukłym kadłubie pierwszej próbki, a próba Friedmana i Rafsky'ego jest przeprowadzana na puli dwóch próbek.

Zaletą tej metody jest to, że sprawdza jednolitość każdego wypukłego kształtu wielowymiarowego, a nie tylko hipersześcianu. Istotną wadą jest to, że test ma losowy składnik, ponieważ druga próbka jest generowana losowo. Oczywiście można powtórzyć test i uśrednić wyniki, aby uzyskać powtarzalną odpowiedź, ale nie jest to przydatne.

Kontynuując poprzednią sesję R, oto jak to wygląda.

pfaff(x) # Outputs the p-value of the test.
pfaff(x) # Most likely another p-value.

Skopiuj / rozwidlaj kod z github.

gui11aume
źródło
1
Świetny przegląd, dziękuję! Dla przyszłych pokoleń uważam również, że ten artykuł jest przydatnym „praktycznym” podsumowaniem (niepowiązanym w żaden sposób z autorami).
MInner
3

Czy para byłaby zależnymi unifromami, gdzie i z prawdopodobieństwem i z prawdopodobieństwem gdzie jest również i niezależny od ?U U n i f o r m ( 0 , 1 ) Z = U 0 < p < 1 W 1 - p W U n i f o r m ( 0 , 1 ) U(U,Z)UUniform(0,1)Z=U0<p<1W1pWUniform(0,1)U

Dla niezależnych zmiennych losowych w wymiarach podziel wymiarową kostkę jednostkową to zbiór mniejszych rozłącznych kostek o tej samej długości boku. Następnie wykonaj test dla jednorodności. Działa to dobrze tylko, jeśli n jest małe jak 3-5.n χ 2nnχ2

Michael R. Chernick
źródło
1
Wierzę, że kiedy ostatnio zaoferowałeś to rozwiązanie, Michael, ktoś zauważył, że nie jest to wykonalne w więcej niż niewielkiej liczbie wymiarów, ponieważ co najmniej potrzebujesz komórek. 2n
whuber
@ Whuber nie sądzę, że ustaliliśmy, jaka powinna być minimalna liczba komórek, a kilka wymiarów niekoniecznie oznacza tutaj duże. Możliwe, że mamy do czynienia z 3 lub 4.
Michael R. Chernick
5
Twoja odpowiedź staje się bardziej przydatna dla wszystkich czytelników, gdy nakreślisz jej zakres i potencjalne zastosowanie. (Alternatywną strategią, w duchu dobrych konsultacji statystycznych, jest użycie komentarzy, aby zapytać PO o możliwą liczbę wymiarów, a następnie dostosować odpowiedź do tego.) (+1 dla poprawy.)
whuber
„Następnie wykonaj test \ Chi ^ 2 na jednolitość.” - czy mógłbyś rozwinąć tę kwestię? W Wikipedii en.wikipedia.org/wiki/Pearson%27s_chi-squared_test jest tylko test Chi2 pod względem dopasowania, jednorodności i niezależności.
Yaroslav Nikitenko