Wrapper for svyglm. Fit a generalised linear model to data from a complex survey design, with inverse-probability weighting and design-based standard errors.

svyglmuni(design, dependent, explanatory, ...)

Arguments

design

Survey design.

dependent

Character vector of length 1: name of depdendent variable (must have 2 levels).

explanatory

Character vector of any length: name(s) of explanatory variables.

...

Other arguments to be passed to svyglm.

Value

A list of univariable fitted model outputs. Output is of class svyglmlist.

Examples

# Examples taken from survey::svyglm() help page. library(survey) library(dplyr) data(api) dependent = "api00" explanatory = c("ell", "meals", "mobility") library(survey) library(dplyr) data(api) apistrat = apistrat %>% mutate( api00 = ff_label(api00, "API in 2000 (api00)"), ell = ff_label(ell, "English language learners (percent)(ell)"), meals = ff_label(meals, "Meals eligible (percent)(meals)"), mobility = ff_label(mobility, "First year at the school (percent)(mobility)"), sch.wide = ff_label(sch.wide, "School-wide target met (sch.wide)") ) # Linear example dependent = "api00" explanatory = c("ell", "meals", "mobility") # Stratified design dstrat = svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat, fpc=~fpc) # Univariable fit fit_uni = dstrat %>% svyglmuni(dependent, explanatory) %>% fit2df(estimate_suffix = " (univariable)") # Multivariable fit fit_multi = dstrat %>% svyglmmulti(dependent, explanatory) %>% fit2df(estimate_suffix = " (multivariable)") # Pipe together apistrat %>% summary_factorlist(dependent, explanatory, fit_id = TRUE) %>% ff_merge(fit_uni) %>% ff_merge(fit_multi) %>% select(-fit_id, -index) %>% dependent_label(apistrat, dependent)
#> Warning: Dependent is not a factor and will be treated as a continuous variable
#> Dependent: API in 2000 (api00) Mean (sd) #> 1 English language learners (percent)(ell) [0,84] 652.8 (121.0) #> 2 Meals eligible (percent)(meals) [0,100] 652.8 (121.0) #> 3 First year at the school (percent)(mobility) [1,99] 652.8 (121.0) #> Coefficient (univariable) Coefficient (multivariable) #> 1 -3.73 (-4.35--3.11, p<0.001) -0.48 (-1.25-0.29, p=0.222) #> 2 -3.38 (-3.71--3.05, p<0.001) -3.14 (-3.70--2.59, p<0.001) #> 3 -1.43 (-3.30-0.44, p=0.137) 0.23 (-0.54-1.00, p=0.567)
# Binomial example ## Note model family needs specified and exponentiation if desired dependent = "sch.wide" explanatory = c("ell", "meals", "mobility") # Univariable fit fit_uni = dstrat %>% svyglmuni(dependent, explanatory, family = "quasibinomial") %>% fit2df(exp = TRUE, estimate_name = "OR", estimate_suffix = " (univariable)") # Multivariable fit fit_multi = dstrat %>% svyglmmulti(dependent, explanatory, family = "quasibinomial") %>% fit2df(exp = TRUE, estimate_name = "OR", estimate_suffix = " (multivariable)") # Pipe together apistrat %>% summary_factorlist(dependent, explanatory, fit_id = TRUE) %>% ff_merge(fit_uni) %>% ff_merge(fit_multi) %>% select(-fit_id, -index) %>% dependent_label(apistrat, dependent)
#> Dependent: School-wide target met (sch.wide) No #> 1 English language learners (percent)(ell) Mean (SD) 22.5 (19.3) #> 2 Meals eligible (percent)(meals) Mean (SD) 46.0 (29.1) #> 3 First year at the school (percent)(mobility) Mean (SD) 13.9 (8.6) #> Yes OR (univariable) OR (multivariable) #> 1 20.5 (20.0) 1.00 (0.98-1.01, p=0.715) 1.00 (0.97-1.02, p=0.851) #> 2 44.7 (29.0) 1.00 (0.99-1.01, p=0.968) 1.00 (0.98-1.01, p=0.732) #> 3 17.2 (13.0) 1.06 (1.00-1.12, p=0.049) 1.06 (1.00-1.13, p=0.058)