bs                  package:splines                  R Documentation

_G_e_n_e_r_a_t_e _a _B_a_s_i_s _f_o_r _P_o_l_y_n_o_m_i_a_l _S_p_l_i_n_e_s

_D_e_s_c_r_i_p_t_i_o_n:

     Generate the B-spline basis matrix for a cubic spline.

_U_s_a_g_e:

     bs(x, df, knots, degree=3, intercept=FALSE, Boundary.knots)

_A_r_g_u_m_e_n_t_s:

       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'

_V_a_l_u_e:

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

_S_e_e _A_l_s_o:

     `ns', `poly', `smooth.spline', `predict.bs'.

_E_x_a_m_p_l_e_s:

     library(splines)
     data(women)
     bs(women$height, df = 5)
     summary(fm1 <- lm(weight ~ bs(height, df = 5), data = women))

