Mam zestaw danych, który zawiera zarówno dane ciągłe, jak i kategoryczne. Analizuję za pomocą PCA i zastanawiam się, czy dobrze jest uwzględnić zmienne kategorialne jako część analizy. Rozumiem, że PCA można zastosować tylko do zmiennych ciągłych. Czy to jest poprawne? Jeśli nie można go użyć do danych kategorycznych, jakie są alternatywy dla ich analizy?
categorical-data
pca
correspondence-analysis
mixed-type-data
Nikolina Icitovic
źródło
źródło
Odpowiedzi:
Chociaż PCA zastosowane do danych binarnych dałoby wyniki porównywalne z wynikami uzyskanymi z analizy wielokrotnej korespondencji (wyniki czynnikowe i wartości własne są liniowo powiązane), istnieją bardziej odpowiednie techniki radzenia sobie z mieszanymi typami danych, a mianowicie analiza wielu czynników dla mieszanych danych dostępnych w FactoMineR pakiet P (
AFDM()
). Jeśli twoje zmienne można uznać za ustrukturyzowane podzbiory atrybutów opisowych, wówczas opcja Multiple Factor Analysis (MFA()
) jest również opcją.Wyzwaniem związanym ze zmiennymi kategorialnymi jest znalezienie odpowiedniego sposobu reprezentowania odległości między kategoriami zmiennych a jednostkami w przestrzeni silni. Aby rozwiązać ten problem, możesz poszukać nieliniowej transformacji każdej zmiennej - czy to nominalnej, porządkowej, wielomianowej czy numerycznej - z optymalnym skalowaniem. Jest to również opisane w Gifi Metody optymalnego skalowania R: homals opakowania , i realizacja jest dostępny w odpowiednich pakietów R homals .
źródło
Although a PCA applied on binary data would yield results comparable to those obtained from a Multiple Correspondence Analysis
czy nie możemy przekonwertować nominalnej zmiennej kategorialnej (powiedzmy, że z kardynalnością N) na zbiór (N-1) obojętnych plików binarnych, a następnie wykonać PCA na tych danych? (Rozumiem, że są bardziej odpowiednie techniki)Wyszukiwarka Google „pca dla zmiennych dyskretnych” daje ładny przegląd autorstwa S. Kolenikova (@StasK) i G. Angeles. Aby dodać do odpowiedzi chl, analiza PC jest tak naprawdę analizą wektorów własnych macierzy kowariancji. Problem polega na tym, jak obliczyć „poprawną” macierz kowariancji. Jednym z podejść jest zastosowanie korelacji polichorycznej .
źródło
hetcor()
Z pakietu polycor ). Pod warunkiem, że macierz VC jest SDP, powinna wykonać pracę - głównie w duchu analizy czynnikowej. Zmienne nominalne mogą być kodowane obojętnie.Sugerowałbym spojrzenie na Linting & Kooij, 2012 „ Nieliniowa analiza głównych składników za pomocą CATPCA: poradnik ”, Journal of Personality Assessment ; 94 (1).
źródło
Mam jeszcze przywilej komentowania czyichś postów, więc dodaję komentarz jako osobną odpowiedź, więc proszę o wyrozumiałość.
Kontynuując to, co skomentował @Martin F., ostatnio spotkałem się z nieliniowymi PCA. Patrzyłem na nieliniowe PCA jako możliwą alternatywę, gdy zmienna ciągła zbliża się do rozkładu zmiennej porządkowej, gdy dane stają się coraz rzadsze (zdarza się to w genetyce wiele razy, gdy częstotliwość mniejszych alleli zmiennej staje się coraz niższa, a ty zostajesz z bardzo małą liczbą zliczeń, w których nie można naprawdę uzasadnić rozkładu zmiennej ciągłej i trzeba poluzować założenia dystrybucji, zmieniając ją na zmienną porządkową lub zmienną kategorialną.) Nieliniowe PCA może obsłużyć oba te warunki, ale później omawianie z maestrami statystycznymi na wydziale genetyki, zgoda była taka, że nieliniowe PCA nie są często używane, a zachowanie tych PCA nie jest jeszcze szeroko testowane (być może dotyczyły one tylko pola genetycznego, więc proszę zabrać je ziarenkiem soli). Rzeczywiście jest to fascynująca opcja. Mam nadzieję, że dodałem 2 centy (na szczęście istotne) do dyskusji.
źródło
Istnieje niedawno opracowane podejście do takich problemów: uogólnione modele niskiej rangi .
Jeden z artykułów wykorzystujących tę technikę jest nawet nazywany PCA na ramce danych .
PCA można przedstawić w następujący sposób:
Dla macierzy xm M.n m M
znajdź x macierz i x macierz (to niejawnie koduje ograniczenie r e ) tak, żeK X K m Y kn k X^ k m Y^ k
RgminX,Y‖M-XY‖ 2 FX^,Y^ = .argminX,Y∥M−XY∥2F
„Uogólniony” z GLRM oznacza zmianę do czegoś innego i dodanie terminu regularyzacji.∥⋅∥2F
źródło
PCAmixdata
Pakiet #Rstats :Przykład z winiety pokazuje wyniki zarówno dla wyników ciągłych, jak i jakościowych
źródło