| as.basis {basefun} | R Documentation |
Convert Formula or Factor to Basis Function
Description
Convert a formula or factor to basis functions
Usage
as.basis(object, ...)
## S3 method for class 'formula'
as.basis(object, data = NULL, remove_intercept = FALSE,
ui = NULL, ci = NULL, negative = FALSE, scale = FALSE,
Matrix = FALSE, prefix = "", ...)
## S3 method for class 'factor_var'
as.basis(object, ...)
## S3 method for class 'ordered_var'
as.basis(object, ...)
## S3 method for class 'factor'
as.basis(object, ...)
## S3 method for class 'ordered'
as.basis(object, ...)
Arguments
object |
a formula or an object of class |
data |
either a |
remove_intercept |
a logical indicating if any intercept term shall be removed |
ui |
a matrix defining constraints |
ci |
a vector defining constraints |
negative |
a logical indicating negative basis functions |
scale |
a logical indicating a scaling of each column of the
model matrix to the unit interval (based on observations in |
Matrix |
a logical requesting a sparse model matrix, that is, a
|
prefix |
character prefix for model matrix column names (allows disambiguation of parameter names). |
... |
additional arguments to |
Details
as.basis returns a function for the evaluation of
the basis functions with corresponding model.matrix and predict
methods.
Unordered factors (classes factor and factor_var) use a dummy coding and
ordered factor (classes ordered or ordered_var) lead to a treatment contrast
to the last level and removal of the intercept term with monotonicity constraint.
Additional arguments (...) are ignored for ordered factors.
Linear constraints on parameters parm are defined by ui %*% parm >= ci.
Examples
## define variables and basis functions
v <- c(numeric_var("x"), factor_var("y", levels = LETTERS[1:3]))
fb <- as.basis(~ x + y, data = v, remove_intercept = TRUE, negative = TRUE,
contrasts.arg = list(y = "contr.sum"))
## evaluate basis functions
model.matrix(fb, data = as.data.frame(v, n = 10))
## basically the same as (but wo intercept and times -1)
model.matrix(~ x + y, data = as.data.frame(v, n = 10))
### factor
xf <- gl(3, 1)
model.matrix(as.basis(xf), data = data.frame(xf = xf))
### ordered
xf <- gl(3, 1, ordered = TRUE)
model.matrix(as.basis(xf), data = data.frame(xf = unique(xf)))