R: Simulate Responses

simulate {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("1.0.0")
    ## first set the RNG kind, then simulate
    do.call(RNGkind, attr(sseed, "kind"))
    identical(S2, simulate(mod1, nsim = 200, seed = sseed))

[Package stats version 2.6.2 Index]