medpolish
Median Polish of a Matrix
Fits an additive model using Tukey's median polish procedure.
 Keywords
 robust
Usage
medpolish(x, eps = 0.01, maxiter = 10, trace.iter = TRUE, na.rm = FALSE)
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?
 na.rm
 logical. Should missing values be removed?
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
.
If na.rm
is FALSE
the presence of any NA
value in
x
will cause an error, otherwise NA
values are ignored.
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
 overall
 the fitted constant term.
 row
 the fitted row effects.
 col
 the fitted column effects.
 residuals
 the residuals.
 name
 the name of the dataset.
medpolish
with the following named components:
References
Tukey, J. W. (1977). Exploratory Data Analysis, Reading Massachusetts: AddisonWesley.
See Also
Examples
library(stats)
require(graphics)
## 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("124", "2574", "75199", "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$residuals)