14 votos

Cómo encontrar agrupaciones (trayectorias) entre los datos longitudinales?

Contexto

Quiero establecer la escena antes de que algo expansión en la pregunta.

Tengo datos longitudinales, las mediciones realizadas en los sujetos aproximadamente cada 3 meses, el principal resultado es numérico (como en continuo, para 1dp) en el rango de 5 a 14, con la mayor parte (de todos los puntos de datos) entre 7 y 10. Si tengo que hacer un espagueti a la parcela (con la edad en el eje x y una línea para cada persona) es un desastre, obviamente, como he >1500 temas, pero hay un claro de la banda de rodadura hacia valores más altos con el aumento de la edad (y a esto se le conoce).

La pregunta más amplia: ¿Qué nos gustaría hacer es, en primer lugar, ser capaz de identificar las tendencias de los grupos (los que empiezan alta y estancia, para los que se inician bajo y se mantienen bajos, aquellos que se inician bajo y aumentar a la de alta, etc) y, a continuación, podemos ver a los factores individuales que se asocian con tendencia a grupo de pertenencia.

Mi pregunta aquí es específicamente relativas a la primera parte, la agrupación de tendencia.

Pregunta

  • ¿Cómo podemos grupo individual longitudinal de las trayectorias?
  • ¿Qué programas serían los adecuados para la aplicación de este?

He mirado en los Proc Traj en SAS y M-Plus sugerido por un colega, que estoy mirando, pero me gustaría saber qué otros pensamientos sobre esto.

11voto

Eggs McLaren Puntos 945

He usado el Mfuzz en R para la agrupación de cursos de tiempo de los conjuntos de datos de microarrays. Mfuzz utiliza "soft-clustering". Básicamente, los individuos pueden aparecer en más de un grupo.

Como @Andy señala en el comentario, el documento original utiliza CTN de datos. Sin embargo, sospecho que se debe trabajar bien para su discreta de datos. Especialmente puesto que usted está explorando el conjunto de datos. Aquí está un ejemplo rápido en R:

##It's a bioconductor package
library(Mfuzz)
library(Biobase)

## Simulate some data
## 6 time points and 90 individuals
tps = 6;cases = 90
d = rpois(tps*cases, 1)  ##Poisson distribution with mean 1
m = matrix(d, ncol=tps, nrow=cases)

##First 30 individuals have increasing trends
m[1:30,] = t(apply(m[1:30,], 1, cumsum))

##Next 30 have decreasing trends
##A bit hacky, sorry
m[31:60,] = t(apply(t(apply(m[31:60,], 1, cumsum)), 1, rev))

##Last 30 individuals have random numbers from a Po(1)

##Create an expressionSet object
tmp_expr = new('ExpressionSet', exprs=m)

##Specify c=3 clusters
cl = mfuzz(tmp_expr, c=3, m=1.25)
mfuzz.plot(tmp_expr,cl=cl, mfrow=c(2, 2))

Da el siguiente diagrama:

Mfuzz clustering

5voto

Niall Puntos 51

Yo esperaría que hay un MPLUS paquete para hacer lo que usted necesita. Hay un papel en Psychometrika sobre casi exactamente este tema

springerlink.com/content/25r110007g417187

a excepción de los datos es binario y las trayectorias de probabilidad de trayectorias. Los autores utilizan el análisis de clase latente (implementada mediante el uso de un penalizado finito modelo de mezcla) para el grupo de las trayectorias. También sé que el primer autor que escribió algunos otros papeles de alrededor de 10 años con Bengt Muthen (creador de MPLUS) sobre el análisis de clase latente en ambientes similares (con trayectorias). Por ejemplo,

http://onlinelibrary.wiley.com/doi/10.1111/j.0006-341X.1999.00463.x/abstract

suena muy similar a lo que estás hablando, excepto el resultado es binario. La continua caso es mucho más sencillo, así que me gustaría hacer una hacia atrás búsqueda de la literatura (es decir, de mirar a los papeles de estos documentos de referencia) para encontrar algo que coincide con lo que he descrito con más precisión.

Para obtener más información, usted puede pedir a los propietarios de MPLUS directamente lo paquete que usted necesita utilizar para hacer lo que usted necesita. Generalmente son bastante rápido para responder y son muy útiles:

http://www.statmodel.com/cgi-bin/discus/discus.cgi

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