Simulate values from an object of class lme. Unequal variances, as modeled using the weights option are supported, and there is experimental code for considering the correlation structure.
simulate_lme( object, nsim =1, psim =1, value = c("matrix","data.frame"), data =NULL,...)
Arguments
object: object of class lme or gls
nsim: number of samples, default 1
psim: parameter simulation level, 0: for fitted values, 1: for simulation from fixed parameters (assuming a fixed vcov matrix), 2: for simulation considering the uncertainty in the residual standard error (sigma), this returns data which will appear similar to the observed values. 3: in addition samples a new set of random effects.
value: whether to return a matrix (default) or an augmented data frame
data: the data argument is needed when using this function inside user defined functions.
...: additional arguments (it is possible to supply a newdata this way)
Returns
It returns a vector with simulated values with length equal to the number of rows in the original data
Details
This function is based on predict.lme function
It uses function mvrnorm to generate new values for the coefficients of the model using the Variance-Covariance matrix vcov. This variance-covariance matrix refers to the one for the parameters 'beta', not the one for the residuals.
Note
I find the simulate.merMod in the lme4 pacakge confusing. There is use.u and several versions of re.form. From the documentation it seems that if use.u = TRUE, then the current values of the random effects are used. This would mean that it is equivalent to psim = 2 in this function. Then use.u = FALSE, would be equivalent to psim = 3. re.form allows for specifying the formula of the random effects.
Examples
require(nlme)data(Orange)fm1 <- lme(circumference ~ age, random =~1| Tree, data = Orange)sims <- simulate_lme(fm1, nsim =10)
See Also
predict.lme and simulate.merMod in the lme4 package.