splineDesign
Design Matrix for B-splines
Description
Evaluate the design matrix for non-zero B-spline basis functions (or their derivatives).
Usage
splineDesign(knots, x, ord = 4, derivs = integer(nx), outer.ok = FALSE, sparse = FALSE)
Arguments
knots |
a numeric vector specifying the knots position of a B-spline. This vector is sorted
by non-decreasing, and the number of knots must be at least ord.
If outer.ok is FALSE, the number of knots must be at least 2*ord-1.
|
x |
a numeric vector specifying the values at which the B-spline functions
or derivatives are evaluated. If outer.ok is FALSE, the values of x must be
in the range of knots[ord] and knots[length(knots) - ord +1].
|
ord |
a positive integer specifying the order of the spline. Its value must be
at most the number of knots. The default is 4.
|
derivs |
an integer vector with the same length as x, and with values between 0 and ord - 1.
The default is a vector of zeroes with the same length as x.
|
outer.ok |
a logical value.
allow values of x that are below knots[ord] or above knots[length(knots)-ord+1].
The basis functions will not add to 1 outside of this range, in fact they will add to 0
outside the range of all the knots, so this is not recommended for use in regresion.
|
sparse |
a logical value. This argument is assumed to be FALSE until sparse matrices are supported.
Until then, if sparse is set to TRUE, splineDesign returns a warning.
|
Details
This function returns a design matrix with length(x) rows and
length(knots)-ord columns. Each row of the matrix contains
the coefficients of the B-splines or the derivative of the B-splines.
These splines are defined by the knots vector and evaluated
at the values of x. The total number of B-splines is
length(knots)-ord because each B-spline is defined by
a set of ord successive knots.
Value
returns a matrix described in the DETAILS section.
See Also
bs and
ns use
splineDesign to construct
spline basis functions useful for regression.
Examples
x <- seq(1, 5, by=1/4)
basis <- splineDesign(knots = c(1, 1, 1, 1, 3, 4, 5, 5, 5, 5), x = x)
dbasis <- splineDesign(knots = c(1, 1, 1, 1, 3, 4, 5, 5, 5, 5), x = x,
derivs = rep(1,17))