TITLE(bs @@ Generate a Basis for Polynomial Splines )
USAGE(
bs(x, df, knots, degree=3, intercept=FALSE, Boundary.knots)
)
ARGUMENTS(
ARG(x@@)
the predictor variable.
ARG(df@@)
degrees of freedom; one can specify LANG(df) rather than LANG(knots); LANG(bs()) then
chooses LANG(df-degree-1) knots at suitable quantiles of LANG(x).
ARG(knots@@)
the 
ITALIC( internal )
breakpoints that define the spline. The default is LANG(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
LANG(Boundary.knots).
ARG(degree@@)
degree of the piecewise polynomial---default is 3 for cubic splines.
ARG(intercept@@)
if LANG(TRUE), an intercept is included in the basis; default is LANG(FALSE).
ARG(Boundary.knots@@)
boundary points at which to anchor the B-spline basis (default the range of the data). If both LANG(knots) and LANG(Boundary.knots) are supplied, the basis parameters
do not depend on LANG(x). Data can extend beyond LANG(Boundary.knots)
)
PARA BOLD(VALUE)
a matrix of dimension LANG(length(x) * df), where either LANG(df) was supplied or
if LANG(knots) were supplied, LANG(df = length(knots) + 3 + intercept).
Attributes are returned that correspond to the arguments to LANG(bs), and
explicitly give the LANG(knots), LANG(Boundary.knots) etc for use by LANG(predict.bs()).

LANG(bs()) is based on the function LANG(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 LANG(x). A primary use is in modeling formulas to directly specify a piecewise polynomial term in a model. 

Beware of making predictions with new LANG(x) values when LANG(df) is used as an argument. Either use LANG(safe.predict.gam()), or else specify LANG(knots) and LANG(Boundary.knots).
PARA BOLD(SEE ALSO)
LANG(ns), LANG(poly), LANG(lo), LANG(s), LANG(smooth.spline), LANG(predict.bs).
BLANK

PARA BOLD( )
BLANK

EXAMPLES(
lm(y ~ bs(age, 4) + bs(income, 4)) # an additive model 
fit <- lm(y ~ bs(age, knots=c(20,30), B=c(0,100)))
predict(fit, new.age) #safe predictions because explicit knot sequence was supplied.
)
PARA ITALIC(File automatically converted from S(-PLUS) help format)
