# bs {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. Missing values are allowed.
- df
- degrees of freedom; one can specify
`df`

rather than`knots`

;`bs()`

then chooses`df-degree`

(minus one if there is an intercept) knots at suitable quantiles of`x`

(which will ignore missing values). The default,`NULL`

, corresponds to*no*inner knots, i.e.,`degree - intercept`

. - 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 polynomial---default 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`

.

### Details

`bs`

is based on the function `spline.des`

. 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.

### Values

A matrix of dimension `c(length(x), df)`

, where either `df`

was supplied or if `knots`

were supplied, `df = length(knots) + degree`

plus one if there is an intercept. Attributes are returned that correspond to the arguments to `bs`

, and explicitly give the `knots`

, `Boundary.knots`

etc for use by `predict.bs()`

.

### References

Hastie, T. J. (1992) Generalized additive models. Chapter 7 of *Statistical Models in S* eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.

### See Also

`ns`

, `poly`

, `smooth.spline`

, `predict.bs`

, `SafePrediction`

### Examples

Documentation reproduced from R 3.0.2. License: GPL-2.