PCA funzionerebbe con tipi di dati booleani (binari)?


38

Voglio ridurre la dimensionalità dei sistemi di ordine superiore e catturare la maggior parte della covarianza su un campo preferibilmente bidimensionale o monodimensionale. Capisco che ciò può essere fatto tramite l'analisi dei componenti principali e ho usato PCA in molti scenari. Tuttavia, non l'ho mai usato con tipi di dati booleani e mi chiedevo se fosse significativo fare PCA con questo set. Quindi, per esempio, fingi di avere metriche qualitative o descrittive e assegno un "1" se quella metrica è valida per quella dimensione e uno "0" se non lo è (dati binari). Quindi, per esempio, fai finta di provare a confrontare i sette nani in Biancaneve. Abbiamo:

Doc, Dopey, Bashful, Grumpy, Sneezy, Sleepy and Happy, e vuoi organizzarli in base alle qualità, e lo hai fatto così:

(Lun'ctoSe iontolerun'ntUN Honor RollUNthletiocWeun'lthyDoc1011Dopey0000Bun'Shful1011solrumpy1111Sneezy0110Sleepy1000Hun'ppy1100)

Quindi, per esempio, Bashful è intollerante al lattosio e non nel tiro dell'onore. Questa è una matrice puramente ipotetica e la mia vera matrice avrà molte colonne più descrittive. La mia domanda è: sarebbe ancora appropriato fare PCA su questa matrice come mezzo per trovare la somiglianza tra gli individui?


1
Questa domanda è (quasi) un duplicato di quella . La PCA può essere eseguita su dati binari / booleani, ma l'esecuzione dell'analisi fattoriale (incluso la PCA "come se" fosse FA) su tali dati è problematica .
ttnphns,

1
Il PCA su dati binari come il tuo ("presente" vs "assente") verrebbe normalmente eseguito senza centrare le variabili perché non vi è motivo di suggerire l'origine (il punto di riferimento) diversa dall'originale 0. Quindi, invece di covarianza- o PCA basato sulla correlazione arriviamo a quello basato su SSCP o coseno . Tale analisi è molto simile, quasi equivalente all'analisi di corrispondenza multipla (= analisi di omogeneità) che potrebbe essere la scelta per te.
ttnphns,

a means of finding the similarity between individuals. Ma questo compito è per un'analisi del cluster, non per PCA.
ttnphns,

Risposta breve: la PCA lineare (se utilizzata come tecnica di riduzione della dimensionalità e non come tecnica variabile latente come analisi dei fattori) può essere utilizzata per dati in scala (metrici) o binari. La PCA semplice (lineare) non deve essere utilizzata, tuttavia, con dati ordinali o nominali, a meno che questi dati non vengano in qualche modo trasformati in metrici o binari (ad esempio fittizi).
ttnphns,

@ttnphns PCA può essere visto come un modo per raggruppare le variabili. Inoltre, la PCA e l'analisi dei cluster possono essere utilizzate in sequenza
Antoine,

Risposte:


12

Vorrei suggerire una tecnica relativamente recente per l'estrazione automatica della struttura da dati variabili categoriali (questo include binario). Il metodo si chiama CorEx di Greg van Steeg dell'Università della California del sud. L'idea è di usare il concetto di correlazione totale basato sulle misure di entropia. È attraente per la sua semplicità e nessuna messa a punto di un gran numero di iperparametri.

L'articolo sulle rappresentazioni gerarchiche (il più recente, si basa sulla parte superiore delle misure precedenti). http://arxiv.org/pdf/1410.7404.pdf


1
@AlvinNunez Prego! L'implementazione di Python è disponibile su GitHub github.com/gregversteeg/CorEx È davvero facile ottenere i tuoi dati e vedere cosa ne esce.
Vladislavs Dovgalecs,

13

Puoi anche utilizzare Multiple Corrispondence Analysis (MCA), che è un'estensione dell'analisi dei componenti principali quando le variabili da analizzare sono categoriche anziché quantitative (come nel caso delle variabili binarie). Vedi ad esempio Husson et al. (2010) o Abdi e Valentin (2007) . Un eccellente pacchetto R per eseguire MCA (e clustering gerarchico su PC) è FactoMineR .


1
Una risposta interessante, preferirei essere d'accordo. Sarà una grande risorsa se spieghi più in dettaglio il fenomeno del inflation of the feature spacee perché si verificherebbe in PCA e non in MCA.
ttnphns,

Ho frainteso il inflation of the feature spacefenomeno. Sembra che entri in gioco quando si passa dalla CA all'MCA, ma non è un problema inerente alla PCA. Rimuoverò la mia risposta quando avrai letto questo commento. Grazie per avermelo reso conto.
Antoine,

Non penso che tu debba rimuovere la risposta. MCA è una delle scelte giuste, per me, e la tua risposta va bene.
ttnphns,

Ho aggiunto la risposta perché penso che l'MCA possa essere utile qui, ma ho rimosso la discussione sull'inflazione dello spazio delle funzionalità poiché non sembrava rilevante
Antoine,

In che modo il risultato dell'MCA sui dati binari differisce dal risultato di un PCoA con una misura della distanza appropriata per i dati binari come Jaccard o la semplice corrispondenza?
emudrak,

9

Se pensi al PCA come una tecnica esplorativa per darti un modo per visualizzare le relazioni tra le variabili (e secondo me questo è l'unico modo di pensarci) allora sì, non c'è motivo per cui non puoi mettere in binario variabili. Ad esempio, ecco un biplot dei tuoi dati

inserisci qui la descrizione dell'immagine

Sembra ragionevolmente utile. Ad esempio, puoi vedere che Doc e Bashful sono molto simili; che le risorse umane sono piuttosto diverse dalle altre tre variabili; Sonnolenza e Sneezy sono molto diversi, ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.