

_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

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

_E_x_a_m_p_l_e_s:

     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.

