Regressão “ponderada” em R

Eu criei um script como o abaixo para fazer algo que chamei de regressão "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>

Você pode ver isso emtemp.df, cada linha tem seu peso, o que quero dizer é que há um total de 1178 amostras, mas para linhas com o mesmobp eage, eles são mesclados em uma linha e representados noweight coluna.

Eu usei oweight parâmetros nolm função, então eu cruzar o resultado com outro dataframe que otemp.df O dataframe é "expandido". Mas eu encontrei olm saídas diferentes para o 2 dataframe.

Eu interpretei mal oweight parâmetros emlm função, e alguém pode me deixar saber como executar a regressão corretamente (ou seja, sem expandir o dataframe manualmente) para um conjunto de dados apresentado comotemp.df? Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion