Median Polish of a Matrix
Fits an additive model using Tukey's median polish procedure.
medpolish(x, eps = 0.01, maxiter = 10, trace.iter = TRUE, na.rm = FALSE)
- a numeric matrix.
- real number greater than 0. A tolerance for convergence:
- the maximum number of iterations
- logical. Should progress in convergence be reported?
- logical. Should missing values be removed?
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
or until there have been
The sum of absolute residuals is printed at
each iteration of the fitting process, if
FALSE the presence of any
NA value in
x will cause an error, otherwise
NA values are ignored.
- An object of class
medpolishwith 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.
Tukey, J. W. (1977). Exploratory Data Analysis, Reading Massachusetts: Addison-Wesley.
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("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$residuals)