Impute Multivariate Normal Data

DESCRIPTION:

Impute numeric data under a multivariate normal model using data augmentation.

This function is generic (see Methods); method functions can be written to handle specific classes of data. Classes which already have methods for this function include: preGauss and missmodel. A default method operates on matrices and data frames.

USAGE:

impGauss(object, ...) 

REQUIRED ARGUMENTS:

object
a matrix, data frame, or object of class preGauss or missmodel.

OPTIONAL ARGUMENTS:

...
additional arguments including those needed in functions for data augmentation. In addition, all methods may require the argument nimpute which specifies the number of imputations. See the specific function called for a list of all arguments.

VALUE:

An mi (multiple imputations) object is returned. See the help files for , , , and for details.

DETAILS:

Producing proper multiple imputations using data augmentation requires that the sequence of parameters and imputations has converged to stationarity. The concept of stationarity important to multiple imputation is that the imputations are approximately independent draws from the conditional distribution of the missing data, given the observed data. You may assess stationarity using a variety of S-PLUS functions.

Once stationarity is reached, impGauss may be used to produce multiple imputations in one of two ways: (1) one long chain or (2) parallel chains.

REFERENCES:

Best, N. G., Cowles, M. K. and Vines, S. K. (1997), CODA Convergence, Diagnosis and Output Analysis Software for Gibbs sampling output , Version 0.4., Cambridge: Medical Research Council Biostatistics Unit.

Gilks, W. R., Richardson, S. and Spiegelhalter, D. J., editors (1996), Markov Chain Monte Carlo in Practice , London: Chapman and Hall.

Schafer, J. L. (1997), Analysis of Incomplete Multivariate Data , Chapman & Hall, London.

SEE ALSO:

, , , , , , .

EXAMPLES:

#Generate list of starting values using a bootstrap
start <- list()
for(i in 1:5)
  start[[i]] <- paramIter(emGauss(cholesterol,
                          subset=sample(1:28,14,T), prior="ml"))  
# draw 5 imputations from 5 parallel chains, each run for 50 iterations
cholesterol.imp <- impGauss(cholesterol, prior="non",
                            start=start, control=list(niter=50))