„Ważona” regresja w R

Stworzyłem skrypt podobny do poniższego, aby zrobić coś, co nazwałem regresją „ważoną”:

<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>

Możesz to zobaczyć wtemp.df, każdy wiersz ma swoją wagę, mam na myśli to, że jest w sumie 1178 próbek, ale dla wierszy z tym samymbp iage, są scalane w 1 wiersz i reprezentowane wweight kolumna.

Użyłemweight parametry wlm funkcji, a następnie sprawdzam wynik z inną ramką danych, którątemp.df ramka danych jest „rozwinięta”. Ale znalazłemlm wyjścia różne dla 2 ramek danych.

Czy źle zinterpretowałemweight parametry wlm funkcji i czy ktoś może mi powiedzieć, jak prawidłowo uruchomić regresję (tj. bez ręcznego rozwijania ramki danych) dla prezentowanego zestawu danychtemp.df? Dzięki.

questionAnswers(1)

yourAnswerToTheQuestion