Description Usage Arguments Details Value Author(s) References See Also Examples
Fit a generalised linear model to data from a complex survey design, with inverseprobability weighting and designbased standard errors.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19  ## S3 method for class 'survey.design'
svyglm(formula, design, subset=NULL,
family=stats::gaussian(),start=NULL, rescale=TRUE, ...)
## S3 method for class 'svyrep.design'
svyglm(formula, design, subset=NULL,
family=stats::gaussian(),start=NULL, rescale=NULL, ..., rho=NULL,
return.replicates=FALSE, na.action,multicore=getOption("survey.multicore"))
## S3 method for class 'svyglm'
summary(object, correlation = FALSE, df.resid=NULL,
...)
## S3 method for class 'svyglm'
predict(object,newdata=NULL,total=NULL,
type=c("link","response","terms"),
se.fit=(type != "terms"),vcov=FALSE,...)
## S3 method for class 'svrepglm'
predict(object,newdata=NULL,total=NULL,
type=c("link","response","terms"),
se.fit=(type != "terms"),vcov=FALSE,
return.replicates=!is.null(object$replicates),...)

formula 
Model formula 
design 
Survey design from 
subset 
Expression to select a subpopulation 
family 

start 
Starting values for the coefficients (needed for some uncommon link/family combinations) 
rescale 
Rescaling of weights, to improve numerical stability. The default
rescales weights to sum to the sample size. Use 
... 
Other arguments passed to 
rho 
For replicate BRR designs, to specify the parameter for
Fay's variance method, giving weights of 
return.replicates 
Return the replicates as the 
object 
A 
correlation 
Include the correlation matrix of parameters? 
na.action 
Handling of NAs 
multicore 
Use the 
df.resid 
Optional denominator degrees of freedom for Wald tests 
newdata 
new data frame for prediction 
total 
population size when predicting population total 
type 
linear predictor ( 
se.fit 
if 
vcov 
if 
For binomial and Poisson families use family=quasibinomial()
and family=quasipoisson()
to avoid a warning about noninteger
numbers of successes. The ‘quasi’ versions of the family objects give
the same point estimates and standard errors and do not give the
warning.
If df.resid
is not specified the df for the null model is
computed by degf
and the residual df computed by
subtraction. This is recommended by Korn and Graubard and is correct
for PSUlevel covariates but is potentially very conservative for
individuallevel covariates. To get tests based on a Normal distribution
use df.resid=Inf
, and to use number of PSUsnumber of strata,
specify df.resid=degf(design)
.
Parallel processing with multicore=TRUE
is helpful only for
fairly large data sets and on computers with sufficient memory. It may
be incompatible with GUIs, although the Mac Aqua GUI appears to be safe.
predict
gives fitted values and sampling variability for specific new
values of covariates. When newdata
are the population mean it
gives the regression estimator of the mean, and when newdata
are
the population totals and total
is specified it gives the
regression estimator of the population total. Regression estimators of
mean and total can also be obtained with calibrate
.
svyglm
returns an object of class svyglm
. The
predict
method returns an object of class svystat
Thomas Lumley
Lumley T, Scott A (2017) "Fitting Regression Models to Survey Data" Statistical Science 32: 265278
glm
, which is used to do most of the work.
regTermTest
, for multiparameter tests
calibrate
, for an alternative way to specify regression
estimators of population totals or means
svyttest
for onesample and twosample ttests.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43  data(api)
dstrat<svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat, fpc=~fpc)
dclus2<svydesign(id=~dnum+snum, weights=~pw, data=apiclus2)
rstrat<as.svrepdesign(dstrat)
rclus2<as.svrepdesign(dclus2)
summary(svyglm(api00~ell+meals+mobility, design=dstrat))
summary(svyglm(api00~ell+meals+mobility, design=dclus2))
summary(svyglm(api00~ell+meals+mobility, design=rstrat))
summary(svyglm(api00~ell+meals+mobility, design=rclus2))
## use quasibinomial, quasipoisson to avoid warning messages
summary(svyglm(sch.wide~ell+meals+mobility, design=dstrat,
family=quasibinomial()))
## Compare regression and ratio estimation of totals
api.ratio < svyratio(~api.stu,~enroll, design=dstrat)
pop<data.frame(enroll=sum(apipop$enroll, na.rm=TRUE))
npop < nrow(apipop)
predict(api.ratio, pop$enroll)
## regression estimator is less efficient
api.reg < svyglm(api.stu~enroll, design=dstrat)
predict(api.reg, newdata=pop, total=npop)
## same as calibration estimator
svytotal(~api.stu, calibrate(dstrat, ~enroll, pop=c(npop, pop$enroll)))
## svyglm can also reproduce the ratio estimator
api.reg2 < svyglm(api.stu~enroll1, design=dstrat,
family=quasi(link="identity",var="mu"))
predict(api.reg2, newdata=pop, total=npop)
## higher efficiency by modelling variance better
api.reg3 < svyglm(api.stu~enroll1, design=dstrat,
family=quasi(link="identity",var="mu^3"))
predict(api.reg3, newdata=pop, total=npop)
## true value
sum(apipop$api.stu)

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.