Provides plots of the estimated restricted cubic spline function
relating a single predictor to the response for a logistic or Cox
model. The `rcspline.plot`

function does not allow for
interactions as do `lrm`

and `cph`

, but it can
provide detailed output for checking spline fits. This function uses
the `rcspline.eval`

, `lrm.fit`

, and Therneau's
`coxph.fit`

functions and plots the estimated spline
regression and confidence limits, placing summary statistics on the
graph. If there are no adjustment variables, `rcspline.plot`

can
also plot two alternative estimates of the regression function when
`model="logistic"`

: proportions or logit proportions on grouped
data, and a nonparametric estimate. The nonparametric regression
estimate is based on smoothing the binary responses and taking the
logit transformation of the smoothed estimates, if desired. The
smoothing uses `supsmu`

.

```
rcspline.plot(x,y,model=c("logistic", "cox", "ols"), xrange, event, nk=5,
knots=NULL, show=c("xbeta","prob"), adj=NULL, xlab, ylab,
ylim, plim=c(0,1), plotcl=TRUE, showknots=TRUE, add=FALSE,
subset, lty=1, noprint=FALSE, m, smooth=FALSE, bass=1,
main="auto", statloc)
```

list with components (`knots`, `x`, `xbeta`,

`lower`, `upper`) which are respectively the knot locations,
design matrix, linear predictor, and lower and upper confidence limits

- x
a numeric predictor

- y
a numeric response. For binary logistic regression,

`y`

should be either 0 or 1.- model
`"logistic"`

or`"cox"`

. For`"cox"`

, uses the`coxph.fit`

function with`method="efron"`

arguement set.- xrange
range for evaluating

`x`

, default is f and \(1 - f\) quantiles of`x`

, where \(f = \frac{10}{\max{(n, 200)}}\)- event
event/censoring indicator if

`model="cox"`

. If`event`

is present,`model`

is assumed to be`"cox"`

- nk
number of knots

- knots
knot locations, default based on quantiles of

`x`

(by`rcspline.eval`

)- show
`"xbeta"`

or`"prob"`

- what is plotted on`y`

-axis- adj
optional matrix of adjustment variables

- xlab
`x`

-axis label, default is the “label” attribute of`x`

- ylab
`y`

-axis label, default is the “label” attribute of`y`

- ylim
`y`

-axis limits for logit or log hazard- plim
`y`

-axis limits for probability scale- plotcl
plot confidence limits

- showknots
show knot locations with arrows

- add
add this plot to an already existing plot

- subset
subset of observations to process, e.g.

`sex == "male"`

- lty
line type for plotting estimated spline function

- noprint
suppress printing regression coefficients and standard errors

- m
for

`model="logistic"`

, plot grouped estimates with triangles. Each group contains`m`

ordered observations on`x`

.- smooth
plot nonparametric estimate if

`model="logistic"`

and`adj`

is not specified- bass
smoothing parameter (see

`supsmu`

)- main
main title, default is

`"Estimated Spline Transformation"`

- statloc
location of summary statistics. Default positioning by clicking left mouse button where upper left corner of statistics should appear. Alternative is

`"ll"`

to place below the graph on the lower left, or the actual`x`

and`y`

coordinates. Use`"none"`

to suppress statistics.

Frank Harrell

Department of Biostatistics, Vanderbilt University

fh@fharrell.com

```
#rcspline.plot(cad.dur, tvdlm, m=150)
#rcspline.plot(log10(cad.dur+1), tvdlm, m=150)
```

Run the code above in your browser using DataLab