«Взвешенная» регрессия в R

Я создал скрипт, подобный приведенному ниже, для выполнения чего-то, что я назвал & quot; взвешенным & quot; регрессии:

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

Вы можете увидеть это вtemp.dfкаждая строка имеет свой вес, что я имею в виду, что в общей сложности 1178 выборок, но для строк с одинаковымиbp а такжеage, они объединяются в 1 строку и представлены вweight колонка.

Я использовалweight параметры вlm функции, а затем я проверяю результат с другим фреймом данных, чтоtemp.df фрейм данных "расширен". Но я нашелlm выходные данные разные для 2-го кадра данных.

Я неправильно истолковалweight параметры вlm может ли кто-нибудь дать мне знать, как правильно запустить регрессию (то есть, не расширяя фрейм данных вручную) для набора данных, представленного какtemp.df? Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос