# \donttest{
library(survey)
# Create a survey design ----
data(involvement_survey_srs, package = 'nrba')
survey_design <- svydesign(weights = ~ BASE_WEIGHT,
id = ~ UNIQUE_ID,
fpc = ~ N_STUDENTS,
data = involvement_survey_srs)
# Create replicate weights for the design ----
rep_svy_design <- as.svrepdesign(survey_design, type = "subbootstrap",
replicates = 500)
# Subset to only respondents (always subset *after* creating replicate weights)
rep_svy_respondents <- subset(rep_svy_design,
RESPONSE_STATUS == "Respondent")
# Apply raking adjustment ----
raked_rep_svy_respondents <- rake_to_benchmarks(
survey_design = rep_svy_respondents,
group_vars = c("PARENT_HAS_EMAIL", "STUDENT_RACE"),
group_benchmark_vars = c("PARENT_HAS_EMAIL_BENCHMARK",
"STUDENT_RACE_BENCHMARK"),
)
# Compare estimates from respondents in original vs. adjusted design ----
t_test_of_weight_adjustment(orig_design = rep_svy_respondents,
updated_design = raked_rep_svy_respondents,
y_vars = c('STUDENT_AGE', 'STUDENT_SEX'))
t_test_of_weight_adjustment(orig_design = rep_svy_respondents,
updated_design = raked_rep_svy_respondents,
y_vars = c('WHETHER_PARENT_AGREES'))
# Compare estimates to true population values ----
data('involvement_survey_pop', package = 'nrba')
mean(involvement_survey_pop$STUDENT_AGE)
prop.table(table(involvement_survey_pop$STUDENT_SEX))
# }
Run the code above in your browser using DataLab