Learn R Programming

VGAM (version 0.9-1)

model.matrixvlm: Construct the Design Matrix of a VLM Object

Description

Creates a design matrix. Two types can be returned: a large one (class "vlm" or one that inherits from this such as "vglm") or a small one (such as returned if it were of class "lm").

Usage

model.matrixvlm(object, type = c("vlm", "lm", "lm2", "bothlmlm2"),
                lapred.index = NULL, ...)

Arguments

object
an object of a class that inherits from the vector linear model (VLM).
type
Type of design matrix returned. The first is the default. The value "vlm" is the VLM model matrix corresponding to the formula argument. The value "lm" is the LM model matrix corresponding to the formu
lapred.index
Single integer. The index for a linear/additive predictor, it must have a value from the set 1:M, and type = "lm" must be assigned. Then it returns a subset of the VLM matrix corresponding to the lapred.ind
...
further arguments passed to or from other methods. These include data (which is a data frame created with model.framevlm), contrasts.arg, and xlev.

Value

  • The design matrix for a regression model with the specified formula and data. If type = "bothlmlm2" then a list is returned with components "X" and "Xm2".

Details

This function creates a design matrix from object. This can be a small LM object or a big VLM object (default). The latter is constructed from the former and the constraint matrices.

This code implements smart prediction (see smartpred).

References

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

Chambers, J. M. (1992) Data for models. Chapter 3 of Statistical Models in S eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.

See Also

model.matrix, model.framevlm, predictvglm, smartpred.

Examples

Run this code
# Illustrates smart prediction
pneumo <- transform(pneumo, let = log(exposure.time))
fit <- vglm(cbind(normal, mild, severe) ~ poly(c(scale(let)), 2),
            multinomial, data = pneumo, trace = TRUE, x = FALSE)
class(fit)
fit@x # Not saved on the object
model.matrix(fit)
model.matrix(fit, lapred.index = 1, type = "lm")
model.matrix(fit, lapred.index = 2, type = "lm")

(Check1 <- head(model.matrix(fit, type = "lm")))
(Check2 <- model.matrix(fit, data = head(pneumo), type = "lm"))
all.equal(c(Check1), c(Check2))

q0 <- head(predict(fit))
q1 <- head(predict(fit, newdata = pneumo))
q2 <- predict(fit, newdata = head(pneumo))
all.equal(q0, q1) # Should be TRUE
all.equal(q1, q2) # Should be TRUE

Run the code above in your browser using DataLab