medpolish                package:eda                R Documentation

Median Polish of a Matrix

Description:

     Fits an additive model using Tukey's median polish procedure.

Usage:

     medpolish(x, eps = 0.01, maxiter = 10, trace.iter = TRUE)

Arguments:

       x: a numeric matrix.

     eps: real number greater than 0. A tolerance for convergence: see
          Details.

 maxiter: the maximum number of iterations

trace.iter: logical. Should progress in convergence be reported?

Details:

     The model fitted is additive (constant + rows + columns). The
     algorithm works by alternately removing the row and column
     medians, and continues until the proportional reduction in the sum
     of absolute residuals is less than `eps' or until there have been
     `maxiter' iterations. The sum of absolute residuals is printed at
     each iteration of the fitting process, if `trace.iter' is `TRUE'.

     `medpolish' returns an object of class `medpolish' (see below).
     There are printing and plotting methods for this class, which are
     invoked via by the generics `print' and `plot'.

Value:

     An object of class `medpolish' with the following named
     components: 

 overall: the fitted constant term.

     row: the fitted row effects.

     col: the fitted column effects.

residuals: the residuals.

    name: the name of the dataset.

References:

     Tukey, J. W. (1977). Exploratory Data Analysis, Reading
     Massachusetts: Addison-Wesley.

See Also:

     `median'; `aov' for a mean instead of median decomposition.

Examples:

     ## Deaths from sport parachuting;  from ABC of EDA, p.224:
     deaths <-
         rbind(c(14,15,14),
               c( 7, 4, 7),
               c( 8, 2,10),
               c(15, 9,10),
               c( 0, 2, 0))
     dimnames(deaths) <- list(c("1-24", "25-74", "75-199", "200++", "NA"),
                              paste(1973:1975))
     deaths
     (med.d <- medpolish(deaths))
     plot(med.d)
     ## Check decomposition:
     all(deaths == med.d$overall + outer(med.d$row,med.d$col, "+") + med.d$resid)

