flexsurvspline {flexsurv} | R Documentation |
Flexible survival regression using the Royston/Parmar spline model.
Description
Flexible parametric modelling of time-to-event data using the spline model of Royston and Parmar (2002).
Usage
flexsurvspline(
formula,
data,
weights,
bhazard,
rtrunc,
subset,
k = 0,
knots = NULL,
bknots = NULL,
scale = "hazard",
timescale = "log",
spline = "rp",
...
)
Arguments
formula |
A formula expression in conventional R linear modelling
syntax. The response must be a survival object as returned by the
specifies a model where the log cumulative hazard (by default, see
If there are no covariates, specify Time-varying covariate effects can be specified using the method described
in Therefore a model with one internal spline knot, where the equivalents of
the Weibull shape and scale parameters, but not the higher-order term
or alternatively (and more safely, see
|
data |
A data frame in which to find variables supplied in
|
weights |
Optional variable giving case weights. |
bhazard |
Optional variable giving expected hazards for relative survival models. |
rtrunc |
Optional variable giving individual right-truncation times (see |
subset |
Vector of integers or logicals specifying the subset of the observations to be used in the fit. |
k |
Number of knots in the spline. The default |
knots |
Locations of knots on the axis of log time (or time, see
|
bknots |
Locations of boundary knots, on the axis of log time (or
time, see |
scale |
If If If |
timescale |
If |
spline |
|
... |
Any other arguments to be passed to or through
|
Details
This function works as a wrapper around flexsurvreg
by
dynamically constructing a custom distribution using
dsurvspline
, psurvspline
and
unroll.function
.
In the spline-based survival model of Royston and Parmar (2002), a
transformation g(S(t,z))
of the survival function is modelled as a
natural cubic spline function of log time x = \log(t)
plus linear effects of covariates z
.
g(S(t,z)) = s(x, \bm{\gamma}) + \bm{\beta}^T \mathbf{z}
The proportional hazards model (scale="hazard"
) defines
g(S(t,\mathbf{z})) = \log(-\log(S(t,\mathbf{z}))) =
\log(H(t,\mathbf{z}))
, the
log cumulative hazard.
The proportional odds model (scale="odds"
) defines
g(S(t,\mathbf{z}))
=
\log(S(t,\mathbf{z})^{-1} - 1)
, the log
cumulative odds.
The probit model (scale="normal"
) defines g(S(t,\mathbf{z})) =
-\Phi^{-1}(S(t,\mathbf{z}))
, where \Phi^{-1}()
is the inverse normal
distribution function qnorm
.
With no knots, the spline reduces to a linear function, and these models are equivalent to Weibull, log-logistic and lognormal models respectively.
The spline coefficients \gamma_j: j=1, 2 \ldots
, which are called the "ancillary parameters" above, may also be
modelled as linear functions of covariates \mathbf{z}
, as
\gamma_j(\mathbf{z}) = \gamma_{j0} + \gamma_{j1}z_1 + \gamma_{j2}z_2
+ ...
giving a model where the effects of covariates are arbitrarily flexible functions of time: a non-proportional hazards or odds model.
Natural cubic splines are cubic splines constrained to be linear beyond
boundary knots k_{min},k_{max}
. The spline function is
defined as
s(x,\bm{\gamma}) = \gamma_0 + \gamma_1 x + \gamma_2 v_1(x) + \ldots +
\gamma_{m+1} v_m(x)
where v_j(x)
is the j
th basis function
v_j(x) = (x - k_j)^3_+ - \lambda_j(x - k_{min})^3_+ - (1 -
\lambda_j) (x - k_{max})^3_+
\lambda_j = \frac{k_{max} - k_j}{k_{max} - k_{min}}
and (x - a)_+ = max(0, x - a)
.
Value
A list of class "flexsurvreg"
with the same elements as
described in flexsurvreg
, and including extra components
describing the spline model. See in particular:
k |
Number of knots. |
knots |
Location of knots on the log time axis. |
scale |
The |
res |
Matrix of maximum likelihood estimates and confidence limits.
Spline coefficients are labelled Coefficients In the Weibull model, for example, In the log-logistic model with shape In the log-normal model with log-scale mean |
loglik |
The maximised log-likelihood. This will differ from Stata, where the sum of the log uncensored survival times is added to the log-likelihood in survival models, to remove dependency on the time scale. |
Author(s)
Christopher Jackson <chris.jackson@mrc-bsu.cam.ac.uk>
References
Royston, P. and Parmar, M. (2002). Flexible parametric proportional-hazards and proportional-odds models for censored survival data, with application to prognostic modelling and estimation of treatment effects. Statistics in Medicine 21(1):2175-2197.
Wang W, Yan J (2021). Shape-Restricted Regression Splines with R Package splines2. Journal of Data Science, 19(3), 498-517.
Jackson, C. (2016). flexsurv: A Platform for Parametric Survival Modeling in R. Journal of Statistical Software, 70(8), 1-33. doi:10.18637/jss.v070.i08
See Also
flexsurvreg
for flexible survival modelling using
general parametric distributions.
plot.flexsurvreg
and lines.flexsurvreg
to plot
fitted survival, hazards and cumulative hazards from models fitted by
flexsurvspline
and flexsurvreg
.
Examples
## Best-fitting model to breast cancer data from Royston and Parmar (2002)
## One internal knot (2 df) and cumulative odds scale
spl <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=1, scale="odds")
## Fitted survival
plot(spl, lwd=3, ci=FALSE)
## Simple Weibull model fits much less well
splw <- flexsurvspline(Surv(recyrs, censrec) ~ group, data=bc, k=0, scale="hazard")
lines(splw, col="blue", ci=FALSE)
## Alternative way of fitting the Weibull
## Not run:
splw2 <- flexsurvreg(Surv(recyrs, censrec) ~ group, data=bc, dist="weibull")
## End(Not run)