Załóżmy, że mam duży zestaw danych wielowymiarowych z co najmniej trzema zmiennymi. Jak znaleźć wartości odstające? Pary rozproszone wykresy nie będą działać, ponieważ możliwe jest istnienie wartości odstającej w 3 wymiarach, która nie jest wartością odstającą w żadnej z dwuwymiarowych podprzestrzeni.
Nie myślę o problemie z regresją, ale o prawdziwych danych wielowymiarowych. Zatem odpowiedzi dotyczące silnej regresji lub dźwigni obliczeniowej nie są pomocne.
Jedną z możliwości byłoby obliczenie głównych wyników składowych i poszukiwanie wartości odstających w dwuwymiarowym wykresie rozrzutu pierwszych dwóch wyników. Czy to by zadziałało? Czy są lepsze podejścia?
multivariate-analysis
outliers
Rob Hyndman
źródło
źródło
Odpowiedzi:
Rzuć okiem na pakiet mvoutlier , który opiera się na zamówionych mocnych odległościach mahalanobis, jak sugeruje @drknexus.
źródło
Myślę, że odpowiedź Robina Girarda działałaby całkiem nieźle dla 3 i być może 4 wymiarów, ale przekleństwo wymiarowości uniemożliwiłoby jej działanie. Jednak jego sugestia doprowadziła mnie do pokrewnego podejścia, które polega na zastosowaniu szacunkowej oceny gęstości jądra do pierwszych trzech głównych ocen składowych. W takim przypadku bardzo wysoki zestaw danych może być nadal obsługiwany.
Podsumowując, dla i = 1 do n
koniec dla
Posortuj Li (dla i = 1, .., n), a wartości odstające to te, których prawdopodobieństwo jest poniżej pewnego progu. Nie jestem pewien, jaki byłby dobry próg - zostawię to każdemu, kto napisze o tym artykuł! Jedną z możliwości jest wykonanie wykresu wartości log (Li) i sprawdzenie, jakie wartości odstające są wykrywane na końcu ujemnym.
źródło
Pedagogiczne streszczenie różnych metod dostępnych w (1)
W celu uzyskania --recent - numerycznych porównań różnych metod tam wymienionych, możesz sprawdzić (2) i (3) .
istnieje wiele starszych (i mniej wyczerpujących) porównań numerycznych, zwykle spotykanych w książkach. Znajdziesz go na przykład na stronach 142–143 w (4).
Zauważ, że wszystkie omówione tutaj metody mają implementację R typu open source, głównie poprzez pakiet rrcov .
źródło
Zrobiłbym coś w rodzaju „pomiń jeden algorytm testujący” (n to liczba danych):
dla i = 1 do n
koniec dla
Działa to, jeśli n jest wystarczająco duże ... możesz również użyć „strategii k out”, która może być bardziej odpowiednia, gdy masz „grupy” wartości odstających…
źródło
Kandydatów na „wartości odstające” można znaleźć wśród punktów wsparcia elipsoidy ograniczającej minimalną objętość. ( Wydajne algorytmy do znajdowania tych punktów w dość wysokich wymiarach, zarówno dokładnie, jak i w przybliżeniu, zostały wynalezione w wielu artykułach w latach 70., ponieważ problem ten jest ściśle związany z pytaniem w projekcie eksperymentalnym.)
źródło
Moje nowatorskie podejście, które zobaczyłem, to analiza IT Jolliffe Principal Components . Uruchamiasz PCA na swoich danych (uwaga: PCA może być całkiem przydatnym narzędziem do eksploracji danych), ale zamiast patrzeć na kilka pierwszych głównych składników (PC), wykreślasz kilka ostatnich komputerów. Te komputery są liniowymi zależnościami między zmiennymi z najmniejszą możliwą wariancją. W ten sposób wykrywają „dokładne” lub bliskie dokładnych relacji wielowymiarowych w twoich danych.
Wykres wyników komputerowych dla ostatniego komputera pokaże wartości odstające, których nie można łatwo wykryć, patrząc indywidualnie na każdą zmienną. Jednym z przykładów jest wzrost i waga - niektórzy, którzy mają „powyżej średniej” wzrostu i „poniżej średniej” wagi, byliby wykrywani przez ostatni komputer wzrostu i masy ciała (zakładając, że są dodatnio skorelowane), nawet gdyby ich wzrost i waga nie były „ ekstremalne ”indywidualnie (np. ktoś, kto miał 180 cm i 60 kg).
źródło
Nie widziałem, żeby ktokolwiek wspominał o funkcjach wpływu . Pierwszy raz zobaczyłem ten pomysł w wielowymiarowej książce Gnanadesikana .
W jednym wymiarze wartość odstająca ma albo wyjątkowo dużą, albo bardzo małą wartość. W analizie wielowymiarowej jest to obserwacja usunięta z większości danych. Ale jakich danych powinniśmy użyć, aby zdefiniować skrajność dla wartości odstającej? Istnieje wiele możliwości wyboru. Odległość Mahalanobisa jest tylko jedna. Myślę, że szukanie każdego rodzaju wartości odstających jest daremne i przynosi efekt przeciwny do zamierzonego. chciałbym zapytać dlaczego zależy ci na wartości odstającej? Przy szacowaniu średniej mogą mieć duży wpływ na tę ocenę. Solidne estymatory mają niską wagę i uwzględniają wartości odstające, ale nie formalnie je testują. W regresji wartości odstające - podobnie jak punkty dźwigni - mogą mieć duży wpływ na parametry nachylenia w modelu. W przypadku danych dwuwymiarowych mogą one nadmiernie wpływać na szacowany współczynnik korelacji, aw co najmniej trzech wymiarach na wielokrotny współczynnik korelacji.
Funkcje wpływu zostały wprowadzone przez Hampela jako narzędzie w solidnych szacunkach, a Mallows napisał fajny niepublikowany artykuł zalecający ich użycie. Funkcja wpływu jest funkcją punktu, w którym się znajdujesz w przestrzeni n-wymiarowej i parametru. Zasadniczo mierzy różnicę między oszacowaniem parametru z punktem w obliczeniu i z pominiętym punktem. Zamiast zajmować się obliczaniem dwóch oszacowań i przyjmowaniem różnicy, często można wyprowadzić wzór na to. Następnie kontury stałego wpływu podają kierunek, który jest ekstremalny w stosunku do oszacowania tego parametru, a tym samym podpowiadają, gdzie w przestrzeni n-wymiarowej szukać wartości odstającej.
Więcej informacji można znaleźć w moim artykule z 1983 r. W American Journal of Mathematical and Management Sciences zatytułowanym „Funkcja wpływu i jej zastosowanie do sprawdzania poprawności danych”. Podczas sprawdzania poprawności danych chcieliśmy poszukać wartości odstających, które wpłynęłyby na zamierzone wykorzystanie danych. Mam wrażenie, że powinieneś zwrócić uwagę na wartości odstające, które mają duży wpływ na parametry, które chcesz oszacować, i nie przejmować się tak bardzo innymi, które tego nie robią.
źródło
Może to być przeregulowanie, ale możesz wyszkolić dane bez nadzoru w losowym lesie i użyć pomiaru bliskości obiektu w celu wykrycia wartości odstających. Więcej informacji tutaj .
źródło
W przypadku umiarkowanych wymiarów, takich jak 3, to jakaś technika weryfikacji krzyżowej jądra, jak sugerowano gdzie indziej, wydaje się rozsądna i jest najlepsza, jaką mogę wymyślić.
W przypadku większych wymiarów nie jestem pewien, czy problem można rozwiązać; ląduje całkiem prosto w terytorium „klątwy wymiarowej”. Problem polega na tym, że funkcje odległości bardzo szybko zbliżają się do bardzo dużych wartości wraz ze wzrostem wymiarów, w tym odległości uzyskanych z rozkładów. Jeśli definiujesz wartość odstającą jako „punkt o stosunkowo dużej funkcji odległości w stosunku do innych”, a wszystkie funkcje odległości zaczynają się zbiegać, ponieważ jesteś w przestrzeni o dużych wymiarach, cóż, masz kłopoty .
Bez jakiegoś rodzaju założenia dystrybucyjnego, które pozwoli ci przekształcić go w probabilistyczny problem klasyfikacji, lub przynajmniej pewien obrót, który pozwoli ci podzielić twoją przestrzeń na „wymiary hałasu” i „wymiary informacyjne”, myślę, że geometria przestrzeni wielowymiarowych zabroni łatwej - a przynajmniej solidnej - identyfikacji wartości odstających.
źródło
Nie jestem pewien, co masz na myśli, mówiąc, że nie myślisz o problemie z regresją, ale o „prawdziwych danych wielowymiarowych”. Moja początkowa odpowiedź polegałaby na obliczeniu odległości Mahalanobisa, ponieważ nie wymaga ona podania konkretnej wartości IV lub DV, ale jej rdzeń (o ile ją rozumiem) jest związany ze statystyką dźwigni.
źródło
Nie wiem, czy ktoś to robi, ale ogólnie lubię próbować zmniejszać wymiarowość, gdy mam taki problem. Możesz przyjrzeć się metodzie z różnorodnego uczenia się lub nieliniowej redukcji wymiarowości .
Przykładem może być mapa Kohonen . Dobrym odniesieniem dla R jest „Samo- i superorganizujące się mapy w R: Pakiet kohonen” .
źródło
Moją pierwszą odpowiedzią byłoby to, że jeśli możesz przeprowadzić regresję wielowymiarową na danych, to użyj reszt z tej regresji do wykrycia wartości odstających. (Wiem, że powiedziałeś, że to nie jest problem regresji, więc to może ci nie pomóc, przepraszam!)
Kopiuję część tego z pytania Stackoverflow, na które wcześniej odpowiedziałem, które zawiera przykładowy kod R.
Najpierw stworzymy pewne dane, a następnie skażymy je wartością odstającą;
Często najbardziej przydatne jest graficzne analizowanie danych (twój mózg jest znacznie lepszy w wykrywaniu wartości odstających niż matematyka)
Następnie można użyć statystyk do obliczenia krytycznych wartości odcięcia, używając testu Lunda (patrz Lund, RE 1975, „Tabele przybliżonego testu dla wartości odstających w modelach liniowych”, Technometrics, vol. 17, nr 4, str. 473 -476. I Prescott, P. 1975, „Anroximate Test for Outliers in Models Linear”, Technometrics, tom 17, nr 1, str. 129-132.)
Oczywiście istnieją inne testy odstające od testu Lunda (przypomina to Grubbsa), ale nie jestem pewien, które lepiej pasują do danych wielowymiarowych.
źródło
vw-top-errors
@ goo.gl/l7SLlB (zauważ, że w przykładach występuje Y, ale użyłem tej samej techniki, bardzo skutecznie również w przypadku problemów bez nadzoru, ustalając Y.)Jedna z powyższych odpowiedzi dotyczyła dystansu mahalanobisa ... być może jeszcze jeden krok dalej i obliczanie równoczesnych przedziałów ufności pomogłoby wykryć wartości odstające!
źródło