Czy PCA będzie działać dla typów danych boolowskich (binarnych)?

38

Chcę zmniejszyć wymiarowość układów wyższego rzędu i uchwycić większość kowariancji na polu najlepiej dwuwymiarowym lub jednowymiarowym. Rozumiem, że można to zrobić za pomocą analizy głównych składników, i używałem PCA w wielu scenariuszach. Jednak nigdy nie użyłem go z typami danych boolowskich i zastanawiałem się, czy warto robić PCA z tym zestawem. Udawajmy na przykład, że mam dane jakościowe lub opisowe, i przypisuję „1”, jeśli dane te są prawidłowe dla tego wymiaru, i „0”, jeśli nie jest (dane binarne). Udawaj na przykład, że próbujesz porównać Siedmiu Krasnoludków w Królewnie Śnieżce. Mamy:

Doc, Dopey, Bashful, Grumpy, Sneezy, Sleepy and Happy, i chcesz je ułożyć w oparciu o cechy, i zrobił to w następujący sposób:

(Lactose IntolerantA Honor RollAthleticWealthyDoc1011Dopey0000Bashful1011Grumpy1111Sneezy0110Sleepy1000Happy1100)

Na przykład Bashful nie toleruje laktozy i nie znajduje się na liście wyróżnień A. Jest to czysto hipotetyczna matryca, a moja prawdziwa matryca będzie miała o wiele więcej kolumn opisowych. Moje pytanie brzmi: czy nadal właściwe byłoby wykonanie PCA na tej matrycy jako sposobu na znalezienie podobieństwa między jednostkami?

Alvin Nunez
źródło
1
To pytanie jest (prawie) duplikatem tego . PCA może być wykonane na danych binarnych / logicznych, ale przeprowadzanie analizy czynnikowej (w tym PCA „tak jakby” to FA) na takich danych jest problematyczne .
ttnphns
1
PCA na danych binarnych, takich jak twoje („obecny” vs „nieobecny”), normalnie byłby wykonywany bez centrowania zmiennych, ponieważ nie ma powodu sugerować początku (punktu odniesienia) innego niż oryginalne 0. Zatem zamiast kowariancji- lub PCA oparty na korelacji dochodzimy do SSCP lub cosinus . Taka analiza jest bardzo podobna, prawie równoważna analizie wielokrotnej korespondencji (= analiza jednorodności), która może być dla Ciebie wyborem.
ttnphns
a means of finding the similarity between individuals. Ale to zadanie dotyczy analizy skupień, a nie PCA.
ttnphns
Krótka odpowiedź: liniowe PCA (jeśli jest traktowane jako technika redukcji wymiarów, a nie technika zmiennej utajonej jako analiza czynnikowa) może być zastosowane do danych skalowych (metrycznych) lub binarnych. Nie należy jednak stosować zwykłego (liniowego) PCA z danymi porządkowymi lub nominalnymi - chyba że dane te zostaną w jakiś sposób zamienione na dane metryczne lub binarne (np. Obojętne).
ttnphns
@ttnphns PCA można postrzegać jako sposób na grupowanie zmiennych. Również PCA i analizę skupień można zastosować kolejno
Antoine,

Odpowiedzi:

12

Chciałbym zaproponować stosunkowo nową technikę automatycznego wyodrębniania struktury z danych zmiennych zmiennych jakościowych (w tym binarnych). Metoda nazywa się CorEx od Grega van Steega z University of Southern California. Chodzi o to, aby użyć pojęcia Total Correlation w oparciu o miary entropii. Jest atrakcyjny ze względu na swoją prostotę i brak dostrajania dużej liczby hiperparametrów.

Artykuł o reprezentacjach hierarchicznych (najnowszy, bazuje na poprzednich miarach). http://arxiv.org/pdf/1410.7404.pdf

Vladislavs Dovgalecs
źródło
1
@AlvinNunez Nie ma za co! Implementację Pythona można znaleźć na GitHub github.com/gregversteeg/CorEx Naprawdę łatwo jest pobrać dane i zobaczyć, co się pojawi.
Vladislavs Dovgalecs
13

Możesz także użyć analizy wielokrotnej korespondencji (MCA), która jest rozszerzeniem analizy głównego składnika, gdy analizowane zmienne mają charakter kategoryczny zamiast ilościowy (tak jest w przypadku zmiennych binarnych). Patrz na przykład Husson i in. (2010) lub Abdi i Valentin (2007) . Doskonałym pakietem R do wykonywania MCA (i hierarchicznego grupowania na komputerach PC) jest FactoMineR .

Antoine
źródło
1
Ciekawa odpowiedź, wolę się z nią zgodzić. Będzie to dla niego wielką zaletą, jeśli bardziej szczegółowo wyjaśnisz zjawisko inflation of the feature spacei dlaczego miałoby to nastąpić w PCA, a nie w MCA.
ttnphns
Źle zrozumiałem to inflation of the feature spacezjawisko. Wydaje się, że wchodzi w grę podczas przechodzenia z CA do MCA, ale nie jest nieodłącznym problemem PCA. Mam zamiar usunąć moją odpowiedź po przeczytaniu tego komentarza. Dzięki za uświadomienie mi tego.
Antoine,
Nie sądzę, że musisz usunąć odpowiedź. MCA jest dla mnie jedną z właściwych opcji, a twoja odpowiedź jest w porządku.
ttnphns
Odpowiedziałem ponownie, ponieważ myślę, że MCA może być tutaj pomocne, ale usunąłem dyskusję na temat inflacji przestrzeni obiektów, ponieważ nie wydawało się to istotne
Antoine
Czym różni się wynik MCA danych binarnych od wyniku PCoA z miarą odległości odpowiednią dla danych binarnych, takich jak Jaccard lub zwykłe dopasowanie?
emudrak
9

Jeśli myślisz o PCA jako technice eksploracyjnej, która da ci sposób na wizualizację związków między zmiennymi (i moim zdaniem jest to jedyny sposób, aby o tym pomyśleć), to tak, nie ma powodu, dla którego nie możesz umieścić w systemie binarnym zmienne. Na przykład tutaj jest biplot twoich danych

wprowadź opis zdjęcia tutaj

Wydaje się dość użyteczny. Na przykład widać, że Doc i Bashful są bardzo podobne; że HR jest raczej odmienne od trzech innych zmiennych; Sleepy i Sneezy są bardzo odmienne itp.

Flądrarz
źródło