我創建了一個腳本,如下面的人做的東西我稱之爲「加權」迴歸:在R「加權」迴歸
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)
你可以看到,在temp.df
,每一行都有它的重量,什麼我的意思是總共有1178個樣本,但對於行數相同的bp
和age
,它們合併爲1行,並在weight
列中表示。
我用weight
參數在lm
功能,然後我交叉與另一個數據幀,該數據幀temp.df
被「膨脹」檢查結果。但是我發現2個數據幀的輸出不同lm
。
難道我誤解在lm
功能weight
參數,任何人都可以讓我知道我如何運行迴歸正常(即無需手動擴展數據幀)爲呈現像temp.df
數據集呢?謝謝。
這兩個迴歸對我來說產生相同的結果。 – 2012-04-22 14:25:55
查看'summary'輸出,它們不同 – lokheart 2012-04-22 14:26:49
係數相同,但p值確實不同。我猜想會發生以下情況。當你擴展數據時,觀察被認爲是獨立的:由於有大量數據,你可以對估計非常有信心,並且P值低。當使用權重時,觀測值的數量仍然很小,並且p值很高。 – 2012-04-22 14:32:57