rcspline.eval {Hmisc} | R Documentation |
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
.
rcspline.eval(x, knots, nk=5, inclx=FALSE, knots.only=FALSE, type="ordinary", norm=2, rpm=NULL)
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.
|
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.
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.
x <- 1:100 rcspline.eval(x, nk=4, inclx=TRUE) #lrm.fit(rcspline.eval(age,nk=4,inclx=TRUE), death)