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 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
|
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, lo, s, smooth.spline,
predict.bs.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.