Hmisc (version 2.2-0)

rcspline.eval: 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 th
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
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

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

Run the code above in your browser using DataCamp Workspace