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")
numeric vector, observed event times for the primary outcome in the treatment group.
numeric vector, observed event times for the primary outcome in the control group.
numeric vector, event/censoring indicators for the primary outcome in the treatment group.
numeric vector, event/censoring indicators for the primary outcome in the control group.
numeric vector, observed event times for the surrogate outcome in the treatment group.
numeric vector, observed event times for the surrogate outcome in the control group.
time of interest for treatment effect.
landmark time of interest, \(t_0\).
number of points for RMST calculation, default is 40.
TRUE or FALSE; indicates whether a transformation should be used, default is FALSE.
TRUE or FALSE; indicates whether local constant extrapolation should be used, default is FALSE.
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").
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.
weights used for perturbation resampling.
Type of estimate that should be provided; options are "np" for the nonparametric estimate or "semi" for the semiparametric estimate, default is "np".
A list is returned:
the estimate, \(\hat{\Delta}(t)\), described in delta.estimate documentation.
the estimate, \(\hat{\Delta}_Q(t,t_0)\), described above.
the estimate, \(\hat{R}_Q(t,t_0)\), described above.
the standard error estimate of \(\hat{\Delta}(t)\); if std = TRUE or conf.int = TRUE.
the standard error estimate of \(\hat{\Delta}(t)\) using the median absolute deviation; if std = TRUE or conf.int = TRUE.
the standard error estimate of \(\hat{\Delta}_Q(t,t_0)\); if std = TRUE or conf.int = TRUE.
the standard error estimate of \(\hat{\Delta}_Q(t,t_0)\) using the median absolute deviation; if std = TRUE or conf.int = TRUE.
the standard error estimate of \(\hat{R}_Q(t,t_0)\); if std = TRUE or conf.int = TRUE.
the standard error estimate of \(\hat{R}_Q(t,t_0)\) using the median absolute deviation; if std = TRUE or conf.int = TRUE.
a vector of size 2; the 95% confidence interval for \(\hat{\Delta}(t)\) based on sample quantiles of the perturbed values; if conf.int = TRUE.
a vector of size 2; the 95% confidence interval for \(\hat{\Delta}_Q(t,t_0)\) based on sample quantiles of the perturbed values; if conf.int = TRUE.
a vector of size 2; the 95% confidence interval for \(\hat{R}_Q(t,t_0)\) based on sample quantiles of the perturbed values; if conf.int = TRUE.
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).\)
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.
# NOT RUN {
data(ExampleData)
names(ExampleData)
# }
# NOT RUN {
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)
# }
Run the code above in your browser using DataLab