Learn R Programming

preprocessCore (version 1.34.0)

subrcModels: Fit row-column model to a matrix

Description

These functions fit row-column effect models to matrices

Usage

subrcModelPLM(y, group.labels,row.effects=NULL,input.scale=NULL)
subrcModelMedianPolish(y, group.labels)

Arguments

y
A numeric matrix
group.labels
A vector to be treated as a factor variable. This is used to assign each row to a group. NA values should be used to exclude rows from consideration
row.effects
If these are supplied then the fitting procedure uses these (and analyzes individual columns separately)
input.scale
If supplied will be used rather than estimating the scale from the data

Value

A list with following items:
Estimates
The parameter estimates. Stored in column effect then row effect order
Weights
The final weights used
Residuals
The residuals
StdErrors
Standard error estimates. Stored in column effect then row effect order
Scale
Scale Estimates

Details

These functions fit row-column models to the specified input matrix. Specifically the model $$y_{ij} = r_i + c_j + \epsilon_{ij}$$ with $r_i$ and $c_j$ as row and column effects respectively. Note that this functions treat the row effect as the parameter to be constrained using sum to zero (for rcModelPLM and rcModelWPLM) or median of zero (for rcModelMedianPolish).

The rcModelPLM and rcModelWPLM functions use a robust linear model procedure for fitting the model.

The function rcModelMedianPolish uses the median polish algorithm.

See Also

rcModelPLM

Examples

Run this code

y <- matrix(c(10+rnorm(50),20+rnorm(50)),20,5,byrow=TRUE)

subrcModelPLM(y,c(rep(1,10),rep(2,10)))
subrcModelMedianPolish(y,c(rep(1,10),rep(2,10)))



col.effects <- c(10,11,10.5,12,9.5)
row.effects <- c(seq(-0.5,-0.1,by=0.1),seq(0.1,0.5,by=0.1))


y <- outer(row.effects, col.effects,"+")
w <- runif(50)

rcModelPLM(y)
rcModelWPLM(y, w)
rcModelMedianPolish(y)

y <- y + rnorm(50)

rcModelPLM(y)
rcModelWPLM(y, w)
rcModelMedianPolish(y)



rcModelPLM(y,row.effects=row.effects)
rcModelWPLM(y,w,row.effects=row.effects)

rcModelPLM(y,input.scale=1.0)
rcModelWPLM(y, w,input.scale=1.0)
rcModelPLM(y,row.effects=row.effects,input.scale=1.0)
rcModelWPLM(y,w,row.effects=row.effects,input.scale=1.0)




Run the code above in your browser using DataLab