| 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 jth 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)