Data Augmentation for Multivariate Normal Models

DESCRIPTION:

Performs data augmentation for multivariate normal models.

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:

daGauss(object, ...) 

REQUIRED ARGUMENTS:

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

OPTIONAL ARGUMENTS:

...
most methods have additional arguments prior, start, and control which affect the data augmentation model and algorithm. Additional arguments are possible. See the specific function called for a list of all possible arguments.

VALUE:

an object of class "missmodel" is returned; see for details.

SIDE EFFECTS:

The function daGauss creates the data set .Random.seed if it does not already exist, otherwise its value is updated.

DETAILS:

The daGauss function computes data augmentation estimates of the parameters in a multivariate normal model. In this algorithm Markov Chain Monte Carlo (MCMC) methods are used to (1) iteratively simulate data for the missing values, and (2) simulate parameters given the augmented data. Because data augmentation results in a Markov chain, care must be taken to ensure that a steady state solution has been reached. You can assess this from the sequence of parameter iterates returned as the paramIter component of the class "missmodel" object returned by the daGauss function. These may be analyzed using routines such as plot.missmodel and worstFunLin. The function impGauss uses the missmodel object produced by daGauss to impute values for the missing observations.

Because the daGauss function is often called more than once, it is usually preferable to precompute many of the statistics used by daGauss by first calling the preGauss function.

REFERENCES:

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

SEE ALSO:

, , , , , , , , .

EXAMPLES:

# Data augmentation: default startings values; save iterates 101 to 1100  
daGauss(object = cholesterol,
                control = list(save = 101:500)) 
daGauss.default(data = cholesterol,
                control = list(save = 101:500)) #same

# same, but first create preGauss object for greater efficiency 
cholesterol.pre <- preGauss(cholesterol)    
daGauss(cholesterol.pre,
                control = list(save = 101:500))
daGauss.preGauss(cholesterol.pre,
                control = list(save = 101:500)) #same

# Use as starting values the final estimates given in cholesterol.em 
cholesterol.em <- emGauss(cholesterol.pre)   
daGauss(cholesterol.em,
                control = list(save = 101:500))
daGauss.missmodel(cholesterol.em,
                control = list(save = 101:500)) #same