Badanie macierzy wykresów punktowych dla wielu zmiennych

10

Analizuję zestaw danych z wieloma parametrami (powiedzmy 50-200) i jestem zainteresowany spojrzeniem na relacje między zmiennymi (np. Pod względem wykresów rozproszenia 2 zmiennych lub histogramów 2d). Jednak dla tej liczby parametrów wydaje się niewykonalne narysowanie tablicy o wymiarach 200 x 200 (chyba że wydrukuję ją i powiesię na ścianie).

Z drugiej strony wykonanie tylko macierzy korelacji nie daje wszystkich informacji na temat relacji 2-zmiennych.

Czy istnieje sposób (biblioteka lub przepływ pracy) na badanie relacji 2 zmiennych dla wielu zmiennych?

Jestem szczególnie zainteresowany pokazywaniem wyników innym (być może po pewnym wstępnym przetwarzaniu danych). Np. Coś interaktywnego w JavaScript, czy widzę macierz rozrzutu dla wybranych pól z macierzy korelacji.

Przez macierz rozproszenia rozumiem coś takiego:

wprowadź opis zdjęcia tutaj

(pochodzi z bloga pandasplotting ; dostępny w Python / Pandas , R , D3.js itp.).

Piotr Migdal
źródło
4
Nie wyjaśniłeś, czego szukasz. Czy chcesz widzieć chmurę w każdym punkcie danych? Czy chcesz zobaczyć wszystkie dwuwymiarowe aspekty na raz ?
ttnphns,
@ttnphns Chcę zobaczyć wszystkie punkty danych LUB je w jakiejś zagregowanej formie (np. histogramy 2d). Nie muszę widzieć, że wszystkie rzeczy są raz (ponieważ ma to sens dla <15 zmiennych, ale nie 200). I tak, mam świadomość, że pytanie jest nieco otwarte. Zamknięta wersja brzmi: „Czy istnieje biblioteka JS do wyświetlania wykresów rozrzutu i histogramów, gdy mysz unosi się na odpowiednim pikselu w macierzy korelacji? A może powinienem napisać jedną? :)” Napisałem bardziej ogólną, ponieważ być może są kilka lepszych przepływów pracy w celu rozwiązania problemu.
Piotr Migdal
Możliwe jest uporządkowanie matrycy wykresów rozrzutu w postaci kostki olap, dzięki czemu widzisz tylko jeden lub kilka wykresów na raz i możesz przełączać się między nimi. Niestety nie znam konkretnego programu ani kodu do tworzenia graficznych kostek olap.
ttnphns

Odpowiedzi:

7

Badanie związków między zmiennymi jest dość niejasne, ale wydaje mi się, że są dwa bardziej ogólne cele badania takich wykresów rozrzutu;

  • Zidentyfikuj ukryte grupy bazowe (zmiennych lub przypadków).
  • Zidentyfikuj wartości odstające (w przestrzeni jedno-, dwuwymiarowej lub wielowymiarowej).

Oba zmniejszają dane do bardziej przejrzystych podsumowań, ale mają różne cele. Zidentyfikuj ukryte grupy, w których zwykle zmniejsza się wymiary danych (np. Za pomocą PCA), a następnie bada, czy zmienne lub przypadki łączą się w tej ograniczonej przestrzeni. Patrz na przykład Friendly (2002) lub Cook i in. (1995).

Identyfikacja wartości odstających może oznaczać dopasowanie modelu i wykreślenie odchyleń od modelu (np. Wykreślenie resztek z modelu regresji) lub zmniejszenie danych do jego głównych składników i jedynie wyróżnienie punktów, które odbiegają od modelu lub głównej części danych. Np. Wykresy pudełkowe w jednym lub dwóch wymiarach zazwyczaj pokazują tylko pojedyncze punkty poza zawiasami (Wickham i Stryjewski, 2013). Rysowanie reszt ma dobrą właściwość, że powinno spłaszczyć wykresy (Tukey, 1977), więc każdy dowód relacji w pozostałej chmurze punktów jest „interesujący”. To pytanie dotyczące CV zawiera kilka doskonałych sugestii identyfikujących wartości odstające na wielu odmianach.

Częstym sposobem eksploracji tak dużych SPLOMÓW jest nie wykreślanie wszystkich pojedynczych punktów, ale pewnego rodzaju uproszczone podsumowanie, a następnie być może punkty, które znacznie odbiegają od tego podsumowania, np. Elipsy zaufania, podsumowania skagnostyczne (Wilkinson i Wills, 2008), dwuwymiarowe wykresy pudełkowe, wykresy konturowe. Poniżej znajduje się przykład rysowania elips, które definiują kowariancję i nakładania mniejszej wygładzenia w celu opisania liniowego powiązania.

Elipsy Corrgrama
(źródło: statmethods.net )

Tak czy inaczej, prawdziwie udany, interaktywny wykres z tak wieloma zmiennymi prawdopodobnie wymagałby inteligentnego sortowania (Wilkinson, 2005) i prostego sposobu filtrowania zmiennych (oprócz możliwości szczotkowania / łączenia). Również każdy realistyczny zestaw danych musiałby mieć możliwość przekształcania osi (np. Wykreślania danych w skali logarytmicznej, przekształcania danych przez zapuszczanie korzeni itp.). Powodzenia i nie trzymaj się tylko jednej fabuły!


Cytowania

Andy W.
źródło
1
Dzięki! Moim celem jest eksploracja danych przed uruchomieniem PCA, ponieważ zmienne mogą być powiązane nieliniowo i wymagać przeskalowania (lub innego przetwarzania).
Piotr Migdal
Przykładowa elipsa corrgram + wygładzanie lessu powinna być wówczas odpowiednia (lub zmienić elipsę kowariancyjną za pomocą innego wielokąta miarowego, takiego jak dwuwymiarowy wykres pudełkowy), i może pomóc w identyfikowaniu nieliniowych skojarzeń. Dobrym pytaniem dodatkowym może być to, czy możliwe jest zidentyfikowanie nieliniowych skojarzeń po redukcji danych za pomocą PCA (lub czegoś podobnego).
Andy W
1

Możesz rozważyć użycie błyszczącego interfejsu z pakietu pairsD3 R, który zapewnia sposób interakcji z macierzami wykresów punktowych .

Przykład z zestawem danych tęczówki:

install.packages("pairsD3")
require("pairsD3")
shinypairs(iris)

Źródło: https://github.com/garthtarr/pairsD3

Garth
źródło