Agrupación de datos de tipo mixto con R

19

Me pregunto si es posible realizar dentro de R una agrupación de datos con variables de datos mixtas. En otras palabras, tengo un conjunto de datos que contiene variables numéricas y categóricas dentro y estoy encontrando la mejor manera de agruparlas. En SPSS, usaría un clúster de dos pasos. Me pregunto si en R puedo encontrar técnicas similares. Me dijeron sobre el paquete poLCA, pero no estoy seguro ...

Giorgio Spedicato
fuente
1
¿No está diseñado SPSS TwoStep para manejar grandes conjuntos de datos? (Proporciono una respuesta a una pregunta relacionada aquí ). De lo contrario, ¿respondería mi respuesta a ¿Se puede aplicar el análisis de componentes principales a conjuntos de datos que contienen una combinación de variables continuas y categóricas? ser de alguna ayuda?
chl
Dentro del grupo de paquetes R hay una margarita que creará una matriz de disimilitud para datos mixtos (coeficiente de similitud de Gower). Entonces puede usar ? Agnes u otras funciones de agrupación.
Rhonda
1
No confunda el método con la implementación. Primero busque un algoritmo de agrupación que tenga sentido. Luego busque un paquete R que lo implemente.
shadowtalker
Se puede usar la similitud de Gower .
ttnphns
@gung cerró recientemente una pregunta muy similar que hice. Me dijeron que mi pregunta estaba fuera de tema porque se trataba principalmente de software. Esto parece ser similar sobre el software. Me interesaría saber por qué las reglas aquí se aplican de manera inconsistente. Eso sí, creo que la pregunta es informativa, pero las reglas deberían ser las reglas.
Weiwen Ng

Respuestas:

8

Esto puede llegar tarde pero intente klaR ( http://cran.r-project.org/web/packages/klaR/index.html )

install.packages("klar")

Utiliza el algoritmo de modos k no jerárquicos, que se basa en la coincidencia simple como una función de distancia, por lo que la distancia δ entre una variable m de dos puntos de datos e y viene dada porxy

δ(xm,ym)={1xmym,0otherwise

Existe una falla con el paquete, es decir, si dos puntos de datos tienen la misma distancia a un centro de clúster, se elige el primero en sus datos en lugar de un punto aleatorio, pero puede modificar fácilmente el bit en el código.

Para acomodar el agrupamiento de variables mixtas, deberá ingresar al código y modificar la función de distancia para identificar modos y variables numéricos y no numéricos.

victor_v
fuente
7

Otra forma atractiva de manejar variables de tipos mixtos es usar la matriz de proximidad / similitud de Random Forests: http://cogns.northwestern.edu/cbmg/LiawAndWiener2002.pdf . Esto facilita una forma unificada de tratar por igual todas las variables (sin embargo, tenga en cuenta el problema del sesgo de selección de variables). Por otro lado, realmente no existe una forma universal de oro de definir la distancia para variables de tipos mixtos. Todo depende de los contextos de la aplicación.

XGS
fuente
4

Puede usar el análisis de correspondencia múltiple para crear dimensiones continuas a partir de las variables categóricas y luego usarlas con las variables numéricas en un segundo paso.

ftr
fuente
1
¿Cómo tratarías las variables numéricas en MCA? ¿Usando discretización?
chl
Hay extensiones de MCA que pueden incluir variables continuas, ver por ejemplo análisis de homogeneidad homals
kjetil b halvorsen
3

Bueno, ciertamente puedes. Al hacer que las variables categóricas sean artificialmente numéricas. O usando una agrupación basada en matriz de distancia (fpc probablemente puede hacer eso). La pregunta que primero debe intentar responder es: ¿tiene sentido?

Anony-Mousse -Reinstate a Monica
fuente
3

jk

SG=i=1nwi,j,ksi,j,ki=1nwi,j,k
i

wi,j,k

si,j,k

  • wi,j,k

  • caracteres multiestado (nominal u ordinal): 1 para igualdad, 0 más (equivalente al coeficiente de coincidencia simple)

  • si,j,k=1|Xi,jXi,k|RiRii

SG

1SG

Engelbert Buxbaum
fuente
¿Puedes definir qué es "carácter" (y "carácter cardinal") en tu respuesta? ¿Con eso te refieres a variable / atributo / característica? Además, podría agregar que Gower se puede calcular para variables ordinales sin tratarlas como nominales ("multiestado"), ver .
ttnphns
Caracter, variable, característica son todos sinónimos. Cardinal significa intervalo o escala racional.
Engelbert Buxbaum
Gracias por aclararlo. Solo pregunté porque su terminología aparentemente no es muy común en estadística o aprendizaje automático: el "carácter" es inusual, y lo que usted llama tipo de variable "cardinal" se conoce típicamente como variable "escala", también conocida como variable "métrica", en oposición a categórica .
ttnphns
1

Si los valores posibles de las variables categóricas no son demasiados, entonces puede pensar en crear variables binarias a partir de esos valores. Puede tratar estas variables binarias como variables numéricas y ejecutar su agrupación. Eso es lo que hice para mi proyecto.

Raghvendra
fuente
0

VarSelLCM ofertas de paquetes

Selección de variables para la agrupación basada en modelos de conjuntos de datos de tipo mixto con valores perdidos

Sobre CRAN , y se describe más en papel .

La ventaja sobre algunos de los métodos anteriores es que ofrece algo de ayuda en la elección del número de clústeres y maneja los datos faltantes. Buena aplicación brillante siempre no es mal vista.

ingrese la descripción de la imagen aquí

radek
fuente