PCA fonctionnerait-il pour les types de données booléens (binaires)?

38

Je souhaite réduire la dimensionnalité des systèmes d'ordre supérieur et capturer l'essentiel de la covariance sur un champ de préférence à 2 dimensions ou à 1 dimension. Je comprends que cela peut être fait via l’analyse en composantes principales et j’ai utilisé PCA dans de nombreux scénarios. Cependant, je ne l'ai jamais utilisé avec des types de données booléens et je me demandais s'il était utile de réaliser une analyse PCA avec cet ensemble. Ainsi, par exemple, supposez que j'ai des métriques qualitatives ou descriptives, et j'attribue un "1" si cette métrique est valide pour cette dimension, et un "0" si ce n'est pas le cas (données binaires). Ainsi, par exemple, supposez que vous essayez de comparer les Sept Nains dans Blanche-Neige. On a:

Doc, Dopey, Bashful, Grumpy, Sneezy, Sleepy et Happy, et vous voulez les arranger en fonction de vos qualités et vous l'avez fait tel quel:

(Lactose IntolerantA Honor RollAthleticWealthyDoc1011Dopey0000Bashful1011Grumpy1111Sneezy0110Sleepy1000Happy1100)

Ainsi, par exemple, Bashful est intolérant au lactose et non inscrit au tableau d'honneur A. Ceci est une matrice purement hypothétique, et ma vraie matrice aura beaucoup plus de colonnes descriptives. Ma question est la suivante: serait-il toujours approprié d’utiliser PCA sur cette matrice pour trouver la similitude entre les individus?

Alvin Nunez
la source
1
Cette question est (presque) une copie de celle-ci . La PCA peut être réalisée sur des données binaires / booléennes, mais effectuer une analyse factorielle (y compris la PCA "comme si" est FA) sur de telles données est problématique .
ttnphns
1
La PCA sur des données binaires telles que les vôtres ("présent" vs "absent") serait normalement exécutée sans centrer les variables car il n'y avait aucune raison de suggérer l'origine (le point de référence) autre que le 0 d'origine. Donc, au lieu de covariance- ou PCA basée sur la corrélation, nous arrivons à celle basée sur le SSCP ou le cosinus . Cette analyse est très similaire, presque équivalente à l’analyse des correspondances multiples (= analyse d’homogénéité) qui pourrait être votre choix.
ttnphns
a means of finding the similarity between individuals. Mais cette tâche est destinée à une analyse de cluster, pas à la PCA.
ttnphns
Réponse courte: une ACP linéaire (si elle est considérée comme une technique de réduction de dimensionnalité et non comme une technique de variable latente comme une analyse factorielle) peut être utilisée pour des données d'échelle (métrique) ou binaires. Une ACP simple (linéaire) ne doit cependant pas être utilisée avec des données ordinales ou des données nominales - à moins que ces données ne soient converties en mesures métriques ou binaires (par exemple, factices).
ttnphns
@ttnphns PCA peut être considéré comme un moyen de regrouper des variables. En outre, l' APC et l' analyse du cluster peuvent être utilisés en séquence
Antoine

Réponses:

12

Je voudrais vous suggérer une technique relativement récente pour l'extraction automatique de structure à partir de données de variable catégorielle (y compris binaire). La méthode s'appelle CorEx de Greg van Steeg de l'Université de Californie du Sud. L'idée est d'utiliser la notion de corrélation totale basée sur les mesures d'entropie. Il est attrayant en raison de sa simplicité et de l’absence de réglage d’un grand nombre d’hyperparamètres.

Le document sur les représentations hiérarchiques (le plus récent, construit sur le dessus des mesures précédentes). http://arxiv.org/pdf/1410.7404.pdf

Vladislavs Dovgalecs
la source
1
@AlvinNunez de rien! L'implémentation en python est disponible sur GitHub github.com/gregversteeg/CorEx. Il est très facile d'obtenir vos données et de voir ce qui en sort.
Vladislavs Dovgalecs
13

Vous pouvez également utiliser l'analyse des correspondances multiples (MCA), extension de l'analyse en composantes principales lorsque les variables à analyser sont catégoriques au lieu d'être quantitatives (ce qui est le cas ici avec vos variables binaires). Voir par exemple Husson et al. (2010) ou Abdi et Valentin (2007) . FactoMineR est un excellent progiciel R permettant d'effectuer des MCA (et une mise en cluster hiérarchique sur des PC) .

Antoine
la source
1
Une réponse intéressante, je suis plutôt d'accord avec elle. Cela vous sera très utile si vous expliquez plus en détail le phénomène de la inflation of the feature spaceet pourquoi il se produirait dans PCA et non dans MCA.
ttnphns
J'ai mal compris le inflation of the feature spacephénomène. Cela semble entrer en jeu lors du passage de CA à MCA, mais ce n’est pas un problème inhérent à la PCA. Je vais retirer ma réponse lorsque vous aurez lu ce commentaire. Merci de me l'avoir fait comprendre.
Antoine
Je ne pense pas qu'il faille enlever la réponse. La MCA est pour moi un choix judicieux et votre réponse est satisfaisante.
ttnphns
J'ai ajouté la réponse parce que je pense que MCA pourrait être utile ici, mais j'ai supprimé la discussion sur l'inflation de l'espace des fonctionnalités car elle ne semblait pas être pertinente
Antoine
En quoi le résultat de MCA sur des données binaires diffère-t-il du résultat d'un PCoA avec une mesure de distance appropriée pour des données binaires telles que Jaccard ou une correspondance simple?
emudrak
9

Si vous considérez l’ACP comme une technique exploratoire pour vous donner un moyen de visualiser les relations entre les variables (et à mon avis, c’est le seul moyen d’y réfléchir), alors oui, il n’ya aucune raison pour que vous ne puissiez pas mettre en binaire variables. Par exemple, voici un biplot de vos données

entrez la description de l'image ici

Cela semble raisonnablement utile. Par exemple, vous pouvez voir que Doc et Bashful sont très similaires; que les ressources humaines sont assez différentes des trois autres variables; Sleepy et Sneezy sont très différents, etc.

Flet
la source