| Title: | Estimation of the Proportion of Treatment Effect Explained by Surrogate Outcome Information |
|---|---|
| Description: | Provides functions to estimate the proportion of treatment effect on a censored primary outcome that is explained by the treatment effect on a censored surrogate outcome/event. All methods are described in detail in Parast, et al (2020) "Assessing the Value of a Censored Surrogate Outcome" <doi:10.1007/s10985-019-09473-1> and Wang et al (2025) "Model-free Approach to Evaluate a Censored Intermediate Outcome as a Surrogate for Overall Survival" (Under Review) <doi:10.48550/arXiv.2412.14129>. A tutorial for this package can be found at <https://www.laylaparast.com/surrogateoutcome>. |
| Authors: | Layla Parast [aut, cre], Xuan Wang [aut] |
| Maintainer: | Layla Parast <[email protected]> |
| License: | GPL |
| Version: | 1.2 |
| Built: | 2026-06-06 07:02:41 UTC |
| Source: | https://github.com/laylaparast/surrogateoutcome |
Estimates the treatment effect at time t, defined as the difference in the restricted mean survival time.
delta.estimate(xone, xzero, deltaone, deltazero, t, std = FALSE, conf.int = FALSE, weight.perturb = NULL)delta.estimate(xone, xzero, deltaone, deltazero, t, std = FALSE, conf.int = FALSE, weight.perturb = NULL)
xone |
numeric vector, observed event times for the primary outcome in the treatment group. |
xzero |
numeric vector, observed event times for the primary outcome in the control group. |
deltaone |
numeric vector, event/censoring indicators for the primary outcome in the treatment group. |
deltazero |
numeric vector, event/censoring indicators for the primary outcome in the control group. |
t |
time of interest for treatment effect. |
std |
TRUE or FALSE; indicates whether standard error estimates should be provided, default is FALSE. Estimates are calculated using perturbation-resampling. Two versions are provided: one that takes the standard deviation of the perturbed estimates (denoted as "sd") and one that takes the median absolute deviation (denoted as "mad"). |
conf.int |
TRUE or FALSE; indicates whether 95% confidence intervals should be provided. Confidence intervals are calculated using the percentiles of perturbed estimates, default is FALSE. If this is TRUE, standard error estimates are automatically provided. |
weight.perturb |
weights used for perturbation resampling. |
Let be the randomized treatment indicator and denote the time of the primary outcome of interest. We use potential outcomes notation such that denotes the time of the primary outcome under treatment G, for . We define the treatment effect as the difference in restricted mean survival time up to a fixed time under treatment 1 versus under treatment 0,
where indicates the minimum. Due to censoring, data consist of independent observations , where , , denotes the censoring time, denotes the time of the primary outcome, and are identically distributed within treatment group. The quantity is estimated using inverse probability of censoring weights:
where and is the Kaplan-Meier estimator of
A list is returned:
delta |
the estimate, |
rmst.1 |
the estimated restricted mean survival time in group 1, described above. |
rmst.0 |
the estimated restricted mean survival time in group 0, described above. |
delta.sd |
the standard error estimate of |
delta.mad |
the standard error estimate of |
conf.int.delta |
a vector of size 2; the 95% confidence interval for |
Layla Parast
Parast L, Tian L, and Cai T (2020). Assessing the Value of a Censored Surrogate Outcome. Lifetime Data Analysis, 26(2):245-265.
Tian, L, Zhao, L, & Wei, LJ (2013). Predicting the restricted mean event time with the subject's baseline covariates in survival analysis. Biostatistics, 15(2), 222-233.
Royston, P, & Parmar, MK (2011). The use of restricted mean survival time to estimate the treatment effect in randomized clinical trials when the proportional hazards assumption is in doubt. Statistics in Medicine, 30(19), 2409-2421.
data(ExampleData) names(ExampleData) delta.estimate(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, t = 5) delta.estimate(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, t = 5, std = TRUE, conf.int = TRUE)data(ExampleData) names(ExampleData) delta.estimate(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, t = 5) delta.estimate(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, t = 5, std = TRUE, conf.int = TRUE)
Calculates the residual treatment effect (the difference in restricted mean survival time at time t) after accounting for the treatment effect on the surrogate outcome information up to the landmark time; uses nonparametric estimation.
delta.q.event.RMST(xone, xzero, deltaone, deltazero, sone, szero, t, weight = NULL, landmark = landmark, deltaslist = TRUE, transform = FALSE, extrapolate=TRUE, number, warn.extrapolate=TRUE)delta.q.event.RMST(xone, xzero, deltaone, deltazero, sone, szero, t, weight = NULL, landmark = landmark, deltaslist = TRUE, transform = FALSE, extrapolate=TRUE, number, warn.extrapolate=TRUE)
xone |
numeric vector, observed event times for the primary outcome in the treatment group. |
xzero |
numeric vector, observed event times for the primary outcome in the control group. |
deltaone |
numeric vector, event/censoring indicators for the primary outcome in the treatment group. |
deltazero |
numeric vector, event/censoring indicators for the primary outcome in the control group. |
sone |
numeric vector, observed event times for the surrogate outcome in the treatment group. |
szero |
numeric vector, observed event times for the surrogate outcome in the control group. |
t |
time of interest for treatment effect. |
weight |
optional weight. |
landmark |
landmark time of interest, |
deltaslist |
TRUE or FALSE; if TRUE, each component of the residual treatment effect is returned along with the residual treatment effect itself, if FALSE, only the residual treatment effect is returned. |
transform |
TRUE or FALSE; indicates whether a transformation should be used, default is FALSE. |
extrapolate |
TRUE or FALSE; indicates whether local constant extrapolation should be used, default is TRUE. |
number |
number of points for RMST calculation, default is 40. |
warn.extrapolate |
TRUE or FALSE; indicates whether user prefers a warning message when extrapolation is used, default is TRUE. |
See documentation for R.q.event for details.
A list is returned:
delta.q |
the estimated residual treatment effect |
first.term |
the first term of the residual treatment effect, if deltaslist = TRUE |
second.term |
the second term of the residual treatment effect, if deltaslist = TRUE |
third.term |
the third term of the residual treatment effect, if deltaslist = TRUE |
Layla Parast
Parast L, Tian L, and Cai T (2020). Assessing the Value of a Censored Surrogate Outcome. Lifetime Data Analysis, 26(2):245-265.
data(ExampleData) names(ExampleData) delta.q.event.RMST(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, number = 40) delta.q.event.RMST(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 4, landmark=2, number = 40)data(ExampleData) names(ExampleData) delta.q.event.RMST(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, number = 40) delta.q.event.RMST(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 4, landmark=2, number = 40)
Calculates the residual treatment effect (the difference in restricted mean survival time at time t) after accounting for the treatment effect on the surrogate outcome information up to the landmark time; uses semi-parametric estimation.
delta.q.event.semi.RMST(xone, xzero, deltaone, deltazero, sone, szero, t, weight = NULL, landmark = landmark, deltaslist = TRUE, number)delta.q.event.semi.RMST(xone, xzero, deltaone, deltazero, sone, szero, t, weight = NULL, landmark = landmark, deltaslist = TRUE, number)
xone |
numeric vector, observed event times for the primary outcome in the treatment group. |
xzero |
numeric vector, observed event times for the primary outcome in the control group. |
deltaone |
numeric vector, event/censoring indicators for the primary outcome in the treatment group. |
deltazero |
numeric vector, event/censoring indicators for the primary outcome in the control group. |
sone |
numeric vector, observed event times for the surrogate outcome in the treatment group. |
szero |
numeric vector, observed event times for the surrogate outcome in the control group. |
t |
time of interest for treatment effect. |
weight |
optional weight. |
landmark |
landmark time of interest, |
deltaslist |
TRUE or FALSE; if TRUE, each component of the residual treatment effect is returned along with the residual treatment effect itself, if FALSE, only the residual treatment effect is returned. |
number |
number of points for RMST calculation, default is 40. |
See documentation for R.q.event for details.
A list is returned:
delta.q |
the estimated residual treatment effect |
first.term |
the first term of the residual treatment effect, if deltaslist = TRUE |
second.term |
the second term of the residual treatment effect, if deltaslist = TRUE |
third.term |
the third term of the residual treatment effect, if deltaslist = TRUE |
Layla Parast
Parast L, Tian L, and Cai T (2020). Assessing the Value of a Censored Surrogate Outcome. Lifetime Data Analysis, 26(2):245-265.
data(ExampleData) names(ExampleData) delta.q.event.semi.RMST(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, number = 40) delta.q.event.semi.RMST(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 3, landmark=2, number = 40)data(ExampleData) names(ExampleData) delta.q.event.semi.RMST(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, number = 40) delta.q.event.semi.RMST(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 3, landmark=2, number = 40)
Calculates the residual treatment effect (the difference in restricted mean survival time at time t) after accounting for the treatment effect on the primary outcome up to the landmark time
delta.t.RMST(xone, xzero, deltaone, deltazero, t, weight = NULL, landmark = landmark)delta.t.RMST(xone, xzero, deltaone, deltazero, t, weight = NULL, landmark = landmark)
xone |
numeric vector, observed event times for the primary outcome in the treatment group. |
xzero |
numeric vector, observed event times for the primary outcome in the control group. |
deltaone |
numeric vector, event/censoring indicators for the primary outcome in the treatment group. |
deltazero |
numeric vector, event/censoring indicators for the primary outcome in the control group. |
t |
time of interest for treatment effect. |
weight |
optional weight. |
landmark |
landmark time of interest, |
See documentation for R.t.estimate for details.
delta.t |
the estimated residual treatment effect after accounting for the treatment effect on the primary outcome up to the landmark time |
Layla Parast
Parast L, Tian L, and Cai T (2020). Assessing the Value of a Censored Surrogate Outcome. Lifetime Data Analysis, 26(2):245-265.
data(ExampleData) names(ExampleData) delta.t.RMST(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, t = 5, landmark=2)data(ExampleData) names(ExampleData) delta.t.RMST(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, t = 5, landmark=2)
Hypothetical data to be used in examples; t=5 and the landmark time = 2.
data(ExampleData)data(ExampleData)
A list with 6 elements representing 1000 observations from a control group and 1000 observations from a treatment group:
s1Time of the occurrence of the surrogate outcome for treated observations.
x1The observed event or censoring time for treated observations; X = min(T, C) where T is the time of the primary outcome and C is the censoring time.
delta1The indicator identifying whether the treated observation was observed to have the event or was censored; D =1*(T<C) where T is the time of the primary outcome and C is the censoring time.
s0Time of the occurrence of the surrogate outcome for control observations.
x0The observed event or censoring time for control observations; X = min(T, C) where T is the time of the primary outcome and C is the censoring time.
delta0The indicator identifying whether the control observation was observed to have the event or was censored; D =1*(T<C) where T is the time of the primary outcome and C is the censoring time.
Note that the time of the surrogate outcome is used in all functions only if the surrogate outcome occurs before the minimum of the event time and censoring time.
data(ExampleData) names(ExampleData)data(ExampleData) names(ExampleData)
Calculates the incremental value of the surrogate outcome information
IV.event(xone, xzero, deltaone, deltazero, sone, szero, t, landmark, number = 40, transform = FALSE, extrapolate = TRUE, std = FALSE, conf.int = FALSE, weight.perturb = NULL, type = "np")IV.event(xone, xzero, deltaone, deltazero, sone, szero, t, landmark, number = 40, transform = FALSE, extrapolate = TRUE, std = FALSE, conf.int = FALSE, weight.perturb = NULL, type = "np")
xone |
numeric vector, observed event times for the primary outcome in the treatment group. |
xzero |
numeric vector, observed event times for the primary outcome in the control group. |
deltaone |
numeric vector, event/censoring indicators for the primary outcome in the treatment group. |
deltazero |
numeric vector, event/censoring indicators for the primary outcome in the control group. |
sone |
numeric vector, observed event times for the surrogate outcome in the treatment group. |
szero |
numeric vector, observed event times for the surrogate outcome in the control group. |
t |
time of interest for treatment effect. |
landmark |
landmark time of interest, |
number |
number of points for RMST calculation, default is 40. |
transform |
TRUE or FALSE; indicates whether a transformation should be used, default is FALSE. |
extrapolate |
TRUE or FALSE; indicates whether local constant extrapolation should be used, default is FALSE. |
std |
TRUE or FALSE; indicates whether standard error estimates should be provided, default is FALSE. Estimates are calculated using perturbation-resampling. Two versions are provided: one that takes the standard deviation of the perturbed estimates (denoted as "sd") and one that takes the median absolute deviation (denoted as "mad"). |
conf.int |
TRUE or FALSE; indicates whether 95% confidence intervals should be provided. Confidence intervals are calculated using the percentiles of perturbed estimates, default is FALSE. If this is TRUE, standard error estimates are automatically provided. |
weight.perturb |
weights used for perturbation resampling. |
type |
Type of estimate that should be provided; options are "np" for the nonparametric estimate or "semi" for the semiparametric estimate, default is "np". |
The incremental value of the surrogate outcome information only is quantified as where the definition and estimation procedures for and are described in the documentation for R.q.event and R.t.estimate, respectively. The estimate of the incremental value is .
A list is returned:
delta |
the estimate, |
delta.q |
the estimate, |
R.q |
the estimate, |
delta.t |
the estimate, |
R.t |
the estimate, |
IV |
the estimated incremental value of the surrogate outcome information, described above. |
delta.sd |
the standard error estimate of |
delta.mad |
the standard error estimate of |
delta.q.sd |
the standard error estimate of |
delta.q.mad |
the standard error estimate of |
R.q.sd |
the standard error estimate of |
R.q.mad |
the standard error estimate of |
delta.t.sd |
the standard error estimate of |
delta.t.mad |
the standard error estimate of |
R.t.sd |
the standard error estimate of |
R.t.mad |
the standard error estimate of |
IV.sd |
the standard error estimate of the incremental value; if std = TRUE or conf.int = TRUE. |
IV.mad |
the standard error estimate of the incremental value using the median absolute deviation; if std = TRUE or conf.int = TRUE. |
conf.int.delta |
a vector of size 2; the 95% confidence interval for |
conf.int.delta.q |
a vector of size 2; the 95% confidence interval for |
conf.int.R.q |
a vector of size 2; the 95% confidence interval for |
conf.int.delta.t |
a vector of size 2; the 95% confidence interval for |
conf.int.R.t |
a vector of size 2; the 95% confidence interval for |
conf.int.IV |
a vector of size 2; the 95% confidence interval for the incremental value based on sample quantiles of the perturbed values; if conf.int = TRUE. |
Layla Parast
Parast L, Tian L, and Cai T (2020). Assessing the Value of a Censored Surrogate Outcome. Lifetime Data Analysis, 26(2):245-265.
data(ExampleData) names(ExampleData) IV.event(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, type = "np") IV.event(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, type = "np", std = TRUE, conf.int = TRUE)data(ExampleData) names(ExampleData) IV.event(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, type = "np") IV.event(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, type = "np", std = TRUE, conf.int = TRUE)
Calculates the proportion of the treatment effect (the difference in survival at time t) explained by surrogate outcome information observed up to the landmark time, using the optimal transformation of the surrogate; also provides standard error estimate and confidence interval. Details are provided in: Wang X, Cai T, Tian L, Parast L (2025). Model-free Approach to Evaluate a Censored Intermediate Outcome as a Surrogate for Overall Survival. arXiv preprint arXiv:2412.14129.
R.opt.event(xone, xzero, deltaone, deltazero, sone, szero, t, landmark, std = FALSE, conf.int = FALSE, gopt = FALSE, ind = FALSE)R.opt.event(xone, xzero, deltaone, deltazero, sone, szero, t, landmark, std = FALSE, conf.int = FALSE, gopt = FALSE, ind = FALSE)
xone |
numeric vector, observed event times for the primary outcome in the treatment group. |
xzero |
numeric vector, observed event times for the primary outcome in the control group. |
deltaone |
numeric vector, event/censoring indicators for the primary outcome in the treatment group. |
deltazero |
numeric vector, event/censoring indicators for the primary outcome in the control group. |
sone |
numeric vector, observed event times for the surrogate outcome in the treatment group. |
szero |
numeric vector, observed event times for the surrogate outcome in the control group. |
t |
time of interest for treatment effect. |
landmark |
landmark time of interest, |
std |
TRUE or FALSE; indicates whether standard error estimates should be provided, default is FALSE. Estimates are calculated using perturbation-resampling. |
conf.int |
TRUE or FALSE; indicates whether a 95% confidence interval for the PTE should be provided. Confidence intervals are calculated using the percentiles of perturbed estimates, default is FALSE. |
gopt |
TRUE or FALSE; indicates whether the estimates of the optimal g1(s) and g2 should be provided, default is FALSE. |
ind |
TRUE or FALSE; indicates whether the estimate of PTE for primary outcome information only up to the landmark time should be provided, default is FALSE. |
A list is returned:
R.opt |
the estimate of the PTE of the surrogate outcome |
R.opt.ind |
the estimate of the PTE for primary outcome information only up to the landmark time; if ind=TRUE |
g1.opt |
the estimate of the optimal transformation g1(s); if gopt=TRUE |
g2.opt |
the estimate of the optimal transformation g2; if gopt=TRUE |
R.opt.std |
the standard error estimate of the PTE of the surrogate outcome; if std=TRUE |
conf.int.R |
the confidence interval for the PTE of the surrogate outcome; if cont.int=TRUE |
g1.opt.sd |
the standard error estimate of the optimal transformation g1(s); if gopt=TRUE and std=TRUE |
g2.opt.sd |
the standard error estimate of the optimal transformation g2; if gopt=TRUE and std=TRUE |
Xuan Wang
Wang X, Cai T, Tian L, Parast L (2025). Model-free Approach to Evaluate a Censored Intermediate Outcome as a Surrogate for Overall Survival. arXiv preprint arXiv:2412.14129.
data(ExampleData) names(ExampleData) R.opt.event(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2) #with all options as TRUE R.opt.event(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, std = TRUE, conf.int = TRUE, gopt = TRUE, ind = TRUE)data(ExampleData) names(ExampleData) R.opt.event(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2) #with all options as TRUE R.opt.event(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, std = TRUE, conf.int = TRUE, gopt = TRUE, ind = TRUE)
Calculates the proportion of the treatment effect (the difference in restriced mean survival time at time t) explained by surrogate outcome information observed up to the landmark time; also provides standard error estimate and confidence interval.
R.q.event(xone, xzero, deltaone, deltazero, sone, szero, t, landmark, number = 40, transform = FALSE, extrapolate = TRUE, std = FALSE, conf.int = FALSE, weight.perturb = NULL, type = "np")R.q.event(xone, xzero, deltaone, deltazero, sone, szero, t, landmark, number = 40, transform = FALSE, extrapolate = TRUE, std = FALSE, conf.int = FALSE, weight.perturb = NULL, type = "np")
xone |
numeric vector, observed event times for the primary outcome in the treatment group. |
xzero |
numeric vector, observed event times for the primary outcome in the control group. |
deltaone |
numeric vector, event/censoring indicators for the primary outcome in the treatment group. |
deltazero |
numeric vector, event/censoring indicators for the primary outcome in the control group. |
sone |
numeric vector, observed event times for the surrogate outcome in the treatment group. |
szero |
numeric vector, observed event times for the surrogate outcome in the control group. |
t |
time of interest for treatment effect. |
landmark |
landmark time of interest, |
number |
number of points for RMST calculation, default is 40. |
transform |
TRUE or FALSE; indicates whether a transformation should be used, default is FALSE. |
extrapolate |
TRUE or FALSE; indicates whether local constant extrapolation should be used, default is FALSE. |
std |
TRUE or FALSE; indicates whether standard error estimates should be provided, default is FALSE. Estimates are calculated using perturbation-resampling. Two versions are provided: one that takes the standard deviation of the perturbed estimates (denoted as "sd") and one that takes the median absolute deviation (denoted as "mad"). |
conf.int |
TRUE or FALSE; indicates whether 95% confidence intervals should be provided. Confidence intervals are calculated using the percentiles of perturbed estimates, default is FALSE. If this is TRUE, standard error estimates are automatically provided. |
weight.perturb |
weights used for perturbation resampling. |
type |
Type of estimate that should be provided; options are "np" for the nonparametric estimate or "semi" for the semiparametric estimate, default is "np". |
Let be the randomized treatment indicator, denote the time of the primary outcome of interest, and denote the time of the surrogate outcome. We use potential outcomes notation such that and denote the respective times of the primary and surrogate outcomes under treatment G, for . In the absence of censoring, we only observe or for each individual depending on whether or . Due to censoring, data consist of independent observations , where , , denotes the censoring time, denotes the time of the primary outcome, denotes the time of the surrogate outcome, are identically distributed within treatment group, and is the landmark time of interest.
We define the treatment effect as the difference in restricted mean survival time up to a fixed time under treatment 1 versus under treatment 0,
where indicates the minimum. To define the proportion of treatment effect explained by the surrogate outcome information, let
and define the residual treatment effect after accounting for the treatment effect on the surrogate outcome information as:
where and , ,
, and is the cumulative distribution function of conditional on and . Then, the proportion of treatment effect on the primary outcome that is explained by surrogate information up to , , can be expressed as a contrast between and :
The quantity is estimated using inverse probability of censoring weights:
where and is the Kaplan-Meier estimator of The residual treatment effect can be estimated nonparametrically or semi-parametrically. For nonparametric estimation, is estimated by , and is estimated using a
nonparametric kernel Nelson-Aalen estimator for the cumulative hazard function of conditional on and as
where
is a consistent estimate of , is a smooth symmetric density function, , is a given monotone transformation function, and is a specified bandwidth with . Finally, we let
We then estimate as defined as
where and and and thus,
For the semi-parametric estimate, is replaced with an estimate obtained using a landmark Cox proportional hazards model
where is the unspecified baseline cumulative hazard among and is unknown. That is, let where is estimated by fitting a Cox model to the subpopulation with a single predictor and is the corresponding Breslow estimator. Then the semiparametric estimator for
is defined as
and
A list is returned:
delta |
the estimate, |
delta.q |
the estimate, |
R.q |
the estimate, |
delta.sd |
the standard error estimate of |
delta.mad |
the standard error estimate of |
delta.q.sd |
the standard error estimate of |
delta.q.mad |
the standard error estimate of |
R.q.sd |
the standard error estimate of |
R.q.mad |
the standard error estimate of |
conf.int.delta |
a vector of size 2; the 95% confidence interval for |
conf.int.delta.q |
a vector of size 2; the 95% confidence interval for |
conf.int.R.q |
a vector of size 2; the 95% confidence interval for |
Layla Parast
Parast L, Tian L, and Cai T (2020). Assessing the Value of a Censored Surrogate Outcome. Lifetime Data Analysis, 26(2):245-265.
Parast, L and Cai, T (2013). Landmark risk prediction of residual life for breast cancer survival. Statistics in Medicine, 32(20), 3459-3471.
data(ExampleData) names(ExampleData) R.q.event(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, type = "np") R.q.event(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, type = "semi") R.q.event(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, type = "np", std = TRUE, conf.int = TRUE)data(ExampleData) names(ExampleData) R.q.event(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, type = "np") R.q.event(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, type = "semi") R.q.event(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, sone = ExampleData$s1, szero = ExampleData$s0, t = 5, landmark=2, type = "np", std = TRUE, conf.int = TRUE)
Calculates the proportion of the treatment effect (the difference in restricted mean survival time at time t) explained by primary outcome information observed up to the landmark time; also provides standard error estimate and confidence interval.
R.t.estimate(xone, xzero, deltaone, deltazero, t, landmark, std = FALSE, conf.int = FALSE, weight.perturb = NULL)R.t.estimate(xone, xzero, deltaone, deltazero, t, landmark, std = FALSE, conf.int = FALSE, weight.perturb = NULL)
xone |
numeric vector, observed event times for the primary outcome in the treatment group. |
xzero |
numeric vector, observed event times for the primary outcome in the control group. |
deltaone |
numeric vector, event/censoring indicators for the primary outcome in the treatment group. |
deltazero |
numeric vector, event/censoring indicators for the primary outcome in the control group. |
t |
time of interest for treatment effect. |
landmark |
landmark time of interest, |
std |
TRUE or FALSE; indicates whether standard error estimates should be provided, default is FALSE. Estimates are calculated using perturbation-resampling. Two versions are provided: one that takes the standard deviation of the perturbed estimates (denoted as "sd") and one that takes the median absolute deviation (denoted as "mad"). |
conf.int |
TRUE or FALSE; indicates whether 95% confidence intervals should be provided. Confidence intervals are calculated using the percentiles of perturbed estimates, default is FALSE. If this is TRUE, standard error estimates are automatically provided. |
weight.perturb |
weights used for perturbation resampling. |
Let be the randomized treatment indicator, denote the time of the primary outcome of interest, and denote the time of the surrogate outcome. We use potential outcomes notation such that and denote the respective times of the primary and surrogate outcomes under treatment G, for . In the absence of censoring, we only observe or for each individual depending on whether or . Due to censoring, data consist of independent observations , where , , denotes the censoring time, denotes the time of the primary outcome, denotes the time of the surrogate outcome, are identically distributed within treatment group, and is the landmark time of interest.
The proportion of treatment effect explained by primary outcome information observed up to the landmark time, , is defined as where
and is the treatment effect on the primary outcome, defined in the documentation for delta.estimate. The quantity is estimated using
where is the Kaplan-Meier estimator of , is defined in the documentation for R.q.event and is obtained by replacing with .
A list is returned:
delta |
the estimate, |
delta.t |
the estimate, |
R.t |
the estimate, |
delta.sd |
the standard error estimate of |
delta.mad |
the standard error estimate of |
delta.t.sd |
the standard error estimate of |
delta.t.mad |
the standard error estimate of |
R.t.sd |
the standard error estimate of |
R.t.mad |
the standard error estimate of |
conf.int.delta |
a vector of size 2; the 95% confidence interval for |
conf.int.delta.t |
a vector of size 2; the 95% confidence interval for |
conf.int.R.t |
a vector of size 2; the 95% confidence interval for |
Layla Parast
Parast L, Tian L, and Cai T (2020). Assessing the Value of a Censored Surrogate Outcome. Lifetime Data Analysis, 26(2):245-265.
data(ExampleData) names(ExampleData) R.t.estimate(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone =ExampleData$delta1, deltazero = ExampleData$delta0, t = 5, landmark=2) R.t.estimate(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, t = 5, landmark=2, std = TRUE, conf.int = TRUE)data(ExampleData) names(ExampleData) R.t.estimate(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone =ExampleData$delta1, deltazero = ExampleData$delta0, t = 5, landmark=2) R.t.estimate(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1, deltazero = ExampleData$delta0, t = 5, landmark=2, std = TRUE, conf.int = TRUE)