

ns {splines}                                 R Documentation

_G_e_n_e_r_a_t_e _a _B_a_s_i_s _M_a_t_r_i_x _f_o_r _N_a_t_u_r_a_l _C_u_b_i_c _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 natural cubic
     spline.

_U_s_a_g_e_:

     ns(x, df, knots, intercept=F, Boundary.knots)

_A_r_g_u_m_e_n_t_s_:

       x: the predictor variable.

      df: degrees of freedom. One can supply `df' rather
          than knots; `ns()' then chooses `df - 1 - inter-
          cept' knots at suitably chosen quantiles of `x'.

   knots: breakpoints that define the spline. The default is
          no knots; together with the natural boundary con-
          ditions this results in a basis for linear regres-
          sion on `x'.  Typical values are the mean or
          median for one knot, quantiles for more knots. See
          also `Boundary.knots'.

intercept: if `TRUE', an intercept is included in the basis;
          default is `FALSE'.

Boundary.knots: boundary points at which to impose the natu-
          ral boundary conditions and 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) + 1 + intercept'.  Attributes are
     returned that correspond to the arguments to `ns', and
     explicitly give the `knots', `Boundary.knots' etc for
     use by `predict.ns()'.

     `ns()' is based on the function `spline.des()'.  It
     generates a basis matrix for representing the family of
     piecewise-cubic splines with the specified sequence of
     interior knots, and the natural boundary conditions.
     These enforce the constraint that the function is lin-
     ear beyond the boundary knots, which can either be sup-
     plied, else default to the extremes of the data.  A
     primary use is in modeling formula to directly specify
     a natural spline 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_:

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

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

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

