

   ns {splines}                                 R Documentation

   GGeenneerraattee aa BBaassiiss MMaattrriixx ffoorr NNaattuurraall CCuubbiicc SSpplliinneess

   DDeessccrriippttiioonn::

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

   UUssaaggee::

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

   AArrgguummeenntts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Vaalluue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Seeee AAllssoo::

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

   EExxaammpplleess::

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

