simulate                package:stats                R Documentation

Simulate Responses

Description:

     Simulate one or more response vectors from the theoretical
     distribution corresponding to a fitted model object.

Usage:

     simulate(object, nsim, seed, ...)

Arguments:

  object: an object representing a fitted model.

    nsim: number of response vectors to simulate.  Defaults to 1.

    seed: an object specifying if and how the random number generator
          should be initialized ('seeded').
           For the "lm" method, either 'NULL' or an integer that will
          be used in a call to 'set.seed' before simulating the
          response vectors.  If set, the value is saved as the '"seed"'
          attribute of the returned value.  The default, 'NULL' will
          not change the random generator state, and return
          '.Random.seed' as '"seed"' attribute, see below. 

     ...: additional optional arguments.

Details:

     This is a generic function with a method for 'lm' objects. Consult
     the individual modeling functions for details on how to use this
     function.

Value:

     Typically, a list of length 'nsim' of simulated response vectors.
     When appropriate the result can be a data frame (which is a
     special type of list).

     For the '"lm"' method, the result is a data frame with an
     attribute '"seed"' containing the 'seed' argument and
     'as.list(RNGkind())' if 'seed' was not 'NULL', or the value of
     '.Random.seed' before the simulation was started when 'seed' was
     NULL as by default.

See Also:

     'fitted.values' and 'residuals' for related methods; 'glm', 'lm'
     for model fitting.

Examples:

     x <- 1:5
     mod1 <- lm(c(1:3,7,6) ~ x)
     S1 <- simulate(mod1, nsim = 4)
     ## repeat the simulation:
     .Random.seed <- attr(S1, "seed")
     identical(S1, simulate(mod1, nsim = 4))

     S2 <- simulate(mod1, nsim = 200, seed = 101)
     rowMeans(S2) # should be about
     fitted(mod1)

     ## repeat identically:
     (sseed <- attr(S2, "seed")) # seed; RNGkind as attribute
     stopifnot(identical(S2, simulate(mod1, nsim = 200, seed = sseed)))

     ## To be sure about the proper RNGkind, e.g., after
     RNGversion("2.7.0")
     ## first set the RNG kind, then simulate
     do.call(RNGkind, attr(sseed, "kind"))
     identical(S2, simulate(mod1, nsim = 200, seed = sseed))

