【发布时间】:2021-09-28 17:26:00
【问题描述】:
问题:
假设我们有测量两个重叠领域(30-50 岁和 40-60 岁)的疫苗接种状态的调查数据,我们想要估计这两个群体的疫苗接种率。显然,由于重叠(40-50 岁的人),域估计值将是相关的。
我们如何使用survey 包来估计来自诸如这些重叠域的估计的协方差?
理想情况下,是否可以使用svyby() 或svybys() 来执行此操作?
示例数据:
以下是基于survey 包中内置的api 数据集的示例。这是加利福尼亚州学校的多阶段样本。变量stype 指示学校是小学、初中还是高中。变量api00 是一个数值变量,它总结了每所学校在 2000 年的标准化考试成绩。
对于这个例子,假设我们要比较两个重叠域之间api00 的平均值:(1)小学和初中; (2) 初中和高中。
# Create a survey design object ----
library(survey)
data(api)
dclus2 <- svydesign(id=~dnum+snum,
fpc=~fpc1+fpc2,
data=apiclus2)
# Add indicator variables for the domains ----
dclus2 <- transform(dclus2,
E_or_M = stype %in% c("E", "M"),
M_or_H = stype %in% c("M", "H"))
# Add variables for outcome by domain indicators ----
dclus2 <- transform(dclus2,
api00_E_or_M = api00 * E_or_M,
api00_M_or_H = api00 * M_or_H)
# Estimate means by domain ----
estimates <- list(
'E_or_M' = svyratio(~ api00_E_or_M, ~ E_or_M,
design = dclus2),
'M_or_H' = svyratio(~ api00_M_or_H, ~ M_or_H,
design = dclus2)
)
sapply(estimates, function(est) est[['ratio']])
#> E_or_M M_or_H
#> 682.0563 623.8102
【问题讨论】: