

bs {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 rep-
     resenting 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.pre-
     dict.gam()', or else specify `knots' and `Bound-
     ary.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))

