Adjust for Missing Values

DESCRIPTION:

Use missing value information to adjust fitted values, residuals, and predictions.

USAGE:

naresid(omit, ...) 
nafitted(omit, ...) 
napredict(omit, ...) 
naresid.default(omit, x) 
nafitted.default(omit, x) 
napredict.default(omit, x) 
naresid.exclude(omit, x) 
nafitted.exclude(omit, x) 
napredict.exclude(omit, x) 

REQUIRED ARGUMENTS:

omit
An object produced by an na.action function such as na.exclude. Typically this will be a component of a model object for which an na.action was specified.
x
A vector, data frame, or matrix to be adjusted based upon the missing value information. Typically this will be the residuals, fitted values, or predictions for the subset of data left after removing rows based on the na.action.

VALUE:

A vector, data frame, or matrix adjusted based upon the na.action information.

DETAILS:

Currently the only method available is for na.exclude. In this case na.exclude returns a data frame with rows containing missing values removed and the numbers of these rows stored in an na.action attribute of the data frame. The naresid function then takes this attribute and the residuals for the subset data frame, and uses the information on what rows were removed to return a vector of the same length as the original data. That is, this function pads with NA's to return a vector of residuals corresponding to the original data. Note that for na.action functions for which no naresid method has been written the generic naresid.default is called. This merely returns the specified x unmodified. In order for a model to use this system, the modeling function must take the na.action information produced by model.frame and place it on the model object. The following code from lm does this:

attr(fit, "na.message") <- attr(m, "na.message") if(!is.null(attr(m, "na.action"))) fit$na.action <- attr(m, "na.action")

In order for a function such as residuals.lm to return the modified residuals, it must call naresid before returning its result. The convention is to use:

if(is.null(object$na.action)) return(r) else return(naresid(object$na.action, r))

where object is the fitted model and r is the residuals for the subset of data used in the model.

Theoretically, users could write their own function na.myway with corresponding functions naresid.myway, nafitted.myway, and napredict.myway . The developer can expect naresid and nafitted to be applied to the results of residuals and fitted. The function napredict is currently only applied to the results of predict when no new data is specified. Note that for na.exclude all three of these functions do the same thing. The separate functions for naresid, nafitted , and napredict are available to support more general functionality than is currently implemented.

SEE ALSO:

,

EXAMPLES:

   if(is.null(object$na.action)) 
                return(r) 
        else return(naresid(object$na.action, r))