sensitivity_analysis_BinCont_copula {Surrogate}R Documentation

Perform Sensitivity Analysis for the Individual Causal Association with a Continuous Surrogate and Binary True Endpoint

Description

Perform Sensitivity Analysis for the Individual Causal Association with a Continuous Surrogate and Binary True Endpoint

Usage

sensitivity_analysis_BinCont_copula(
  fitted_model,
  n_sim,
  eq_cond_association = TRUE,
  lower = c(-1, -1, -1, -1),
  upper = c(1, 1, 1, 1),
  marg_association = TRUE,
  n_prec = 10000,
  ncores = 1
)

Arguments

fitted_model

Returned value from fit_copula_model_BinCont(). This object contains the estimated identifiable part of the joint distribution for the potential outcomes.

n_sim

Number of replications in the sensitivity analysis. This value should be large enough to sufficiently explore all possible values of the ICA. The minimally sufficient number depends to a large extent on which inequality assumptions are subsequently imposed (see Additional Assumptions).

eq_cond_association

Boolean.

  • TRUE (default): Assume that the association in (\tilde{S}_1, T_0)' | \tilde{S}_0 and (\tilde{S}_0, T_1)' | \tilde{S}_1 are the same.

  • FALSE: There is not specific a priori relationship between the above two associations.

lower

(numeric) Vector of length 4 that provides the lower limit, \boldsymbol{a} = (a_{23}, a_{13;2}, a_{24;3}, a_{14;23})'. Defaults to c(-1, -1, -1, -1). If the provided lower limit is smaller than what is allowed for a particular copula family, then the copula family's lowest possible value is used instead.

upper

(numeric) Vector of length 4 that provides the upper limit, \boldsymbol{b} = (b_{23}, b_{13;2}, b_{24;3}, b_{14;23})'. Defaults to c(1, 1, 1, 1).

marg_association

Boolean.

  • TRUE: Return marginal association measures in each replication in terms of Spearman's rho. The proportion of harmed, protected, never diseased, and always diseased is also returned. See also Value.

  • FALSE (default): No additional measures are returned.

n_prec

Number of Monte-Carlo samples for the numerical approximation of the ICA in each replication of the sensitivity analysis.

ncores

Number of cores used in the sensitivity analysis. The computations are computationally heavy, and this option can speed things up considerably.

Value

A data frame is returned. Each row represents one replication in the sensitivity analysis. The returned data frame always contains the following columns:

The returned data frame also contains the following columns when marg_association is TRUE:

Information-Theoretic Causal Inference Framework

The information-theoretic causal inference (ITCI) is a general framework to evaluate surrogate endpoints in the single-trial setting (Alonso et al., 2015). In this framework, we focus on the individual causal effects, \Delta S = S_1 - S_0 and \Delta T = T_1 - T_0 where S_z and T_z are the potential surrogate end true endpoint under treatment Z = z.

In the ITCI framework, we say that S is a good surrogate for T if \Delta S conveys a substantial amount of information on \Delta T (Alonso, 2018). This amount of shared information can generally be quantified by the mutual information between \Delta S and \Delta T, denoted by I(\Delta S; \Delta T). However, the mutual information lies in [0, + \infty] which complicates the interpretation. In addition, the mutual information may not be defined in specific scenarios where absolute continuity of certain probability measures fails. Therefore, the mutual information is transformed, and possibly modified, to enable a simple interpretation in light of the definition of surrogacy. The resulting measure is termed the individual causal association (ICA). This is explained in the next sections.

While the definition of surrogacy in the ITCI framework rests on information theory, shared information is closely related to statistical association. Hence, we can also define the ICA in terms of statistical association measures, like Spearman's rho and Kendall's tau. The advantage of the latter are that they are well-known, simple and rank-based measures of association.

Quantifying Surrogacy

Alonso et al. (na) proposed to the following measure for the ICA:

R^2_H = \frac{I(\Delta S; \Delta T)}{H(\Delta T)}

where H(\Delta T) is the entropy of \Delta T. By token of that transformation of the mutual information, R^2_H is restricted to the unit interval where 0 indicates independence, and 1 a functional relationship between \Delta S and \Delta T.

The association between \Delta S and \Delta T can also be quantified by Spearman's \rho (or Kendall's \tau). This quantity requires appreciably less computing time than the mutual information. This quantity is therefore always returned for every replication of the sensitivity analysis.

Sensitivity Analysis

Monte Carlo Approach

Because S_0 and S_1 are never simultaneously observed in the same patient, \Delta S is not observable, and analogously for \Delta T. Consequently, the ICA is unidentifiable. This is solved by considering a (partly identifiable) model for the full vector of potential outcomes, (T_0, S_0, S_1, T_1)'. The identifiable parameters are estimated. The unidentifiable parameters are sampled from their parameters space in each replication of a sensitivity analysis. If the number of replications (n_sim) is sufficiently large, the entire parameter space for the unidentifiable parameters will be explored/sampled. In each replication, all model parameters are "known" (either estimated or sampled). Consequently, the ICA can be computed in each replication of the sensitivity analysis.

The sensitivity analysis thus results in a set of values for the ICA. This set can be interpreted as all values for the ICA that are compatible with the observed data. However, the range of this set is often quite broad; this means there remains too much uncertainty to make judgements regarding the worth of the surrogate. To address this unwieldy uncertainty, additional assumptions can be used that restrict the parameter space of the unidentifiable parameters. This in turn reduces the uncertainty regarding the ICA.

Intervals of Ignorance and Uncertainty

The results of the sensitivity analysis can be formalized (and summarized) in intervals of ignorance and uncertainty using sensitivity_intervals_Dvine().

Additional Assumptions

There are two possible types of assumptions that restrict the parameter space of the unidentifiable parameters: (i) equality type of assumptions, and (ii) inequality type of assumptions. These are discussed in turn in the next two paragraphs.

The equality assumptions have to be incorporated into the sensitivity analysis itself. Only one type of equality assumption has been implemented; this is the conditional independence assumption:

\tilde{S}_0 \perp T_1 | \tilde{S}_1 \; \text{and} \; \tilde{S}_1 \perp T_0 | \tilde{S}_0 .

This can informally be interpreted as “what the control treatment does to the surrogate does not provide information on the true endpoint under experimental treatment if we already know what the experimental treatment does to the surrogate", and analogously when control and experimental treatment are interchanged. Note that \tilde{S}_z refers to either the actual potential surrogate outcome, or a latent version. This depends on the content of fitted_model.

The inequality type of assumptions have to be imposed on the data frame that is returned by the current function; those assumptions are thus imposed after running the sensitivity analysis. If marginal_association is set to TRUE, the returned data frame contains additional unverifiable quantities that differ across replications of the sensitivity analysis: (i) the unconditional Spearman's \rho for all pairs of (observable/non-latent) potential outcomes, and (ii) the proportions of the population strata as defined by Nevo and Gorfine (2022) if semi-competing risks are present. More details on the interpretation and use of these assumptions can be found in Stijven et al. (2024).

Examples


# Load Schizophrenia data set.
data("Schizo_BinCont")
# Perform listwise deletion.
na = is.na(Schizo_BinCont$CGI_Bin) | is.na(Schizo_BinCont$PANSS)
X = Schizo_BinCont$PANSS[!na]
Y = Schizo_BinCont$CGI_Bin[!na]
Treat = Schizo_BinCont$Treat[!na]
# Ensure that the treatment variable is binary.
Treat = ifelse(Treat == 1, 1, 0)
data = data.frame(X,
                  Y,
                  Treat)
# Fit copula model.
fitted_model = fit_copula_model_BinCont(data, "clayton", "normal", twostep = FALSE)
# Perform sensitivity analysis with a very low number of replications.
sens_results = sensitivity_analysis_BinCont_copula(
  fitted_model,
  10,
  lower = c(-1,-1,-1,-1),
  upper = c(1, 1, 1, 1),
  n_prec = 1e3
)


[Package Surrogate version 3.2.5 Index]