lme4 (version 1.1-6)

simulate.merMod: Simulate responses from a merMod object

Description

Simulate responses from the model represented by a "merMod" fitted model object.

Usage

## S3 method for class 'merMod':
simulate(object, nsim = 1, seed = NULL,
    use.u = FALSE, re.form=NA, ReForm, REForm, REform,
    newdata=NULL, newparams=NULL,
    family=NULL,
    allow.new.levels=FALSE, na.action=na.pass, \dots)
  ## S3 method for class 'formula':
simulate(object, nsim = 1 , seed = NULL, family, weights=NULL, offset=NULL, \dots)
.simulateFun(object, nsim = 1, seed = NULL, use.u = FALSE,
                            re.form=NA, ReForm, REForm, REform,
                            newdata=NULL, newparams=NULL,
                            formula=NULL,family=NULL,
                            weights=NULL, offset=NULL,
                            allow.new.levels=FALSE, na.action=na.pass, ...)

Arguments

object
(for simulate.merMod) a fitted model object or (for simulate.formula) a (one-sided) mixed model formula, as described for lmer
formula
a (one-sided) mixed model formula, as described for lmer
nsim
positive integer scalar - the number of responses to simulate
seed
an optional seed to be used in set.seed immediately before the simulation so as to generate a reproducible sample.
use.u
(logical) if TRUE, generate a simulation conditional on the current random-effects estimates; if FALSE generate new Normally distributed random-effects values. (Redundant with re.form, which is prefer
re.form
formula for random effects to condition on. If NULL, include all random effects; if NA or ~0, include no random effects.
ReForm
allowed for backward compatibility: re.form is now the preferred argument name
REForm
allowed for backward compatibility: re.form is now the preferred argument name
REform
allowed for backward compatibility: re.form is now the preferred argument name
newdata
data frame for which to evaluate predictions
newparams
new parameters to use in evaluating predictions, specified as in the start parameter for lmer or glmer -- a list with components theta<
family
a GLM family, as in glmer
weights
prior weights, as in lmer or glmer
offset
offset, as in glmer
allow.new.levels
(logical) if FALSE (default), then any new levels (or NA values) detected in newdata will trigger an error; if TRUE, then the prediction will use the unconditional (population-level) values for data with previously unobserved
na.action
what to do with NA values in new data: see na.fail
...
optional additional arguments: none are used at present

Details

  • ordinarilysimulateis used to generate new values from an existing, fitted model (merModobject): however, ifformula,newdata, andnewparamsare specified,simulategenerates the appropriate model structure to simulate from

See Also

bootMer for simulestimate, i.e., where each simulation is followed by refitting the model.

Examples

Run this code
## test whether fitted models are consistent with the
##  observed number of zeros in CBPP data set:
gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd),
             data = cbpp, family = binomial)
gg <- simulate(gm1,1000)
zeros <- sapply(gg,function(x) sum(x[,"incidence"]==0))
plot(table(zeros))
abline(v=sum(cbpp$incidence==0),col=2)
##
## simulate from a non-fitted model; in this case we are just
## replicating the previous model, but
params <- list(theta=0.5,beta=c(2,-1,-2,-3))
simdat <- with(cbpp,expand.grid(herd=levels(herd),period=factor(1:4)))
simdat$size <- 15
simdat$incidence <- sample(0:1,size=nrow(simdat),replace=TRUE)
form <- formula(gm1)[-2]
simulate(form,newdata=simdat,family=binomial,
    newparams=params)

Run the code above in your browser using DataCamp Workspace