| bs {splines} | R Documentation |
Generate a Basis for Polynomial Splines
Description
Generate the B-spline basis matrix for a polynomial spline.
Usage
bs(x, df = NULL, knots = NULL, degree = 3, intercept = FALSE,
Boundary.knots = range(x))
Arguments
x |
the predictor variable. |
df |
degrees of freedom; one can specify |
knots |
the internal breakpoints that define the
spline. The default is |
degree |
degree of the piecewise polynomial—default is 3 for cubic splines. |
intercept |
if |
Boundary.knots |
boundary points at which to anchor the B-spline
basis (default the range of the data). If both |
Value
A matrix of dimension length(x) * df, where either df
was supplied or if knots were supplied,
df = length(knots) + 3 + intercept. Attributes are returned
that correspond to the arguments to bs, and explicitly give
the knots, Boundary.knots etc for use by
predict.bs().
bs() is based on the function spline.des()
written by Douglas Bates. It generates a basis matrix for
representing the family of piecewise polynomials with the specified
interior knots and degree, evaluated at the values of x. A
primary use is in modeling formulas to directly specify a piecewise
polynomial term in a model.
Beware of making predictions with new x values when df
is used as an argument. Either use safe.predict.gam(), or else
specify knots and Boundary.knots.
See Also
ns, poly, smooth.spline,
predict.bs, SafePrediction
Examples
data(women)
bs(women$height, df = 5)
summary(fm1 <- lm(weight ~ bs(height, df = 5), data = women))
## example of safe prediction
plot(women, xlab = "Height (in)", ylab = "Weight (lb)")
ht <- seq(57, 73, len = 200)
lines(ht, predict(fm1, data.frame(height=ht)))