Compute Correlation Bounds Between Response and Time-to-Event Endpoints
Source:R/CorBoundResponseTTE.R
CorBoundResponseTTE.RdComputes the lower and upper bounds of the correlation coefficient between a binary response endpoint and a time-to-event (TTE) endpoint. These bounds are derived using Fréchet-Hoeffding copula bounds and depend only on the response probability, not on the hazard rate of the TTE endpoint.
Value
A numeric vector of length 2 containing:
First element: Lower bound (maximum negative dependence)
Second element: Upper bound (maximum positive dependence)
Details
The Fréchet-Hoeffding bounds provide theoretical limits for the correlation between a binary response endpoint (e.g., objective response) and an exponentially distributed TTE endpoint (e.g., overall survival or progression-free survival).
The correlation bounds are given by: $$\log(1-p)\sqrt{\frac{1-p}{p}} \leq \text{Corr}(TTE, Response) \leq \log\left(\frac{1}{p}\right)\sqrt{\frac{p}{1-p}}$$
Key properties:
The bounds depend only on
p, not on the TTE hazard rateLower bound: achieved by countermonotonic copula \(C(u,v) = \max\{u+v-1, 0\}\)
Upper bound: achieved by comonotonic copula \(C(u,v) = \min\{u, v\}\)
The bounds are symmetric: if
pis replaced by1-p, the lower and upper bounds swap with negated signsMaximum absolute bound value of approximately 0.805 occurs at
p ≈ 0.203(for upper bound) andp ≈ 0.797(for lower bound). This is a fundamental property of the Fréchet-Hoeffding bounds for correlations between binary and continuous exponential variables.
Note
The independence of correlation bounds from the hazard rate is an
interesting theoretical result. While the hazard rate determines the scale
of the TTE endpoint, it does not affect the range of achievable correlations
with the binary response endpoint. This occurs because the hazard rate only
affects the scaling of the TTE variable, while the binary response endpoint
is determined solely by the probability p.
References
Trivedi, P. K., & Zimmer, D. M. (2005). Copula modeling: an introduction for practitioners. Foundations and Trends in Econometrics, 1(1), 1-111.
Examples
# Calculate bounds with response probability = 0.4
CorBoundResponseTTE(p = 0.4)
#> [1] -0.6256311 0.7481482
# Example with higher response rate
CorBoundResponseTTE(p = 0.6)
#> [1] -0.7481482 0.6256311
# Example with lower response rate
CorBoundResponseTTE(p = 0.2)
#> [1] -0.4462871 0.8047190
# Example with intermediate values
bounds <- CorBoundResponseTTE(p = 0.35)
cat("Lower bound:", bounds[1], "\nUpper bound:", bounds[2], "\n")
#> Lower bound: -0.5870582
#> Upper bound: 0.7703588
# Demonstrating the effect of response probability on bounds
# The bounds are widest around p ≈ 0.203 and p ≈ 0.797
CorBoundResponseTTE(p = 0.203)
#> [1] -0.4495901 0.8047423
CorBoundResponseTTE(p = 0.5)
#> [1] -0.6931472 0.6931472
CorBoundResponseTTE(p = 0.797)
#> [1] -0.8047423 0.4495901
# Demonstrating symmetry property
CorBoundResponseTTE(p = 0.3)
#> [1] -0.5448300 0.7881852
-rev(CorBoundResponseTTE(p = 0.7)) # Should be nearly identical
#> [1] -0.5448300 0.7881852
# Find maximum absolute bound
p_seq <- seq(0.01, 0.99, by = 0.001)
bounds_upper <- sapply(p_seq, function(p) CorBoundResponseTTE(p)[2])
max_bound_idx <- which.max(bounds_upper)
cat("Maximum upper bound:", round(bounds_upper[max_bound_idx], 4),
"at p =", round(p_seq[max_bound_idx], 3), "\n")
#> Maximum upper bound: 0.8047 at p = 0.203