"Gewichtete" Regression in R
Ich habe ein Skript wie das folgende erstellt, um etwas zu tun, das ich als "gewichtete" Regression bezeichnet habe:
<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>
Sie können das in sehentemp.df
Jede Reihe hat ihr Gewicht, was ich damit meine ist, dass es insgesamt 1178 Stichproben gibt, aber für Reihen mit denselbenbp
undage
, werden sie in 1 Zeile zusammengeführt und in der dargestelltweight
Säule.
Ich habe das benutztweight
Parameter in derlm
Funktion, dann überprüfe ich das Ergebnis mit einem anderen Datenrahmen, der dietemp.df
Datenrahmen ist "erweitert". Aber ich habe das gefundenlm
Ausgänge unterschiedlich für die 2 Datenrahmen.
Habe ich das falsch interpretiert?weight
Parameter inlm
funktionieren, und kann mir jemand mitteilen, wie ich die Regression für ein wie dargestelltes Dataset ordnungsgemäß ausführen kann (d. h. ohne den Datenrahmen manuell zu erweitern)temp.df
? Vielen Dank.