我尝试将逆概率权重应用于回归,但lm()
仅使用分析权重。这是复制的一部分,我正在处理原作者在Stata中使用pweight
的位置,但我试图在R中复制它。分析权重提供较低的标准错误,这是导致我的一些变量出现问题。
我已尝试查看survey
包,但不确定如何准备调查对象以用于svyglm()
。这是我想要的方法,还是有更简单的方法来应用反向概率权重?
dput:
data <- structure(list(lexptot = c(9.1595012302023, 9.86330744180814,
8.92372556833205, 8.58202430280175, 10.1133857229336), progvillm = c(1L,
1L, 1L, 1L, 0L), sexhead = c(1L, 1L, 0L, 1L, 1L), agehead = c(79L,
43L, 52L, 48L, 35L), weight = c(1.04273509979248, 1.01139605045319,
1.01139605045319, 1.01139605045319, 0.76305216550827)), .Names = c("lexptot",
"progvillm", "sexhead", "agehead", "weight"), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -5L))
线性模型(使用分析权重)
prog.lm <- lm(lexptot ~ progvillm + sexhead + agehead, data = data, weight = weight)
summary(prog.lm)
答案 0 :(得分:4)
好吧,所以我想出来,并认为我会更新帖子,其他人试图弄明白。它实际上非常简单。
data$X <- 1:nrow(data)
des1 <- svydesign(id = ~X, weights = ~weight, data = data)
prog.lm <- svyglm(lexptot ~ progvillm + sexhead + agehead, design=des1)
summary(prog.lm)
标准错误现在正确无误。