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.

Respuestas a la pregunta(1)

Su respuesta a la pregunta