[R-es] Remuestreo de Clusters

Carlos J. Gil Bellosta gilbellosta en gmail.com
Mie Jun 24 18:49:48 CEST 2009


Hola, ¿qué tal?

Hay algo que no entiendo dado que en cada iteración creas una nueva
partición del espacio (una nueva llamada a kmeans). Algo se me escapa
porque no veo qué relación guarda el cluster con la etiqueta "i" entre
cada una de las iteraciones...

Un saludo,

Carlos J. Gil Bellosta

El 24 de junio de 2009 17:50, Jorge Ivan
Velez<jorgeivanvelez en gmail.com> escribió:
> Buenos dias para todos,
> Estoy trabajando en una aplicación que involucra análisis de clusters.
> Básicamente el objetivo es determinar a qué cluster pertenece cada
> observación de una matriz de datos "mydata" y luego generar muestras
> aleatorias de los mismos datos para determinar la proporción de veces que
> cada observación es clasificada en el cluster k.
>
> Este tipo de análisis es muy común en aplicaciones de Phylogeny <
> http://en.wikipedia.org/wiki/Phylogeny>
>
> Suponiendo que el método de cluster a utilizar es fijo y que de alguna
> manera se determinó que el número de clusters óptimo, conocen alguna
> libreria en R que permita hacer lo que describo?
>
> Este es un ejemplo en R en el que utilizo ksmeans y 7 clusters
>
> # Data set
> set.seed(123)
> mydata <- matrix(rnorm(100*10), ncol=10)
> colnames(mydata) <- paste('X', 1:10, sep="")
> rownames(mydata) <- paste('s', 1:100, sep="")
>
> # Función para determinar el cluster al que
> # pertenece cada muestra s_i
> foo <- function(X, k = 7){
>      x <- X[sample(nrow(X)),]
>      rx <- rownames(x)
>      cluster <- kmeans(x, k)$cluster
>      names(cluster) <- rx
>      cluster[rownames(X)]
>         }
>
> # Repitiendo foo 1000 veces
> N <- 1000
> res <- replicate(N, foo(mydata))
>
> # Dandole un nuevo formato a la salida de res
> grupos <- t(apply(res, 1, function(x){
>              x <- factor(x, levels = 1:7)
>              table(x)
>               }
>      )
>  ) /1000
> head(grupos)
>
> Al trabajar con datos completamente aleatorios, se espera que las
> proporciones de los grupos sea similares. En este caso el valor cluster
> donde la proporción es mayor puede ser obtenido como:
>
> apply(grupos, 1, which.max)
>
>
> Muchas gracias,
>
> Jorge Ivan Velez
>
>        [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>



Más información sobre la lista de distribución R-help-es