medpolish {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,
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 `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)