Würde PCA für boolesche (binäre) Datentypen funktionieren?


38

Ich möchte die Dimensionalität von Systemen höherer Ordnung reduzieren und den größten Teil der Kovarianz auf einem vorzugsweise zweidimensionalen oder eindimensionalen Feld erfassen. Ich verstehe, dass dies über die Hauptkomponentenanalyse erfolgen kann, und ich habe PCA in vielen Szenarien verwendet. Ich habe es jedoch nie mit booleschen Datentypen verwendet und mich gefragt, ob es sinnvoll ist, PCA mit diesem Satz durchzuführen. Angenommen, ich habe qualitative oder beschreibende Metriken und ordne eine "1" zu, wenn diese Metrik für diese Dimension gültig ist, und eine "0", wenn dies nicht der Fall ist (Binärdaten). Stellen Sie sich zum Beispiel vor, Sie versuchen, die sieben Zwerge in Schneewittchen zu vergleichen. Wir haben:

Doc, Dopey, Bashful, Grumpy, Sneezy, Sleepy und Happy, und Sie möchten sie nach Qualitäten ordnen und haben dies wie folgt getan:

(Lactose IntolerantA Honor RollAthleticWealthyDoc1011Dopey0000Bashful1011Grumpy1111Sneezy0110Sleepy1000Happy1100)

So ist Bashful zum Beispiel laktoseintolerant und steht nicht auf der Ehrentafel. Dies ist eine rein hypothetische Matrix, und meine reale Matrix enthält viel mehr beschreibende Spalten. Meine Frage ist, wäre es immer noch angebracht, PCA auf dieser Matrix durchzuführen, um die Ähnlichkeit zwischen Individuen zu finden?


1
Diese Frage ist (fast) ein Duplikat dieser ein . PCA kann mit binären / booleschen Daten durchgeführt werden, aber eine Faktorenanalyse (einschließlich PCA, "als ob" FA) mit solchen Daten ist problematisch .
TTNPHNS

1
PCA für binäre Daten wie Ihre ("Gegenwart" vs "Abwesenheit") würde normalerweise ohne Zentrierung der Variablen durchgeführt, da es keinen Grund gibt, den Ursprung (den Referenzpunkt) anders als die ursprüngliche 0 vorzuschlagen. oder korrelationsbasierte PCA kommen wir zu SSCP- oder Kosinus-basierten . Eine solche Analyse ist sehr ähnlich und entspricht fast der Mehrfachkorrespondenzanalyse (= Homogenitätsanalyse), die für Sie die Wahl sein könnte.
TTNPHNS

a means of finding the similarity between individuals. Diese Aufgabe ist jedoch für eine Clusteranalyse vorgesehen, nicht für eine PCA.
TTNPHNS

Kurze Antwort: Die lineare PCA (wenn sie als Dimensionsreduktionstechnik und nicht als Faktoranalyse als Latentvariablentechnik verwendet wird) kann für skalierte (metrische) oder binäre Daten verwendet werden. Einfache (lineare) PCA sollten jedoch nicht mit Ordnungs- oder Nenndaten verwendet werden - es sei denn, diese Daten werden auf irgendeine Weise in metrische oder binäre (z. B. Dummy-) Daten umgewandelt.
TTNPHNS

@ttnphns PCA kann als Möglichkeit zum Clustering von Variablen angesehen werden. PCA- und Cluster-Analyse können auch nacheinander durchgeführt werden
Antoine

Antworten:


12

Ich möchte Ihnen eine relativ neue Technik für die automatische Strukturextraktion aus kategorialen variablen Daten vorschlagen (einschließlich Binärdaten). Die Methode heißt CorEx von Greg van Steeg von der University of Southern California. Die Idee ist, den Begriff der Gesamtkorrelation auf der Grundlage der Entropiemaße zu verwenden. Es ist ansprechend wegen seiner Einfachheit und der fehlenden Einstellung einer großen Anzahl von Hyperparametern.

Das Papier über hierarchische Darstellungen (das jüngste baut auf den vorherigen Maßnahmen auf). http://arxiv.org/pdf/1410.7404.pdf


1
@AlvinNunez Gern geschehen! Die Python-Implementierung finden Sie auf GitHub. Github.com/gregversteeg/CorEx Sie können ganz einfach Ihre Daten abrufen und sehen, was herauskommt.
Vladislavs Dovgalecs

13

Sie können auch die Mehrfachkorrespondenzanalyse (Multiple Correspondence Analysis, MCA) verwenden, die eine Erweiterung der Hauptkomponentenanalyse darstellt, wenn die zu analysierenden Variablen kategorisch und nicht quantitativ sind (dies ist hier bei Ihren Binärvariablen der Fall). Siehe zum Beispiel Husson et al. (2010) oder Abdi und Valentin (2007) . Ein ausgezeichnetes R-Paket zur Durchführung von MCA (und hierarchischem Clustering auf PCs) ist FactoMineR .


1
Eine interessante Antwort, da stimme ich eher zu. Es wird von großem Nutzen sein, wenn Sie das Phänomen der inflation of the feature spaceund warum es in PCA und nicht in MCA auftreten würde, genauer erläutern .
TTNPHNS

Ich habe das inflation of the feature spacePhänomen falsch verstanden . Es scheint ins Spiel zu kommen, wenn von CA zu MCA gewechselt wird, ist aber kein inhärentes Problem von PCA. Ich werde meine Antwort entfernen, wenn Sie diesen Kommentar gelesen haben. Danke, dass du mir das klar gemacht hast.
Antoine

Ich glaube nicht, dass Sie die Antwort entfernen müssen. MCA ist für mich eine der richtigen Entscheidungen, und Ihre Antwort ist in Ordnung.
TTNPHNS

Ich fügte die Antwort zurück, weil ich denke, dass MCA hier hilfreich sein könnte, aber ich entfernte die Diskussion über die Inflation des Feature-Space, da es nicht relevant zu sein schien
Antoine

Inwiefern unterscheidet sich das Ergebnis von MCA für Binärdaten vom Ergebnis einer PCoA mit einem Entfernungsmaß, das für Binärdaten wie Jaccard oder einfachen Abgleich geeignet ist?
Emudrak

9

Wenn Sie sich PCA als eine Erkundungstechnik vorstellen, mit der Sie die Beziehungen zwischen Variablen visualisieren können (und meiner Meinung nach ist dies die einzige Möglichkeit, darüber nachzudenken), dann gibt es keinen Grund, warum Sie keine Binärdaten eingeben können Variablen. Hier ist zum Beispiel ein Biplot Ihrer Daten

Bildbeschreibung hier eingeben

Es scheint einigermaßen nützlich. Sie können beispielsweise feststellen, dass Doc und Bashful sehr ähnlich sind. diese HR ist den drei anderen Variablen ziemlich unähnlich; Sleepy und Sneezy sind sehr unterschiedlich, etc.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.