R: Simulate Responses with Gaussian Error or Permuted Residuals...

simulate.rda {vegan} | R Documentation

## Simulate Responses with Gaussian Error or Permuted Residuals for Constrained Ordination

### Description

Function simulates a response data frame so that it adds Gaussian error to the fitted responses of Redundancy Analysis (`rda`), Constrained Correspondence Analysis (`cca`) or distance-based RDA (`capscale`). The function is a special case of generic `simulate`, and works similarly as `simulate.lm`.

### Usage

    ## S3 method for class 'rda'
    simulate(object, nsim = 1, seed = NULL, indx = NULL,
        rank = "full", correlated = FALSE, ...)

### Arguments

`object` | an object representing a fitted `rda`, `cca` or `capscale` model.
`nsim` | number of response matrices to be simulated. Only one dissimilarity matrix is returned for `capscale`, and larger `nsim` is an error.
`seed` | an object specifying if and how the random number generator should be initialized (‘seeded’). See `simulate` for details.
`indx` | Index of residuals added to the fitted values, such as produced by `shuffleSet` or `sample`. The index can have duplicate entries so that bootstrapping is allowed. If `nsim` >1, the output should be compliant with `shuffleSet` with one line for each simulation. If `nsim` is missing, the number of rows of `indx` is used to define the number of simulations, but if `nsim` is given, it should match number of rows in `indx`. If null, parametric simulation is used and Gaussian error is added to the fitted values.
`rank` | The rank of the constrained component: passed to `predict.rda` or `predict.cca`.
`correlated` | Are species regarded as correlated in parametric simulation or when `indx` is not given? If `correlated = TRUE`, multivariate Gaussian random error is generated, and if `FALSE`, Gaussian random error is generated separately for each species. The argument has no effect in `capscale` which has no information on species.
`...` | additional optional arguments (ignored).

### Details

The implementation follows `"lm"` method of `simulate`, and adds Gaussian (Normal) error to the fitted values (`fitted.rda`) using function `rnorm` if `correlated = FALSE` or `mvrnorm` if `correlated = TRUE`. The standard deviations (`rnorm`) or covariance matrices for species (`mvrnorm`) are estimated from the residuals after fitting the constraints. Alternatively, the function can take a permutation index that is used to add permuted residuals (unconstrained component) to the fitted values. Raw data are used in `rda`. Internal Chi-square transformed data are used in `cca` within the function, but the returned matrix is similar to the original input data. The simulation is performed on internal metric scaling data in `capscale`, but the function returns the Euclidean distances calculated from the simulated data. The simulation uses only the real components, and the imaginary dimensions are ignored.

### Value

If `nsim = 1`, returns a matrix or dissimilarities (in `capscale`) with similar additional arguments on random number seed as `simulate`. If `nsim > 1`, returns a similar array as returned by `simulate.nullmodel` with similar attributes.

### Author(s)

Jari Oksanen

### See Also

`simulate` for the generic case and for `lm` objects, and `simulate.nullmodel` for community null model simulation. Functions `fitted.rda` and `fitted.cca` return fitted values without the error component. See `rnorm` and `mvrnorm` (MASS package) for simulating Gaussian random error.

### Examples

    data(dune)
    data(dune.env)
    mod <- rda(dune ~  Moisture + Management, dune.env)
    ## One simulation
    update(mod, simulate(mod) ~  .)
    ## An impression of confidence regions of site scores
    plot(mod, display="sites")
    for (i in 1:5) lines(procrustes(mod, update(mod, simulate(mod) ~ .)), col="blue")
    ## Simulate a set of null communities with permutation of residuals
    simulate(mod, indx = shuffleSet(nrow(dune), 99))

[Package vegan version 2.4-3 Index]