## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----load-data---------------------------------------------------------------- library(nonprobsampling) data("sc") data("sp1") data("sp1_bootstrap") data("sp2") str(sc) str(sp1) str(sp2) ## ----peek-data-sc------------------------------------------------------------- head(sc) ## ----PSU-survey-designs------------------------------------------------------- ref1_design <- survey::svydesign( ids = ~psu_sp1, strata = ~strata_sp1, weights = ~wts_sp1, data = sp1, nest = TRUE ) ref2_design <- survey::svydesign( ids = ~psu_sp2, strata = ~strata_sp2, weights = ~wts_sp2, data = sp2, nest = TRUE ) ## ----replicate-wts-survey-design---------------------------------------------- ref1_design_rep_wts <- survey::svrepdesign( data = sp1_bootstrap, weights = ~wts_sp1, repweights = "bw[0-9]+", type = "bootstrap" ) ## ----one-ref-calibration-classic---------------------------------------------- fit_cali <- est_pw( data = list(sc, ref1_design), p_formula = ~ agecat + race + education + comorbidity + BMI + diabetes, method = "calibration", control = pw_solver_control(ftol = 1e-6) ) print(fit_cali) summary(fit_cali) ## ----one-ref-calibration-autopfml--------------------------------------------- fit_cali_auto <- est_pw( data = list(sc, ref1_design), method = "calibration", control = pw_solver_control(ftol = 1e-6) ) summary(fit_cali_auto) ## ----one-ref-calibration-int-------------------------------------------------- fit_cali_interaction <- est_pw( data = list(sc, ref1_design), p_formula = ~ BMI * psa_level + diabetes + pros_enlarged + I(psa_level^2), method = "calibration", control = pw_solver_control(ftol = 1e-6) ) summary(fit_cali_interaction) ## ----one-ref-calibration-verbose---------------------------------------------- fit_cali <- est_pw( data = list(sc, ref1_design), p_formula = ~ agecat + race + education + comorbidity + BMI + diabetes, method = "calibration", verbose = TRUE, control = pw_solver_control(ftol = 1e-6) ) ## ----one-ref-calibration-sc_updated------------------------------------------- head(fit_cali$sc_updated) ## ----one-ref-calibration-pseudo_weights--------------------------------------- head(fit_cali$pseudo_weights) ## ----one-ref-alp-------------------------------------------------------------- fit_alp <- est_pw( data = list(sc, ref1_design_rep_wts), p_formula = ~ agecat + race + education + comorbidity + BMI + diabetes, method = "alp" ) print(fit_alp) ## ----one-ref-clw-------------------------------------------------------------- fit_clw <- est_pw( data = list(sc, ref1_design), p_formula = ~ agecat + race + education + comorbidity + BMI + diabetes, method = "clw" ) print(fit_clw) ## ----multi-ref-by-size-------------------------------------------------------- fit_multi_order_by_size <- est_pw( data = list(sc, ref1_design, ref2_design), p_formula = list( ~ agecat + race + education + psa_level + pros_enlarged + comorbidity + BMI + diabetes, ~ agecat + race + diabetes + BMI + comorbidity ), sp_order = "size", precali = TRUE, control = pw_solver_control(ftol=1e-6) ) summary(fit_multi_order_by_size) ## ----multi-ref-as-given------------------------------------------------------- fit_multi_as_given <- est_pw( data = list(sc, ref1_design, ref2_design), p_formula = list( ~ agecat + race + education + psa_level + pros_enlarged + comorbidity + diabetes, ~ agecat + race + BMI + diabetes + comorbidity ), sp_order = "given", precali = TRUE ) summary(fit_multi_as_given) ## ----pwmean-numeric----------------------------------------------------------- est_cali_numeric <- pwmean(fit_cali, y = "psa_level") print(est_cali_numeric) summary(est_cali_numeric) ## ----pwmean-factor------------------------------------------------------------ est_cali_factor <- pwmean(fit_cali, y = "BMI") print(est_cali_factor) summary(est_cali_factor) ## ----pwmean-domain-numeric---------------------------------------------------- est_by_bmi_numeric <- pwmean(fit_cali, y = "psa_level", zcol = "BMI") print(est_by_bmi_numeric) summary(est_by_bmi_numeric) ## ----pwmean-domain-factor----------------------------------------------------- est_by_bmi_factor <- pwmean(fit_cali, y = "agecat", zcol = "BMI") print(est_by_bmi_factor) summary(est_by_bmi_factor) ## ----na-setup----------------------------------------------------------------- sc_with_na <- sc sc_with_na$agecat[c(1, 2, 4)] <- NA sc_with_na$psa_level[c(6, 7, 8, 9)] <- NA sp1_with_na <- sp1 sp1_with_na$education[c(3, 4)] <- NA ref1_design_with_na <- survey::svydesign( ids = ~psu_sp1, strata = ~strata_sp1, weights = ~wts_sp1, data = sp1_with_na, nest = TRUE ) ## ----fit-with-na-------------------------------------------------------------- fit_na_exclude <- est_pw( data = list(sc_with_na, ref1_design_with_na), method = "calibration", p_formula = ~ agecat + race + education + comorbidity + BMI + diabetes, na.action = stats::na.exclude, control = pw_solver_control(ftol = 1e-6) ) summary(fit_na_exclude) ## ----na_summary--------------------------------------------------------------- fit_na_exclude$na_summary ## ----na.action---------------------------------------------------------------- na.action(fit_na_exclude) ## ----na-head------------------------------------------------------------------ head(fit_na_exclude$pseudo_weights) head(fit_na_exclude$sc_updated) ## ----na-2nd-layer------------------------------------------------------------- result <- pwmean(fit_na_exclude, "psa_level") summary(result) ## ----na-info-2nd-------------------------------------------------------------- result$na.action na.action(result) ## ----fit-na-omit-------------------------------------------------------------- fit_na_omit <- est_pw( data = list(sc_with_na, ref1_design_with_na), method = "calibration", na.action = stats::na.omit, control = pw_solver_control(ftol = 1e-6) ) ## ----na-omit-na.action-------------------------------------------------------- na.action(fit_na_omit) ## ----na-omit-head------------------------------------------------------------- head(fit_na_omit$pseudo_weights) head(fit_na_omit$sc_updated) ## ----solver-control----------------------------------------------------------- ctrl <- pw_solver_control( method = "Broyden", xtol = 1e-10, ftol = 1e-4, maxit = 30, trace = TRUE ) fit_ctrl <- est_pw( data = list(sc, ref1_design), p_formula = ~ agecat + race + education + comorbidity + BMI, method = "calibration", control = ctrl )