utility.weighted {boinet}R Documentation

Weighted Utility Function for Toxicity-Efficacy Trade-off

Description

Calculates utility scores for dose selection based on a weighted function that balances efficacy benefits against toxicity costs. This utility function provides a linear trade-off approach with an additional penalty for doses exceeding a toxicity threshold, making it particularly suitable for dose-finding scenarios where both the overall toxicity rate and severe toxicity cases need to be appropriately penalized.

The weighted utility approach is intuitive for clinicians as it directly reflects the clinical decision-making process: maximize efficacy while minimizing toxicity, with extra caution for doses that exceed acceptable toxicity levels.

Usage

utility.weighted(probt, probe, w1, w2, tox.upper)

Arguments

probt

Numeric vector of estimated toxicity probabilities for each dose. Values should be between 0 and 1.

probe

Numeric vector of estimated efficacy probabilities for each dose. Values should be between 0 and 1. Must have same length as probt. Can be binary probabilities or normalized equivalent scores.

w1

Numeric value specifying the weight for the toxicity-efficacy trade-off. Represents the rate at which toxicity is traded against efficacy. Higher values indicate greater toxicity aversion. Typically ranges from 0.2 to 1.0.

w2

Numeric value specifying the additional penalty weight for doses exceeding the toxicity threshold (tox.upper). Applied as extra penalty beyond the base w1 penalty. Typically ranges from 0.5 to 2.0.

tox.upper

Numeric value specifying the upper bound of acceptable toxicity probability. Doses with toxicity exceeding this threshold receive additional penalty w2.

Details

Mathematical Formulation:

The utility function is defined as:

U(p_T, p_E) = p_E - w_1 \cdot p_T - w_2 \cdot p_T \cdot I(p_T > \phi_2)

Where:

Interpretation of Components:

Base Efficacy Term (p_E):

Linear Toxicity Penalty (w_1 \cdot p_T):

Threshold Toxicity Penalty (w_2 \cdot p_T \cdot I(p_T > \phi_2)):

Comparison with Other Utility Functions:

vs. Truncated Linear:

vs. Scoring:

Value

Numeric vector of utility values for each dose, with the same length as the input probability vectors. Higher utility values indicate more desirable doses. Utility values can be negative when toxicity costs outweigh efficacy benefits.

Note

References

See Also

utility.truncated.linear for piecewise linear utility function, utility.scoring for discrete outcome scoring approach, obd.select for optimal biological dose selection using utilities.

Examples

toxicity_probs <- c(0.05, 0.15, 0.30, 0.45, 0.60)
efficacy_probs <- c(0.20, 0.40, 0.60, 0.70, 0.65)

# Moderate toxicity aversion
w1 <- 0.5  # Base penalty
w2 <- 1.0  # Additional penalty for high toxicity
threshold <- 0.35  # 35% toxicity threshold

utilities <- utility.weighted(
  probt = toxicity_probs,
  probe = efficacy_probs,
  w1 = w1, w2 = w2,
  tox.upper = threshold
)

# Display results
dose_comparison <- data.frame(
  Dose = 1:5,
  Toxicity = toxicity_probs,
  Efficacy = efficacy_probs,
  Utility = round(utilities, 3),
  Exceeds_Threshold = toxicity_probs > threshold
)
print(dose_comparison)

# Identify optimal dose
optimal_dose <- which.max(utilities)
cat("Optimal dose:", optimal_dose,
    "with utility:", round(max(utilities), 3), "\n")


[Package boinet version 1.4.0 Index]