Regresión “ponderada” en R
He creado un script como el que se muestra a continuación para hacer algo que llamé como regresión "ponderada":
<code>library(plyr) set.seed(100) temp.df <- data.frame(uid=1:200, bp=sample(x=c(100:200),size=200,replace=TRUE), age=sample(x=c(30:65),size=200,replace=TRUE), weight=sample(c(1:10),size=200,replace=TRUE), stringsAsFactors=FALSE) temp.df.expand <- ddply(temp.df, c("uid"), function(df) { data.frame(bp=rep(df[,"bp"],df[,"weight"]), age=rep(df[,"age"],df[,"weight"]), stringsAsFactors=FALSE)}) temp.df.lm <- lm(bp~age,data=temp.df,weights=weight) temp.df.expand.lm <- lm(bp~age,data=temp.df.expand) </code>
Puedes ver eso entemp.df
, cada fila tiene su peso, lo que quiero decir es que hay un total de 1178 muestras pero para filas con la mismabp
yage
, se fusionan en 1 hilera y se representan en laweight
columna.
Usé elweight
parámetros en ellm
función, luego verifico el resultado con otro marco de datos que eltemp.df
El marco de datos está "expandido". Pero encontré ellm
Salidas diferentes para los 2 marcos de datos.
¿Malinterpreté elweight
parámetros enlm
función, y ¿puede alguien decirme cómo ejecuto la regresión correctamente (es decir, sin expandir el marco de datos manualmente) para un conjunto de datos presentado comotemp.df
? Gracias.