【发布时间】:2021-10-24 00:39:52
【问题描述】:
我想使用调查权重对 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
【问题讨论】:
-
这可能很有用,来自
svydesign函数文档。 “每个抽样级别的总体规模也应在 fpc 中指定。如果未指定 fpc,则假定抽样在顶层进行替换,并且仅在计算方差时使用集群的第一阶段。” -
您选择的变量可能重叠过多?
~stype和~both+stype的标准错误不同 -
**更新:R (svyglm) 和 STATA(ivrobust2 和 cluster2 函数)产生非常相似的标准错误,*以典型方式嵌套的数据,例如,学生分数嵌套在教室中嵌套在学校中。然而,当事情稍微复杂一点时,他们不同意:例如,在我的数据中,每个调查对象都随机选择了 20 个新闻标题(从大约 100 个标题中)并回答了一个关于每个问题的问题。因此,我在受访者和新闻标题中嵌套了回复。
-
除了 STATA 和 svyglm 不会产生相同的结果之外,另一个迹象表明发生了一些奇怪的事情:svyglm 指示错误的集群数量:“2-level Cluster Sampling design (with replacement)有 (59, 8647) 个簇。” 59 = 标题数量,但 8647 不是受访者数量。相反,它是受访者人数乘以 20(每位受访者评分的标题数量)
-
这是我的调查设计对象的样子:svydesign(id=~hdl_id + id, weights = ~weight, data = long)
标签: r statistics survey