R调查包中的多路聚类标准错误

Multi-way clustered standard errors in R survey package

我想在 R 中使用调查权重对多个级别的标准误差进行聚类。 Lumley 的调查包没有这样做,我说得对吗?在下面的 reprex 中,在一级和二级聚类的 svyglm 具有相同的标准错误。有什么想法吗?

library(survey) 

data(api)

dclus0<-svydesign(id=~1, weights=~pw, data=apiclus2) # no clustering
dclus1<-svydesign(id=~dnum, weights=~pw, data=apiclus2) # clustering at one level
dclus2<-svydesign(id=~dnum+snum, weights=~pw, data=apiclus2) # clustering at two levels

summary(svyglm(api00~ell+meals+mobility, design=dclus0)) # no clustering
summary(svyglm(api00~ell+meals+mobility, design=dclus1)) # clustering at one level
summary(svyglm(api00~ell+meals+mobility, design=dclus2)) # clustering at two levels

我怀疑 8647 是受访者人数乘以 20,但是,好吧,缺少数据或其他东西。

如果它是嵌套的,并且没有放回地抽样,如您所说 svydesign,那么为这两个分析获得相同的标准误差将是正确的。数字 (59, 8647) 也是正确的:第 1 阶段有 59 个抽样单位,第 2 阶段有 8647 个抽样单位。

你(我认为)有两个观察结果相关的数据,如果他们共享一个参与者或他们共享一个标题。此设计不是嵌套的,而是交叉的:标题 1 的参与者 1 与标题 2 的参与者 1 是同一个人。

其实很久以前我就在 R 中为此编写了标准误差估计代码,以至于 CRAN 不存在:代码是 here,函数被称为 xeffect.glm。我认为这与后来独立发明并放入 Stata -cluster2- 中的方法相同。该代码用于 glm objects,但它允许权重,因此将采样权重作为权重放入 glm 以获得点估计,然后提供结果 glm objects 至 xeffect.glm

作为附加的历史记录:link 处的其余代码由 Achim Zeileis 在 sandwich 包中重新实现,但 crossed-effects 估算器没有,因为他主要对 time-series.

感兴趣