¿Cómo agrupar variables longitudinales?

10

Tengo un montón de variables que contienen datos longitudinales desde el día 0 hasta el día 7. Estoy buscando un enfoque de agrupamiento apropiado que pueda agrupar estas variables longitudinales (no casos) en diferentes grupos. Traté de analizar este conjunto de datos por separado por tiempo, pero el resultado fue bastante difícil de explicar razonablemente.

Investigué la disponibilidad de un procedimiento SAS PROC SIMILARITYporque hay un ejemplo en su sitio web ; Sin embargo, creo que no es una forma correcta. Algunos estudios previos utilizaron análisis factoriales exploratorios en cada punto de tiempo, pero esta tampoco es una opción en mi estudio debido a los resultados irrazonables.

Con suerte, se pueden proporcionar algunas ideas aquí, y un programa compilado, como SAS o R, puede estar disponible para procesar. Cualquier sugerencia es apreciada !!


Aquí hay un breve ejemplo (perdón por la posición inconsistente entre los datos y los nombres de las variables):

id time   V1  V2   V3   V4   V5   V6   V7   V8   V9   V10
2    0    8    7    3    7    6    6    0    0    5    2
2    1    3    5    2    6    5    5    1    1    4    2
2    2    2    3    2    4    4    2    0    0    2    2
2    3    6    4    2    5    3    2    1    2    3    3
2    4    5    3    4    4    3    3    4    3    3    3   
2    5    6    4    5    5    6    3    3    2    2    2
2    6    7    5    2    4    4    3    3    4    4    5
2    7    7    7    2    6    4    4    0    0    4    3
4    0   10    7    0    2    2    6    7    7    0    9
4    1    8    7    0    0    0    9    3    3    7    8
4    2    8    7    0    0    0    9    3    3    7    8
4    3    8    7    0    0    0    9    3    3    7    8
4    4    5    7    0    0    0    9    3    3    7    8
4    5    5    7    0    0    0    9    3    3    7    8
4    6    5    7    0    0    0    9    3    3    7    8
4    7    5    7    0    0    0    9    3    3    7    8
5    0    9    6    1    3    2    2    2    3    3    5
5    1    7    3    1    3    1    3    2    2    1    3
5    2    6    4    0    4    2    4    2    1    2    4
5    3    6    3    2    3    2    3    3    1    3    4
5    4    8    6    0    5    3    3    2    2    3    4
5    5    9    6    0    4    3    3    2    3    2    5
5    6    8    6    0    4    3    3    2    3    2    5
5    7    8    6    0    4    3    3    2    3    2    5
cchien
fuente
¿Podría explicar los datos un poco más o tal vez proporcionar una muestra abreviada? Cuando dice que las "variables contienen datos longitudinales", quiere decir que todas son mediciones repetidas en la misma persona o cosa durante 7 días (y por lo tanto es probable que estén correlacionadas).
rosser
Para rosser: he añadido una parte de los datos. Como mencionó, son mediciones repetidas: cada paciente (ID) tiene 10 mediciones (V1 ~ V10) que duran varios días (día0 ~ día7).
cchien el

Respuestas:

5

En el Hmiscpaquete R , vea el archivo de ayuda para la curveRepfunción, que significa "curvas representativas". curveRepagrupaciones en formas curvas, ubicaciones y patrones de puntos de tiempo perdidos.

Frank Harrell
fuente
Gracias por su consejo. Suena factible. Leeré su manual de inmediato.
cchien 01 de
Franco. El ejemplo en el manual no parece funcionar. ¿Hay un error tipográfico? Quería seguir el ejemplo para tener una idea. Aquí está el código: set.seed (1) N <- 200 nc <- sample (1:10, N, TRUE) id <- rep (1: N, nc) x <- y <- id for (i in 1: N) {x [id == i] <- if (iy [id == i] <- i + 10 * (x [id == i] - .5) + runif (nc [i], - 10, 10)}
B_Miner
1
Whoops Olvidé que era necesario escapar un signo de porcentaje en un archivo de ayuda de R. Esto provocó que una línea en el ejemplo se truncara. Reemplace la línea incompleta con: x[id==i] <- if(i %% 2) runif(nc[i]) else runif(nc[i], c(.25, .75))
Frank Harrell
No estoy seguro de qué significa "p: número de puntos en los que evaluar cada curva para la agrupación" en curvaRep (x, y, id, kxdist = 2, p = 10)
greg121
1
pag>3pag=10pag
5

No estoy seguro de que sea lo que está buscando, pero el paquete kmlen R usa k-means para agrupar secuencias de medidas repetidas. Aquí hay un enlace a la página del paquete y al documento (desafortunadamente, está cerrado). Solo funciona bien si tiene un conjunto de datos bastante pequeño (unos pocos cientos de secuencias).

Aquí hay una versión no cerrada del documento (sin problemas de referencia): http://christophe.genolini.free.fr/recherche/aTelecharger/genolini2011.pdf

Antoine Vernet
fuente
De hecho, revisé este método antes de publicar esta pregunta. Asumí que el enfoque kml es una forma de agrupamiento de individuos de algunos ejemplos de su artículo original. Lo echaré un vistazo de nuevo. ¡¡Gracias!!
cchien el
@ccchien sí, lo usan para agrupar trayectorias individuales, pero podría suponer que tiene diez trayectorias por individuo (una para cada una de sus variables). Probablemente necesite normalizar sus variables para que el procedimiento kml funcione correctamente. El problema es que, hasta donde yo sé, no hay forma de decirle a kml que sus trayectorias están anidadas en individuos. Por lo tanto, podría no ajustarse exactamente a lo que está tratando de lograr.
Antoine Vernet
@ greg121, gracias por el enlace a la versión disponible gratuitamente del documento. Parece que las referencias en el texto se han eliminado, tal vez el archivo Latex debería volver a compilarse una vez más (aunque la lista de referencias está allí).
Antoine Vernet
@AntoineVernet sí, tienes razón. Pero no pude encontrar ninguna otra versión
greg121
4

Entonces, tienes p variables medidas cada t veces en los mismos n individuos. Una forma de proceder es calcular las matrices de similitud de t pXp (dis) similitud y aplicar el escalamiento multidimensional del modelo INDSCAL. Le dará dos mapas de baja dimensión (digamos, de 2 dimensiones). El primer mapa muestra las coordenadas de p variables en el espacio de las dimensiones y refleja agrupaciones entre ellas, si las hay. El segundo mapa muestra los pesos (es decir, importancia o importancia) de las dimensiones en cada matriz de t .

ingrese la descripción de la imagen aquí

ttnphns
fuente
También tengo la idea de convertir n-dimension a 2-dimension, pero simplemente no tengo idea de un método específico que pueda lograr esto. Ahora descubrí que SAS puede tener un procedimiento para implementarlo. Lo aprenderé a ver su disponibilidad cuando use mis datos.
cchien el
¿Cuál es la mejor manera de interpretar los pesos?
Ming K
El peso muestra cuánto es relevante o discriminatoria una dimensión para esta fuente en particular (las fuentes son individuos o, como en este ejemplo, los tiempos). En la imagen para el tiempo1, por ejemplo, la dimensión II es fuerte o relevante y la dimensión I es débil.
ttnphns