Type: | Package |
Title: | Estimation of the Proportion of Treatment Effect Explained by Surrogate Outcome Information |
Version: | 1.1 |
Date: | 2021-11-14 |
Author: | Layla Parast |
Maintainer: | Layla Parast <parast@austin.utexas.edu> |
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, Tian, Cai (2020) "Assessing the Value of a Censored Surrogate Outcome" <doi:10.1007/s10985-019-09473-1>. The main functions are (1) R.q.event() which calculates the proportion of the treatment effect (the difference in restricted mean survival time at time t) explained by surrogate outcome information observed up to a selected landmark time, (2) R.t.estimate() which calculates the proportion of the treatment effect explained by primary outcome information only observed up to a selected landmark time, and (3) IV.event() which calculates the incremental value of the surrogate outcome information. |
License: | GPL-2 | GPL-3 [expanded from: GPL] |
Imports: | stats, survival |
NeedsCompilation: | no |
Packaged: | 2021-11-14 14:00:24 UTC; parast |
Repository: | CRAN |
Date/Publication: | 2021-11-15 09:10:02 UTC |
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, Tian, Cai (2020) "Assessing the Value of a Censored Surrogate Outcome" <doi:10.1007/s10985-019-09473-1>. The main functions are (1) R.q.event() which calculates the proportion of the treatment effect (the difference in restricted mean survival time at time t) explained by surrogate outcome information observed up to a selected landmark time, (2) R.t.estimate() which calculates the proportion of the treatment effect explained by primary outcome information only observed up to a selected landmark time, and (3) IV.event() which calculates the incremental value of the surrogate outcome information.
Details
This package implements all methods proposed in Parast L, Tian L, and Cai T (2020). Assessing the Value of a Censored Surrogate Outcome. Lifetime Data Analysis, 26(2):245-265. The main functions are (1) R.q.event() which calculates the proportion of the treatment effect (the difference in restricted mean survival time at time t) explained by surrogate outcome information observed up to a selected landmark time, (2) R.t.estimate() which calculates the proportion of the treatment effect explained by primary outcome information only observed up to a selected landmark time, and (3) IV.event() which calculates the incremental value of the surrogate outcome information.
Author(s)
Layla Parast
Maintainer: Layla Parast <parast@austin.utexas.edu>
References
Parast L, Tian L, and Cai T (2020). Assessing the Value of a Censored Surrogate Outcome. Lifetime Data Analysis, 26(2):245-265.
Examples
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.t.estimate(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1,
deltazero = ExampleData$delta0, t = 5, landmark=2)
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")
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)
R.t.estimate(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1,
deltazero = ExampleData$delta0, t = 5, landmark=2, std = TRUE, conf.int = TRUE)
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)
Hypothetical data
Description
Hypothetical data to be used in examples; t=5 and the landmark time = 2.
Usage
data(ExampleData)
Format
A list with 6 elements representing 1000 observations from a control group and 1000 observations from a treatment group:
s1
Time of the occurrence of the surrogate outcome for treated observations.
x1
The 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.
delta1
The 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.
s0
Time of the occurrence of the surrogate outcome for control observations.
x0
The 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.
delta0
The 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.
Details
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.
Examples
data(ExampleData)
names(ExampleData)
Calculates the incremental value of the surrogate outcome information
Description
Calculates the incremental value of the surrogate outcome information
Usage
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")
Arguments
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". |
Details
The incremental value of the surrogate outcome information only is quantified as IV_S(t,t_0) = R_Q(t,t_0) - R_T(t,t_0)
where the definition and estimation procedures for R_Q(t,t_0)
and R_T(t,t_0)
are described in the documentation for R.q.event and R.t.estimate, respectively. The estimate of the incremental value is \hat{IV}_S(t,t_0) = \hat{R}_Q(t,t_0) - \hat{R}_T(t,t_0)
.
Value
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. |
Author(s)
Layla Parast
References
Parast L, Tian L, and Cai T (2020). Assessing the Value of a Censored Surrogate Outcome. Lifetime Data Analysis, 26(2):245-265.
Examples
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 kernel matrix
Description
Helper function; this calculates the kernel matrix
Usage
Kern.FUN(zz, zi, bw, kern0)
Arguments
zz |
zz |
zi |
zi |
bw |
bandwidth |
kern0 |
kernel distribution |
Value
the kernel matrix
Author(s)
Layla Parast
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
Description
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.
Usage
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")
Arguments
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". |
Details
Let G \in \{1,0\}
be the randomized treatment indicator, T
denote the time of the primary outcome of interest, and S
denote the time of the surrogate outcome. We use potential outcomes notation such that T^{(G)}
and S^{(G)}
denote the respective times of the primary and surrogate outcomes under treatment G, for G \in \{1, 0\}
. In the absence of censoring, we only observe (T, S)=(T^{(1)}, S^{(1)})
or (T^{(0)}, S^{(0)})
for each individual depending on whether G=1
or 0
. Due to censoring, data consist of n = n_1 + n_0
independent observations \{X_{gi}, \delta_{gi}, I(S_{gi}< t_0)I(X_{gi} > t_0), S_{gi}\wedge t_0 I(X_{gi} > t_0), i=1,...,n_g, g = 1,0\}
, where X_{gi} = T_{gi}\wedge C_{ gi}
, \delta_{gi} = I(T_{gi} < C_{gi})
, C_{gi}
denotes the censoring time, T_{gi}
denotes the time of the primary outcome, S_{gi}
denotes the time of the surrogate outcome, \{(T_{gi}, C_{gi}, S_{gi}), i = 1, ..., n_g\}
are identically distributed within treatment group, and t_0
is the landmark time of interest.
We define the treatment effect as the difference in restricted mean survival time up to a fixed time t
under treatment 1 versus under treatment 0,
\Delta(t)=E\{T^{(1)}\wedge t\} - E\{T^{(0)}\wedge t \}
where \wedge
indicates the minimum. To define the proportion of treatment effect explained by the surrogate outcome information, let
Q_{t_0} ^{(g)} = (Q_{t_01}, Q_{t_02})'=\{S ^{(g)} \wedge t_0I(T ^{(g)} > t_0), T^{(g)} I(T^{(g)} \le t_0)\}', g=1, 0
and define the residual treatment effect after accounting for the treatment effect on the surrogate outcome information as:
\Delta_Q(t,t_0) = P ^{(0)}_{t_0,2}\int_0^{t_0} \phi_1(t|t_0,s)dF_0(s) + P^{(0)}_{t_0,3}\psi_1(t|t_0) - P(T ^{(0)}> t_0) \nu_0(t|t_0)
where P^{(0)}_{t_0,2} = P(T^{(0)} > {t_0}, S ^{(0)} < t_0)
and P^{(0)}_{t_0,3} = P(T^{(0)} > {t_0}, S ^{(0)} > t_0)
, \psi_1(t \mid t_0) = E(T^{(1)}\wedge t \mid T^{(1)}> t_0, S^{(1)} > t_0)
,
\phi_1(t\mid t_0,s) = E(T^{(1)}\wedge t \mid T ^{(1)}> t_0, S ^{(1)} = s), \quad \nu_0(t|t_0) = E(T ^{(0)} \wedge t | T ^{(0)}> t_0)
, and F_0(\cdot\mid t_0)
is the cumulative distribution function of S^{(0)}
conditional on T ^{(0)}> t_0
and S ^{(0)} < t_0
. Then, the proportion of treatment effect on the primary outcome that is explained by surrogate information up to t_0
, Q_{t_0}
, can be expressed as a contrast between \Delta(t)
and \Delta_Q(t,t_0)
:
R_Q(t,t_0) = \{\Delta(t) - \Delta_Q(t,t_0) \} / \Delta(t) = 1- \Delta_Q(t,t_0) / \Delta(t).
The quantity \Delta(t)
is estimated using inverse probability of censoring weights:
\hat{\Delta}(t) = n_1^{-1} \sum_{i=1}^{n_1} \hat{M}_{1i}(t)- n_0^{-1} \sum_{i=1}^{n_0} \hat{M}_{0i}(t)
where \hat{M}_{gi}(t) = I(X_{gi} > t)t/\hat{W}^C_g(t) + I(X_{gi} < t)X_{gi}\delta_{gi}/\hat{W}^C_g(X_{gi})
and \hat{W}^C_g(t)
is the Kaplan-Meier estimator of P(C_{gi} \ge t).
The residual treatment effect \Delta_Q(t,t_0)
can be estimated nonparametrically or semi-parametrically. For nonparametric estimation, \psi_{1}(t|t_0)
is estimated by \hat{\psi}_{1}(t|t_0) = \sum_{i=1}^{n_1}\frac{ { \hat{W}^C_1(t_0)} I(S_{1i}>t_0, X_{1i} > t_0) }{ \sum_{i=1}^{n_1}I(S_{1i}>t_0, X_{1i} > t_0)} \hat{M}_{1i}(t)
, and \phi_1(t \mid t_0,s) = E(T^{(1)}\wedge t\mid X^{(1)}> t_0, S ^{(1)} = s)
is estimated using a
nonparametric kernel Nelson-Aalen estimator for \Lambda_1(t\mid t_0,s ),
the cumulative hazard function of T^{(1)}
conditional on S^{(1)}=s
and T^{(1)}>t_0,
as
\hat \phi_1(t \mid t_0,s) = t_0+\int_ {t_0}^t \exp\{-\hat{\Lambda}_1(t\mid t_0,s) \}dt,
where
\hat{\Lambda}_1(t\mid t_0,s) = \int_{t_0}^t \frac{\sum_{i=1}^{n_1} I(X_{1i}>t_0, {S_{1i} < t_0}) K_h\{\gamma(S_{1i}) - \gamma(s)\}dN_{1i}(z)}{\sum_{i=1}^{n_1} I(X_{1i}>t_0, {S_{1i} < t_0}) K_h\{\gamma(S_{1i}) - \gamma(s)\} Y_{1i}(z)},
is a consistent estimate of \Lambda_1(t\mid t_0,s ),
Y_{1i}(t) = I(X_{1i} \geq t)
, N_{1i}(t) = I(X_{1i} \leq t) \delta_i, K(\cdot)
is a smooth symmetric density function, K_h(x) = K(x/h)/h
, \gamma(\cdot)
is a given monotone transformation function, and h=O(n_1^{-\eta})
is a specified bandwidth with \eta \in (1/2,1/4)
. Finally, we let
\hat{\nu}_{0}(t|t_0) = \sum_{i=1}^{n_0}\frac{ {\hat{W}^C_0(t_0)}I(X_{0i} > t_0) }{ \sum_{i=1}^{n_0}I(X_{0i} > t_0)} \hat{M}_{0i}(t).
We then estimate \Delta_{Q}(t,t_0)
as \hat{\Delta}_{Q}(t,t_0)
defined as
n_0^{-1} \sum_{i=1}^{n_0} \left \{ \frac{I_{t_0,2}(X_{0i}, S_{0i})\hat{\phi}_1(t\mid t_0, S_{0i}) + I_{t_0,3}(X_{0i}, S_{0i})\hat{\psi}_1(t\mid t_0) - I_{t_0}(X_{0i})\hat{\nu}(t|t_0) }{\hat{W}^C_0(t_0)} \right \}
where I_{t_0,2}(x, s) = I(x > {t_0}, s < t_0)
and I_{t_0,3}(x, s) = I(x > {t_0}, s > t_0)
and I_{t_0}(x)=I(x > {t_0})
and thus, \hat{R}_Q(t,t_0) =1- \hat{\Delta}_Q(t,t_0)/\hat{\Delta}(t).
For the semi-parametric estimate, \hat \phi_1(t| t_0,s)
is replaced with an estimate obtained using a landmark Cox proportional hazards model
P(T^{(1)}> t\mid T^{(1)}> t_0, S^{(1)} < t_0, S ^{(1)}) = \exp \{ -\Lambda_0(t|t_0)\exp(\beta_0S ^{(1)})\}
where \Lambda_0(t|t_0)
is the unspecified baseline cumulative hazard among \Omega_{t_0} = \{T^{(1)}> t_0, S^{(1)} < t_0\}
and \beta_0
is unknown. That is, let \tilde \phi_1(t| t_0,s) = t_0+\int_{t_0}^{t}\exp \{ -\hat{\Lambda}_0(t|t_0)\exp(\hat{\beta}s)\} dt,
where \hat{\beta}
is estimated by fitting a Cox model to the subpopulation \Omega_{t_0}
with a single predictor S
and \hat{\Lambda}_0(\cdot|t_0)
is the corresponding Breslow estimator. Then the semiparametric estimator for
\Delta_{Q}(t,t_0)
is \tilde{\Delta}_{Q}(t,t_0)
defined as
n_0^{-1} \sum_{i=1}^{n_0} \left \{ \frac{I_{t_0,2}(X_{0i}, S_{0i})\tilde{\phi}_1(t\mid t_0, S_{0i}) + I_{t_0,3}(X_{0i}, S_{0i})\hat{\psi}_1(t\mid t_0) - I_{t_0}(X_{0i})\hat{\nu}(t|t_0) }{\hat{W}^C_0(t_0)} \right \}
and \tilde{R}_Q(t,t_0) =1- \tilde{\Delta}_Q(t,t_0)/\hat{\Delta}(t).
Value
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 |
Author(s)
Layla Parast
References
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.
Examples
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
Description
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.
Usage
R.t.estimate(xone, xzero, deltaone, deltazero, t, landmark, std = FALSE, conf.int
= FALSE, weight.perturb = NULL)
Arguments
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. |
Details
Let G \in \{1,0\}
be the randomized treatment indicator, T
denote the time of the primary outcome of interest, and S
denote the time of the surrogate outcome. We use potential outcomes notation such that T^{(G)}
and S^{(G)}
denote the respective times of the primary and surrogate outcomes under treatment G, for G \in \{1, 0\}
. In the absence of censoring, we only observe (T, S)=(T^{(1)}, S^{(1)})
or (T^{(0)}, S^{(0)})
for each individual depending on whether G=1
or 0
. Due to censoring, data consist of n = n_1 + n_0
independent observations \{X_{gi}, \delta_{gi}, I(S_{gi}< t_0)I(X_{gi} > t_0), S_{gi}\wedge t_0 I(X_{gi} > t_0), i=1,...,n_g, g = 1,0\}
, where X_{gi} = T_{gi}\wedge C_{ gi}
, \delta_{gi} = I(T_{gi} < C_{gi})
, C_{gi}
denotes the censoring time, T_{gi}
denotes the time of the primary outcome, S_{gi}
denotes the time of the surrogate outcome, \{(T_{gi}, C_{gi}, S_{gi}), i = 1, ..., n_g\}
are identically distributed within treatment group, and t_0
is the landmark time of interest.
The proportion of treatment effect explained by primary outcome information observed up to the landmark time, t_0
, is defined as R_T(t, t_0) = 1-\Delta_T(t,t_0) / \Delta(t)
where
\Delta_T(t,t_0) = P(T^{(0)} > t_0) E\{T^{(1)} \wedge t - T^{(0)} \wedge t \mid T > t_0 \}
and \Delta(t)
is the treatment effect on the primary outcome, defined in the documentation for delta.estimate. The quantity \Delta_T(t,t_0)
is estimated using
\hat{\Delta}_T(t,t_0) = n_0^{-1} \sum_{i=1}^{n_0} I(X_{0i} > t_0) /\hat{W}_0^C(t_0) \{\hat{\nu}_{1}(t|t_0) - \hat{\nu}_{0}(t|t_0) \}
where \hat{W}^C_0(t)
is the Kaplan-Meier estimator of P(C_{gi} \ge t)
, \hat{\nu}_{0}(t|t_0)
is defined in the documentation for R.q.event and \hat{\nu}_{1}(t|t_0)
is obtained by replacing 0
with 1
.
Value
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 |
Author(s)
Layla Parast
References
Parast L, Tian L, and Cai T (2020). Assessing the Value of a Censored Surrogate Outcome. Lifetime Data Analysis, 26(2):245-265.
Examples
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)
Repeats a row
Description
Helper function; this function creates a matrix that repeats vc, dm times where each row is equal to the vc vector.
Usage
VTM(vc, dm)
Arguments
vc |
the vector to repeat. |
dm |
number of rows. |
Value
a matrix that repeats vc, dm times where each row is equal to the vc vector
Calculates censoring probability for weighting
Description
Helper function; calculates censoring probability needed for inverse probability of censoring weighting
Usage
censor.weight(data.x, data.delta, t, weight = NULL)
Arguments
data.x |
numeric vector, the observed event time: X = min(T, C) where T is the time of the primary outcome, C is the censoring time |
data.delta |
numeric vector of 0/1, the censoring indicator: D = I(T<C) where T is the time of the primary outcome, C is the censoring time |
t |
number, the time of interest |
weight |
a numeric vector or matrix of weights used for perturbation-resampling, default is null. |
Details
Computes the Kaplan Meier estimate of survival for the censoring random variable at the specified time
Value
Kaplan Meier estimate of survival for censoring at time t
Author(s)
Layla Parast
Examples
data(ExampleData)
censor.weight(data.x = ExampleData$x1, data.delta = ExampleData$delta1, t=5)
Helper function
Description
Helper function; should not be called directly by user.
Usage
cumsum2(mydat)
Arguments
mydat |
mydat |
Value
out |
matrix |
Author(s)
Layla Parast
Estimates the treatment effect at time t, defined as the difference in the restricted mean survival time
Description
Estimates the treatment effect at time t, defined as the difference in the restricted mean survival time.
Usage
delta.estimate(xone, xzero, deltaone, deltazero, t, std = FALSE, conf.int = FALSE,
weight.perturb = NULL)
Arguments
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. |
Details
Let G \in \{1,0\}
be the randomized treatment indicator and T
denote the time of the primary outcome of interest. We use potential outcomes notation such that T^{(G)}
denotes the time of the primary outcome under treatment G, for G \in \{1, 0\}
. We define the treatment effect as the difference in restricted mean survival time up to a fixed time t
under treatment 1 versus under treatment 0,
\Delta(t)=E\{T^{(1)}\wedge t\} - E\{T^{(0)}\wedge t \}
where \wedge
indicates the minimum. Due to censoring, data consist of n = n_1 + n_0
independent observations \{X_{gi}, \delta_{gi}, i=1,...,n_g, g = 1,0\}
, where X_{gi} = T_{gi}\wedge C_{ gi}
, \delta_{gi} = I(T_{gi} < C_{gi})
, C_{gi}
denotes the censoring time, T_{gi}
denotes the time of the primary outcome, and \{(T_{gi}, C_{gi}), i = 1, ..., n_g\}
are identically distributed within treatment group. The quantity \Delta(t)
is estimated using inverse probability of censoring weights:
\hat{\Delta}(t) = n_1^{-1} \sum_{i=1}^{n_1} \hat{M}_{1i}(t)- n_0^{-1} \sum_{i=1}^{n_0} \hat{M}_{0i}(t)
where \hat{M}_{gi}(t) = I(X_{gi} > t)t/\hat{W}^C_g(t) + I(X_{gi} < t)X_{gi}\delta_{gi}/\hat{W}^C_g(X_{gi})
and \hat{W}^C_g(t)
is the Kaplan-Meier estimator of P(C_{gi} \ge t).
Value
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 |
Author(s)
Layla Parast
References
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.
Examples
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)
Helper function
Description
Helper function; used by delta.estimate function
Usage
delta.estimate.RMST(xone, xzero, deltaone, deltazero, t, weight = NULL, delta.only = F)
Arguments
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 |
weight; optional |
delta.only |
TRUE or FALSE; if TRUE then only delta is returned, if FALSE then delta and restricted mean survival time for each treatment group is also returned |
Value
A list is returned:
delta |
the difference in the restricted mean survival between the two treatment groups. |
s1 |
only if delta.only = F; the restricted mean survival in group 1. |
s0 |
only if delta.only = F; the restricted mean survival in group 0. |
Author(s)
Layla Parast
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
Description
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.
Usage
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)
Arguments
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. |
Details
See documentation for R.q.event for details.
Value
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 |
Author(s)
Layla Parast
References
Parast L, Tian L, and Cai T (2020). Assessing the Value of a Censored Surrogate Outcome. Lifetime Data Analysis, 26(2):245-265.
Examples
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
Description
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.
Usage
delta.q.event.semi.RMST(xone, xzero, deltaone, deltazero, sone, szero, t,
weight = NULL, landmark = landmark, deltaslist = TRUE, number)
Arguments
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. |
Details
See documentation for R.q.event for details.
Value
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 |
Author(s)
Layla Parast
References
Parast L, Tian L, and Cai T (2020). Assessing the Value of a Censored Surrogate Outcome. Lifetime Data Analysis, 26(2):245-265.
Examples
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
Description
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
Usage
delta.t.RMST(xone, xzero, deltaone, deltazero, t, weight = NULL, landmark = landmark)
Arguments
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, |
Details
See documentation for R.t.estimate for details.
Value
delta.t |
the estimated residual treatment effect after accounting for the treatment effect on the primary outcome up to the landmark time |
Author(s)
Layla Parast
References
Parast L, Tian L, and Cai T (2020). Assessing the Value of a Censored Surrogate Outcome. Lifetime Data Analysis, 26(2):245-265.
Examples
data(ExampleData)
names(ExampleData)
delta.t.RMST(xone = ExampleData$x1, xzero = ExampleData$x0, deltaone = ExampleData$delta1,
deltazero = ExampleData$delta0, t = 5, landmark=2)
Helper function
Description
Helper function; should not be called directly by user.
Usage
helper.si(yy,FUN,Yi,Vi=NULL)
Arguments
yy |
yy |
FUN |
FUN |
Yi |
Yi |
Vi |
Vi |
Value
out |
matrix |
Author(s)
Layla Parast
Helper function
Description
Helper function; should not be called directly by user. This function differs from the quantile function in that it returns an NA when there are NAs in the supplied vector, rather than causing an error.
Usage
new.q(x, p)
Arguments
x |
vector of numeric values |
p |
sample quantile that is desired |
Value
returns either NA or the desired sample quantile
Author(s)
Layla Parast
Calculates the conditional probability of survival for control group values
Description
Helper function; calculates the estimated probability of survival for control control group surrogate values using treatment group surrogate and outcome information.
Usage
pred.smooth.surv(xone.f, deltaone.f, sone.f, szero.one, myt, bw = NULL,
weight, transform, extrapolate = T)
Arguments
xone.f |
observed event times in the treatment group. |
deltaone.f |
censoring indicators in the treatment group. |
sone.f |
surrogate marker values in the treatment group. |
szero.one |
surrogate marker values in the control group. |
myt |
time of interest. |
bw |
bandwidth. |
weight |
weight used for perturbation resampling. |
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. |
Value
A list is returned:
Phat.ss |
conditional probability of survival past t for control group |
warn.flag |
warning flag equal to 1 if extrapolation was used; 0 otherwise |
Author(s)
Layla Parast