调查数据

先查看各命令展开的示例,再按需展开其他选项及 R 实现。改写代码前,请阅读适用条件及差异说明。

svy

考虑抽样设计的 logit 模型

Stata

svy: logit y x

R 包:survey

survey::svyglm(y ~ x, design = design, family = quasibinomial())

与 Stata 有差异 先匹配抽样设计和缺失排除;R 与 Stata 的单 PSU 层规则、自由度和置信区间变换可能不同。

加权均值(考虑抽样设计)

Stata

svy: mean x

R 包:srvyr

summarise(design, x = srvyr::survey_mean(x, na.rm = TRUE))

与 Stata 有差异 先匹配抽样设计和缺失排除;R 与 Stata 的单 PSU 层规则、自由度和置信区间变换可能不同。

考虑抽样设计的回归

Stata

svy: regress y x

R 包:survey

survey::svyglm(y ~ x, design = design)

与 Stata 有差异 先匹配抽样设计和缺失排除;R 与 Stata 的单 PSU 层规则、自由度和置信区间变换可能不同。

加权比例(考虑抽样设计)

Stata

svy: tabulate x

R 包:srvyr

design |> group_by(x) |> summarise(p = srvyr::survey_prop())

与 Stata 有差异 先匹配抽样设计和缺失排除;R 与 Stata 的单 PSU 层规则、自由度和置信区间变换可能不同。

另有 3 个示例及替代实现

子总体估计

Stata

svy, subpop(rural): mean x

R 包:srvyr

design |> filter(rural == 1) |> summarise(x = srvyr::survey_mean(x, na.rm = TRUE))

与 Stata 有差异 对抽样设计对象筛选时会保留完整设计来估计方差,与 subpop() 一致。 先匹配抽样设计和缺失排除;R 与 Stata 的单 PSU 层规则、自由度和置信区间变换可能不同。

分组的加权均值(考虑抽样设计)

Stata

svy: mean x, over(g)

R 包:srvyr

design |> group_by(g) |> summarise(x = srvyr::survey_mean(x, na.rm = TRUE))

与 Stata 有差异 先匹配抽样设计和缺失排除;R 与 Stata 的单 PSU 层规则、自由度和置信区间变换可能不同。

带置信区间的加权比例

Stata

svy: proportion x

R 包:srvyr

design |> group_by(x) |> summarise(p = srvyr::survey_prop(vartype = "ci"))

与 Stata 有差异 先匹配抽样设计和缺失排除;R 与 Stata 的单 PSU 层规则、自由度和置信区间变换可能不同。

svydescribe

描述抽样设计

Stata

svydescribe

R 包:base

summary(design)

svyset

声明抽样设计

Stata

svyset psu [pweight = wt], strata(stratum)

R 包:srvyr

design <- srvyr::as_survey_design(data, ids = psu, strata = stratum, weights = wt)

与 Stata 有差异 先匹配抽样设计和缺失排除;R 与 Stata 的单 PSU 层规则、自由度和置信区间变换可能不同。