具有随机效应的R加权面板回归

时间:2015-03-22 17:22:56

标签: r

有没有办法使用权重选项估算R中的随机效果面板线性回归

对于固定效果,我可以简单地使用

lm(y ~ x + factors(id_variable), weights=wgt)

然而,我正在寻找RE,因为个人数量太大而且达到了记忆限制。

由于调查数据类型

,需要加权

如果R中没有,是否可以 stata SAS

1 个答案:

答案 0 :(得分:2)

在我的(有限的)经验调查中,多级模型的权重是一堆蠕虫(我主要遵循Andrew Gelman对此的看法,例如this paperthis blog post about it;这里是(未答复的){{3关于这个话题)。换句话说,在担心计算问题之前,您可能必须解决统计问题(处理此问题的正确方法是什么?)。

我确实认为Stata和/或SAS提供了这样的功能(请参阅上面的CrossValidated链接),但我不能告诉你很多。

但是,如果您不想要/需要随机效果,即您只想处理大量固定效果的问题,您应该能够像CrossValidated question中那样使用稀疏模型矩阵,如下例所示。

你仍然需要弄清楚如何处理权重。我不认为weights=lmglm等中的lme4参数处理调查权重。我相信survey包非常复杂,但我不知道它的surveyglm()函数是否可以处理/有稀疏模型矩阵的选项......

library("Matrix")
library("MatrixModels")
set.seed(101)
ngrps <- 1e3
nobs <- 10
ntot <- nobs*ngrps
d <- data.frame(y=rnorm(ntot),
                x=rnorm(ntot),
                f=gl(ngrps,nobs))
object.size(X1 <- model.matrix(~x+f,data=d))  ## 80 MB
object.size(X2 <- sparse.model.matrix(~x+f,data=d))  ## 709K
system.time(m1 <- MatrixModels:::lm.fit.sparse(X2,d$y)) ## 0.004 seconds
system.time(m2 <- lm.fit(X1,d$y))  ## 9 seconds