Skip to contents

Compute a regression model for each column in a matrix and return residual matrix

Usage

residualize(form, X, design, intercept = FALSE)

Arguments

form

the formula defining the model to fit for residuals

X

the response matrix

design

the data.frame containing the design variables specified in form argument.

intercept

add an intercept term (default is FALSE)

Value

a matrix of residuals

Examples


X <- matrix(rnorm(20*10), 20, 10)
des <- data.frame(a=rep(letters[1:4], 5), b=factor(rep(1:5, each=4)))
xresid <- residualize(~ a+b, X, design=des)

## design is saturated, residuals should be zero
xresid2 <- residualize(~ a*b, X, design=des)
sum(xresid2) == 0
#> [1] TRUE