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.