"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.dfJede 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.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage