simulate.merMod {lme4}R Documentation

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, ...)
  ## S3 method for class 'formula'
 simulate(object, nsim = 1 , seed = NULL, family, weights=NULL, offset=NULL, ...)
.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 preferred: TRUE corresponds to re.form=NULL (condition on all random effects), while FALSE corresponds to re.form=~0 (condition on none of the random effects).)

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 and beta and (for LMMs or GLMMs that estimate a scale parameter) sigma

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 levels (or NAs)

na.action

what to do with NA values in new data: see na.fail

...

optional additional arguments: none are used at present

Details

See Also

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

Examples

## 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)

[Package lme4 version 1.1-5 Index]