¿Funcionaría PCA para los tipos de datos booleanos (binarios)?

38

Quiero reducir la dimensionalidad de los sistemas de orden superior y capturar la mayor parte de la covarianza en un campo preferiblemente bidimensional o unidimensional. Entiendo que esto se puede hacer a través del análisis de componentes principales, y he usado PCA en muchos escenarios. Sin embargo, nunca lo he usado con tipos de datos booleanos, y me preguntaba si es significativo hacer PCA con este conjunto. Entonces, por ejemplo, imagine que tengo métricas cualitativas o descriptivas, y asigno un "1" si esa métrica es válida para esa dimensión, y un "0" si no lo es (datos binarios). Entonces, por ejemplo, imagina que estás tratando de comparar a los Siete Enanitos en Blancanieves. Tenemos:

Doc, Dopey, Bashful, Grumpy, Sneezy, Sleepy and Happy, y desea organizarlos en función de sus cualidades, y lo hizo así:

(Lactose IntolerantA Honor RollAthleticWealthyDoc1011Dopey0000Bashful1011Grumpy1111Sneezy0110Sleepy1000Happy1100)

Entonces, por ejemplo, Bashful es intolerante a la lactosa y no está en la lista de honor A. Esta es una matriz puramente hipotética, y mi matriz real tendrá muchas más columnas descriptivas. Mi pregunta es, ¿sería apropiado hacer PCA en esta matriz como un medio para encontrar la similitud entre los individuos?

Alvin Nunez
fuente
1
Esta pregunta es (casi) un duplicado de esa . El PCA se puede hacer en datos binarios / booleanos, pero hacer un análisis factorial (incluido el PCA "como si" fuera FA) en dichos datos es problemático .
ttnphns
1
PCA en datos binarios como el suyo ("presente" vs "ausente") normalmente se realizaría sin centrar las variables porque no hay razón para sugerir el origen (el punto de referencia) que no sea el 0. original Entonces, en lugar de covarianza o PCA basado en correlación llegamos a SSCP o coseno . Tal análisis es muy similar, casi equivalente al análisis de correspondencia múltiple (= análisis de homogeneidad) que podría ser la opción para usted.
ttnphns
a means of finding the similarity between individuals. Pero esta tarea es para un análisis de Cluster, no para PCA.
ttnphns
Respuesta corta: PCA lineal (si se toma como técnica de reducción de dimensionalidad y no como técnica de variable latente como análisis factorial) puede usarse para datos de escala (métricos) o binarios. Sin embargo, el PCA simple (lineal) no debe usarse con datos ordinales o datos nominales, a menos que estos datos se conviertan en métricos o binarios (por ejemplo, ficticios) de alguna manera.
ttnphns
@ttnphns PCA puede verse como una forma de agrupar variables. Además, la PCA y el análisis de conglomerados se pueden usar en secuencia
Antoine

Respuestas:

12

Me gustaría sugerirle una técnica relativamente reciente para la extracción automática de estructuras a partir de datos variables categóricos (esto incluye binarios). El método se llama CorEx de Greg van Steeg de la Universidad del Sur de California. La idea es utilizar la noción de correlación total basada en las medidas de entropía. Es atractivo debido a su simplicidad y sin ajuste de gran cantidad de hiperparámetros.

El documento sobre representaciones jerárquicas (el más reciente, se basa en la parte superior de las medidas anteriores). http://arxiv.org/pdf/1410.7404.pdf

Vladislavs Dovgalecs
fuente
1
@AlvinNunez ¡De nada! La implementación de Python se puede encontrar en GitHub github.com/gregversteeg/CorEx Realmente fácil ingresar sus datos y ver qué sale.
Vladislavs Dovgalecs
13

También puede usar el Análisis de correspondencia múltiple (MCA), que es una extensión del análisis de componentes principales cuando las variables que se analizarán son categóricas en lugar de cuantitativas (que es el caso aquí con sus variables binarias). Ver por ejemplo Husson et al. (2010) , o Abdi y Valentin (2007) . FactoMineR es un excelente paquete de R para realizar MCA (y agrupamiento jerárquico en PC) .

Antoine
fuente
1
Una respuesta interesante, prefiero estar de acuerdo con eso. Será de gran utilidad si explica con más detalle el fenómeno inflation of the feature spacey por qué ocurriría en PCA y no en MCA.
ttnphns
No entendí el inflation of the feature spacefenómeno. Parece que entra en juego cuando se pasa de CA a MCA, pero no es un problema inherente de PCA. Voy a eliminar mi respuesta cuando haya leído este comentario. Gracias por hacerme darme cuenta de eso.
Antoine
No creo que tenga que eliminar la respuesta. MCA es una de las opciones correctas, para mí, y su respuesta está bien.
ttnphns
Agregué la respuesta porque creo que MCA podría ser útil aquí, pero eliminé la discusión sobre la inflación del espacio de características ya que no parecía ser relevante
Antoine
¿Cómo diferiría el resultado de MCA en datos binarios del resultado de un PCoA con una medida de distancia apropiada para datos binarios como Jaccard o simple coincidencia?
emudrak
9

Si piensas en PCA como una técnica exploratoria para darte una manera de visualizar las relaciones entre variables (y en mi opinión, esta es la única forma de pensarlo), entonces sí, no hay razón por la que no puedas poner en binario variables Por ejemplo, aquí hay un biplot de sus datos

ingrese la descripción de la imagen aquí

Parece razonablemente útil. Por ejemplo, puedes ver que Doc y Bashful son muy similares; que HR es bastante diferente de las otras tres variables; Sleepy and Sneezy son muy diferentes, etc.

Flounderer
fuente