View source: R/model.matrix.vglm.q
model.matrixvlm | R Documentation |
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"
).
model.matrixvlm(object, type = c("vlm", "lm", "lm2", "bothlmlm2"),
linpred.index = NULL, label.it = TRUE, ...)
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 |
linpred.index |
Vector of integers.
The index for a linear/additive predictor,
it must have values from the set |
label.it |
Logical. Label the row and columns with character names?
If |
... |
further arguments passed to or from other methods.
These include |
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
).
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"
.
Sometimes
(especially if x = TRUE
when calling vglm
)
the model matrix has attributes:
"assign"
("lm"
-type) and
"vassign"
("vlm"
-type) and
"orig.assign.lm"
("lm"
-type).
These are used internally a lot for bookkeeping,
especially regarding
the columns of both types of model matrices.
In particular, constraint matrices and variable selection
relies on this information a lot.
The "orig.assign.lm"
is the ordinary "assign"
attribute for lm
and glm
objects.
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.
model.matrix
,
model.framevlm
,
predictvglm
,
smartpred
,
constraints.vlm
,
trim.constraints
,
add1.vglm
,
drop1.vglm
,
step4vglm
.
# (I) Illustrates smart prediction ,,,,,,,,,,,,,,,,,,,,,,,
pneumo <- transform(pneumo, let = log(exposure.time))
fit <- vglm(cbind(normal, mild, severe) ~
sm.poly(c(sm.scale(let)), 2),
multinomial, data = pneumo, trace = TRUE, x = FALSE)
class(fit)
fit@smart.prediction # Data-dependent parameters
fit@x # Not saved on the object
model.matrix(fit)
model.matrix(fit, linpred.index = 1, type = "lm")
model.matrix(fit, linpred.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)) # Should be TRUE
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
# (II) Attributes ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
fit2 <- vglm(cbind(normal, mild, severe) ~ let, # x = TRUE
multinomial, data = pneumo, trace = TRUE)
fit2@x # "lm"-type; saved on the object; note the attributes
model.matrix(fit2, type = "lm") # Note the attributes
model.matrix(fit2, type = "vlm") # Note the attributes
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.