«Взвешенная» регрессия в 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
? Благодарю.