19 votos

Agrupación de datos de tipo mixto con R

Me pregunto si es posible realizar dentro de R una agrupación de datos que tengan variables de datos mixtas. En otras palabras, tengo un conjunto de datos que contiene variables numéricas y categóricas y estoy buscando la mejor manera de agruparlas. En SPSS utilizaría un cluster de dos pasos. Me pregunto si en R puedo encontrar una técnica similar. Me han hablado del paquete poLCA, pero no estoy seguro...

1 votos

¿No es SPSS Dos Pasos diseñado para manejar grandes conjuntos de datos? (Aporto una respuesta a una pregunta relacionada aquí .) De lo contrario, ¿mi respuesta a ¿Puede aplicarse el análisis de componentes principales a conjuntos de datos que contienen una mezcla de variables continuas y categóricas? ¿ser de alguna ayuda?

0 votos

Dentro del paquete R grupo hay margarita que creará una matriz de disimilitud para los datos mixtos (coeficiente de similitud de Gower). A continuación, puede utilizar ?agnes u otras funciones de agrupación.

1 votos

No hay que confundir el método con la aplicación. Primero busca un algoritmo de agrupación que tenga sentido. Entonces busque un paquete R que lo implemente.

19voto

Rich Puntos 133

Dentro del paquete R grupo hay margarita que creará una matriz de disimilitud para datos mixtos. A continuación, puede utilizar ?agnes u otras funciones de agrupación.

8voto

user54905 Puntos 123

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

install.packages("klar")

Utiliza el algoritmo no jerárquico k-modes, que se basa en la coincidencia simple como función de distancia, por lo que la distancia δ entre una variable m de dos puntos de datos $x$ y $y$ viene dada por

$$ \delta(x_m,y_m) = \begin{cases} 1 & x_m \neq y_m,\\ 0 & \text{otherwise} \end{cases} $$

Hay un fallo en el paquete, que es que si dos puntos de datos tienen la misma distancia a un centro de cluster, se elige el primero de sus datos en lugar de un punto aleatorio, pero se puede modificar fácilmente el bit en el código.

Para tener en cuenta la agrupación de variables mixtas, tendrá que entrar en el código y modificar la función de distancia para identificar los modos y variables numéricos y no numéricos.

7voto

XGS Puntos 51

Otra forma atractiva de manejar variables de tipos mixtos es utilizar la matriz de proximidad/similitud de los bosques aleatorios: http://cogns.northwestern.edu/cbmg/LiawAndWiener2002.pdf . Esto facilita una forma unificada de tratar por igual todas las variables (no obstante, hay que tener en cuenta el problema del sesgo de selección de variables). Por otra parte, no existe una forma universal de definir la distancia para las variables de tipo mixto. Todo depende de los contextos de aplicación.

3voto

Amadiere Puntos 5606

Pues sí que se puede. Haciendo que las variables categóricas sean artificialmente numéricas. O utilizando una agrupación basada en la matriz de distancia (fpc probablemente pueda hacerlo). La pregunta que debería intentar responder primero es: ¿tiene realmente sentido?

1voto

Badri Puntos 31

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

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X