[R-es] Representar datos longitudinales mediante splines

Francisco Javier iterador10 en hotmail.com
Jue Mar 3 21:35:57 CET 2016


Buenas noches a todos,


Me dirijo a vosotros porque estoy trabajando con medidas repetidas sobre un grupo de sujetos y quisiera graficar la evolución temporal de cada uno de ellos pero suavizada mediante un spline (o en su defecto algún tipo de línea suavizadora que no necesariamente tenga que pasar por los puntos de cada sujeto). Además, quisiera hacerlo en R básico, esto es, sin recurrir al uso de paquetes adicionales tipo lattice,  ggplot2.


A modo de ejemplo, tengo el siguiente data frame:


df <- data.frame(

                id = factor(rep(c(1,2,3), c(3,4,3))),
                x = c( 1, 14, 22,  2, 9,  20, 25,  4,  15,  22),
                y = c(35, 28, 52, 79, 64, 70, 95, 45, 102, 105))


E intento (sin conseguir resultado):


plot(df$x, df$y, xlab = "time", ylab="value", type="n", xlim = c(0,25), ylim=c(20,120))
for(i in unique(df$id)) {
 lines(lowess(df$x[df$id == i], df$y[df$id == i], col = df$id))  }
points(x = df$x, y = df$y, pch=16, col = df$id)              # Los datos asociados a cada id con un color de referencia
title("Scatter Plot of value vs. time")


¡Muchas gracias por cualquier ayuda al respecto!


Francisco

	[[alternative HTML version deleted]]



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