| bs {splines} | R Documentation |
Generate the B-spline basis matrix for a cubic spline.
bs(x, df, knots, degree=3, intercept=FALSE, Boundary.knots)
x |
the predictor variable. |
df |
degrees of freedom; one can specify df rather than
knots; bs() then chooses df-degree-1 knots at
suitable quantiles of x. |
knots |
the internal breakpoints that define the
spline. The default is NULL, which results in a basis for
ordinary polynomial regression. Typical values are the mean or
median for one knot, quantiles for more knots. See also
Boundary.knots. |
degree |
degree of the piecewise polynomialdefault is 3 for cubic splines. |
intercept |
if TRUE, an intercept is included in the
basis; default is FALSE. |
Boundary.knots |
boundary points at which to anchor the B-spline
basis (default the range of the data). If both knots and
Boundary.knots are supplied, the basis parameters do not
depend on x. Data can extend beyond Boundary.knots |
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.
ns, poly, smooth.spline,
predict.bs.
data(women) bs(women$height, df = 5) summary(fm1 <- lm(weight ~ bs(height, df = 5), data = women))