aroma.light (version 3.2.0)

medianPolish: Median polish

Description

Median polish.

Usage

"medianPolish"(X, tol=0.01, maxIter=10L, na.rm=NA, ..., .addExtra=TRUE)

Arguments

X
N-times-K matrix
tol
A numeric value greater than zero used as a threshold to identify when the algorithm has converged.
maxIter
Maximum number of iterations.
na.rm
If TRUE (FALSE), NAs are exclude (not exclude). If NA, it is assumed that X contains no NA values.
.addExtra
If TRUE, the name of argument X is returned and the returned structure is assigned a class. This will make the result compatible what medpolish returns.
...
Not used.

Value

Returns a named list structure with elements:
overall
The fitted constant term.
row
The fitted row effect.
col
The fitted column effect.
residuals
The residuals.
converged
If TRUE, the algorithm converged, otherwise not.

Details

The implementation of this method give identical estimates as medpolish, but is about 3-5 times more efficient when there are no NA values.

See Also

medpolish.

Examples

Run this code

# Deaths from sport parachuting;  from ABC of EDA, p.224:
deaths <- matrix(c(14,15,14, 7,4,7, 8,2,10, 15,9,10, 0,2,0), ncol=3, byrow=TRUE)
rownames(deaths) <- c("1-24", "25-74", "75-199", "200++", "NA")
colnames(deaths) <- 1973:1975

print(deaths)

mp <- medianPolish(deaths)
mp1 <- medpolish(deaths, trace=FALSE)
print(mp)

ff <- c("overall", "row", "col", "residuals")
stopifnot(all.equal(mp[ff], mp1[ff]))

# Validate decomposition:
stopifnot(all.equal(deaths, mp$overall+outer(mp$row,mp$col,"+")+mp$resid))

Run the code above in your browser using DataLab