Contrast Matrix for Reversed Isotonic Covariate

Description

Return something similar to a contrast matrix for a categorical covariate that we wish to be monotonically non-decreasing in a specified order.

Usage

1
contr.isotonic.rev(n, perm, contrasts = TRUE, sparse = FALSE)

Arguments

n

a vector of levels for a factor, or the number of levels.

perm

a permutation of the levels of n (or of the numbers 1:n), which define the order in which the coefficients must be monotonically non-decreasing.

contrasts

a logical indicating whether constrasts should be computed.

sparse

included for compatibility reasons. Has no effect.

Details

This function is used in creating the design matrix for categorical covariates with a specified order under a particular parameterisation. This is required if a categorical covariate is defined as monotonic.

In the order specified by perm, the coefficient associated with each level is the sum of increments between the following levels. That is, if there are a total of k levels, the first level is defined as d_2 + d_3 + d_4 + \cdots + d_k, the second as d_3 + d_4 + \cdots + d_k, the third as d_4 + \cdots + d_k, and so on. In fitting the model, these increments are constrained to be non-positive.

Note that these are not ‘contrasts’ as defined in the theory for linear models, rather this is used to define the contrasts attribute of each variable so that model.matrix produces the desired design matrix.

Value

A matrix with n rows and k columns, with k=n-1 if contrasts is TRUE and k=n if contrasts is FALSE.

Author(s)

Mark W. Donoghoe markdonoghoe@gmail.com

See Also

model.matrix, which uses contr.isotonic.rev to create the design matrix.

contr.treatment, contrasts for their usual use in regression models.

Examples

1
2
3
4
5
6
7
8
contr.isotonic.rev(4,1:4)
contr.isotonic.rev(4,c(1,3,2,4))

# Show how contr.isotonic.rev applies within model.matrix
x <- factor(round(runif(20,0,2)))
mf <- model.frame(~x)
contrasts(x) <- contr.isotonic.rev(levels(x), levels(x))
model.matrix(mf)