rcspline.eval {Hmisc} | R Documentation

## Restricted Cubic Spline Design Matrix

### Description

Computes matrix that expands a single variable into the terms needed to fit a restricted cubic spline (natural spline) function using the truncated power basis. Two normalization options are given for somewhat reducing problems of ill-conditioning. The antiderivative function can be optionally created. If knot locations are not given, they will be estimated from the marginal distribution of `x`.

### Usage

    rcspline.eval(x, knots, nk=5, inclx=FALSE, knots.only=FALSE,
                  type="ordinary", norm=2, rpm=NULL)

### Arguments

`x` | a vector representing a predictor variable
`knots` | knot locations. If not given, knots will be estimated using default quantiles of `x`. For 3-5 knots, the outer quantiles used are .05 and .95. For `nk>5`, the outer quantiles are .025 and .975. The knots are equally spaced between these on the quantile scale. For fewer than 100 non-missing values of `x`, the outer knots are the 5th smallest and largest `x`.
`nk` | number of knots. Default is 5. The minimum value is 3.
`inclx` | set to `TRUE` to add `x` as the first column of the returned matrix
`knots.only` | return the estimated knot locations but not the expanded matrix
`type` | `"ordinary"` to fit the function, `"integral"` to fit its anti-derivative.
`norm` | `0` to use the terms as originally given by Devlin and Weeks (1986), `1` to normalize non-linear terms by the cube of the spacing between the last two knots, `2` to normalize by the square of the spacing between the first and last knots (the default). `norm=2` has the advantage of making all nonlinear terms be on the `x`-scale.
`rpm` | If given, any NAs in `x` will be replaced with the value `rpm` after estimating any knot locations.

### Value

If `knots.only=TRUE`, returns a vector of knot locations. Otherwise returns a matrix with `x` (if `inclx=TRUE`) followed by `nk-2` nonlinear terms. The matrix has an attribute `knots` which is the vector of knots used.

### References

Devlin TF and Weeks BJ (1986): Spline functions for logistic regression modeling. Proc 11th Annual SAS Users Group Intnl Conf, p. 646–651. Cary NC: SAS Institute, Inc.

### See Also

`ns`, `rcspline.restate`, `rcs`

### Examples

    x <- 1:100
    rcspline.eval(x, nk=4, inclx=TRUE)
    #lrm.fit(rcspline.eval(age,nk=4,inclx=TRUE), death)

[Package Contents]