Skip to contents

Determines optimal cutpoints for continuous biomarkers to maximize diagnostic or prognostic performance. Essential for converting continuous measurements to clinically actionable thresholds and preventing arbitrary cutpoint selection in pathology studies.

Usage

optimalcutpoint(
  data,
  biomarker,
  analysis_type = "binary",
  outcome,
  time_var,
  status_var,
  cutpoint_method = "youden",
  bootstrap_validation = FALSE,
  bootstrap_runs = 1000,
  cross_validation = FALSE,
  cv_folds = 10,
  performance_metrics = TRUE,
  survival_analysis = TRUE,
  confidence_level = 0.95,
  multiple_testing = "miller_siegmund",
  plot_roc = TRUE,
  plot_distribution = TRUE,
  plot_survival = TRUE
)

Arguments

data

the data as a data frame

biomarker

Continuous biomarker variable for cutpoint optimization

analysis_type

Type of analysis based on outcome variable

outcome

Outcome variable for binary or continuous analysis

time_var

Time-to-event variable for survival analysis

status_var

Event status variable for survival analysis (0=censored, 1=event)

cutpoint_method

Method for cutpoint optimization

bootstrap_validation

Perform bootstrap validation of cutpoint stability

bootstrap_runs

Number of bootstrap runs for validation

cross_validation

Perform cross-validation for cutpoint assessment

cv_folds

Number of folds for cross-validation

performance_metrics

Calculate comprehensive performance metrics

survival_analysis

Perform survival analysis for optimal groups

confidence_level

Confidence level for intervals and tests

multiple_testing

Multiple testing correction for cutpoint selection

plot_roc

Generate ROC curve with optimal cutpoint

plot_distribution

Show biomarker distribution with cutpoint

plot_survival

Generate Kaplan-Meier curves for optimal groups

Value

A results object containing:

results$instructionsInstructions for optimal cutpoint determination
results$cutpointresultsOptimal cutpoint values and associated metrics
results$performanceDiagnostic performance at optimal cutpoint
results$survivalSurvival statistics for optimal groups
results$validationBootstrap validation of cutpoint stability
results$crossvalidationCross-validation performance assessment
results$rocplotROC curve showing optimal cutpoint
results$distributionplotDistribution of biomarker with optimal cutpoint
results$survivalplotSurvival curves for optimal groups
results$cutpointplotVisualization of cutpoint search process
results$interpretationClinical context and interpretation for optimal cutpoints

Tables can be converted to data frames with asDF or as.data.frame. For example:

results$cutpointresults$asDF

as.data.frame(results$cutpointresults)

Examples

data('histopathology')

optimalcutpoint(data = histopathology,
               biomarker = ki67_score,
               outcome = tumor_grade,
               analysis_type = "binary")