En general, se trata de un problema difícil, sobre todo si se tiene en cuenta la restricción de conservar las posiciones relativas en el espacio 2D.
En ausencia de esa restricción, recomendaría un gráfico de barras apiladas. Con barras finas y un conjunto de datos ordenados, los colores pueden utilizarse fácilmente para indicar la probabilidad de pertenecer a diferentes grupos para un número bastante considerable de puntos. Este tipo de gráficos son habituales en la genética de poblaciones y pueden transmitir una gran cantidad de información útil, como en este ejemplo .
Si nos atenemos a la restricción de conservar las posiciones relativas en 2 dimensiones, se me ocurre una solución que podría funcionar para conjuntos de datos de tamaño modesto con un número reducido de clusters. En estos casos, se puede representar cada punto como una pequeña tarta; los segmentos de la tarta denotan la probabilidad de pertenecer a cada clúster.
Este es un ejemplo de trabajo con 3 clusters
# Loading required libraries
library(e1071)
library(ggplot2)
library(scatterpie)
# Generating data frame
dat <- data.frame(a = c(rnorm(50, mean = 10, sd = 3),
rnorm(50, mean = 20, sd = 3),
rnorm(50, mean = 30, sd = 3)),
b = c(rnorm(50, mean = 10, sd = 5),
rnorm(50, mean = 20, sd = 3),
rnorm(50, mean = 30, sd = 3)))
# Identifying clusters and calculating cluster probabilities using
# fuzzy c-means clustering
clustdat <- cmeans(dat, centers = 3)
# Adding cluster information to dataset
dat$clusters <- as.factor(clustdat$cluster)
dat$A <- clustdat$membership[,1]
dat$B <- clustdat$membership[,2]
dat$C <- clustdat$membership[,3]
# Plotting
ggplot() + geom_scatterpie(aes(a, b, group = clusters),
data = dat, cols = LETTERS[1:3])
Tenga en cuenta que esto también puede ser útil con >2 dimensiones, combinando esto con algún tipo de técnica de reducción de dimensión (para el trazado - la agrupación se puede hacer en el espacio multidimensional).
0 votos
Como el espacio de la percepción del color es tridimensional, y se sabe que el color es relativamente pobre en la representación de propiedades cuantitativas en primer lugar, esta cuestión parece un callejón sin salida. Parece más bien que se busca algún método eficaz para visualizar las probabilidades estimadas de pertenencia a más de tres clases. ¿Por qué no formular entonces una versión de la pregunta que sea más directamente relevante para su objetivo? ¿Hay alguna razón por la que esté empeñado en intentar utilizar el color?
1 votos
@whuber Tienes toda la razón, no sé por qué me quedé con los colores. Efectivamente busco cualquier tipo de representación que ayude a visualizar estas probabilidades.
1 votos
¿Qué tal un gráfico de barras apiladas?
0 votos
@mkt No veo la utilidad de eso si uno tiene un conjunto de datos grande. Estoy pensando en una barra por punto de datos, pero tal vez se refería a algo diferente?
1 votos
Sí, no funcionaría para los grandes. Pero puede funcionar para tamaños modestos, clasificando y trazando líneas muy finas. De forma análoga a los gráficos de ESTRUCTURA en genética de poblaciones, en los que cada color indica una población fuente diferente, por ejemplo g3journal.org/content/ggg/4/12/2389/F2.large.jpg
0 votos
@mkt Eso está muy bien, pero el problema es que usar eso implicaría perder información sobre a dónde pertenecen los puntos en el espacio 2D. Es decir, me gustaría que los puntos se colocaran en sus coordenadas correspondientes. Aunque no sé si sería posible conseguir lo que busco...
0 votos
@Tendero Es justo. Si tienes 2 dimensiones, también podrías trazar cada punto como una tarta muy pequeña. Pero de nuevo, no funciona bien para un gran número de puntos, aunque algo de transparencia podría ayudar un poco.
0 votos
Además, si es importante para ti mantener su posición en el espacio 2D, vale la pena editar tu pregunta para reflejarlo.
1 votos
@mkt Me ha gustado mucho el enfoque de la tarta. Si pudieras publicar algún código de ejemplo en R mostrando cómo hacerlo seguro que conseguirías la respuesta aceptada. Los conjuntos de datos con los que estoy tratando no son que grandes, 300 muestras como máximo.