Learn R Programming

VGAM (version 0.8-2)

constraints: Constraint Matrices

Description

Extractor function for the constraint matrices of objects in the VGAM package.

Usage

constraints(object, ...)

Arguments

object
Some VGAM object, for example, having class vglmff-class.
...
Other possible arguments such as type.

Value

  • This extractor function returns a list comprising of constraint matrices---usually one for each column of the VLM model matrix, and in that order. The list is labelled with the variable names. Each constraint matrix has $M$ rows, where $M$ is the number of linear/additive predictors, and whose rank is equal to the number of columns. A model with no constraints at all has an order $M$ identity matrix as each variable's constraint matrix.

    For vglm and vgam objects, feeding in the "lm"-type constraint matrices back into the same model should work and give an identical model. The default are the "vlm"-type constraint matrices. See the constraints argument of vglm, and the example below.

Details

Constraint matrices describe the relationship of coefficients/component functions of a particular explanatory variable between the linear/additive predictors in VGLM/VGAM models. For example, they may be all different (constraint matrix is the identity matrix) or all the same (constraint matrix has one column and has unit values).

VGLMs and VGAMs have constraint matrices which are known. The class of RR-VGLMs have constraint matrices which are unknown and are to be estimated.

References

Yee, T. W. and Wild, C. J. (1996) Vector generalized additive models. Journal of the Royal Statistical Society, Series B, Methodological, 58, 481--493.

Yee, T. W. and Hastie, T. J. (2003) Reduced-rank vector generalized linear models. Statistical Modelling, 3, 15--41.

http://www.stat.auckland.ac.nz/~yee contains additional information.

See Also

VGLMs are described in vglm-class; RR-VGLMs are described in rrvglm-class.

Arguments such as zero and parallel found in many VGAM family functions are a way of creating/modifying constraint matrices conveniently, e.g., see zero. See CommonVGAMffArguments for more information.

Examples

Run this code
# Fit the proportional odds model:
pneumo <- transform(pneumo, let = log(exposure.time))
(fit1 <- vglm(cbind(normal, mild, severe) ~ bs(let, 3),
              cumulative(parallel = TRUE, reverse = TRUE), pneumo))
coef(fit1, matrix = TRUE)
constraints(fit1)  # Parallel assumption results in this
constraints(fit1, type = "vlm") # This is the same as the default ("vlm"-type)

# An equivalent model to fit1 (needs the type "lm" constraints):
clist.lm <- constraints(fit1, type = "lm") # The "lm"-type constraints
(fit2 <- vglm(cbind(normal, mild, severe) ~ bs(let, 3),
              cumulative(reverse = TRUE), pneumo, constraints = clist.lm))
abs(max(coef(fit1, matrix = TRUE) -
        coef(fit2, matrix = TRUE))) # Should be zero

# Fit a rank-1 stereotype (RR-multinomial logit) model:
data(car.all)
fit <- rrvglm(Country ~ Width + Height + HP, multinomial, car.all, Rank = 1)
constraints(fit) # All except the first are the estimated A matrix

Run the code above in your browser using DataLab