Skip to contents

Comprehensive diagnostic performance analysis including ROC curves, cross-validation, and statistical comparison of diagnostic tests. Supports both single and multiple biomarker evaluation with robust validation methods.

Usage

diagnosticperformance(
  data,
  outcome,
  outcomeLevel,
  predictors,
  validationMethod = "none",
  cvFolds = 10,
  cvRepeats = 1,
  bootstrapN = 1000,
  holdoutProp = 0.3,
  comparisonMethod = "delong",
  optimalCutoff = "youden",
  costRatio = 1,
  confidenceLevel = 0.95,
  plotROC = TRUE,
  plotPR = FALSE,
  plotCalibration = FALSE,
  showMetrics = TRUE,
  showCutoffAnalysis = TRUE,
  stratifyBy
)

Arguments

data

.

outcome

Binary outcome variable indicating disease/condition status (0/1 or factor).

outcomeLevel

Level of outcome variable representing positive cases (events).

predictors

Continuous predictor variables (biomarkers, risk scores) to evaluate.

validationMethod

Method for validating diagnostic performance to avoid overfitting.

cvFolds

Number of folds for cross-validation (typically 5 or 10).

cvRepeats

Number of times to repeat cross-validation for more stable results.

bootstrapN

Number of bootstrap samples for bootstrap validation and confidence intervals.

holdoutProp

Proportion of data to hold out for validation (0.1 to 0.5).

comparisonMethod

Statistical method for comparing multiple ROC curves.

optimalCutoff

Method for determining optimal diagnostic cutoff point.

costRatio

Ratio of cost of false positive to false negative (for cost-weighted cutoff).

confidenceLevel

Confidence level for confidence intervals (0.80 to 0.99).

plotROC

.

plotPR

Generate precision-recall curves (useful for imbalanced datasets).

plotCalibration

Generate calibration plots to assess prediction calibration.

showMetrics

Show comprehensive diagnostic performance metrics table.

showCutoffAnalysis

Show optimal cutoff analysis with sensitivity/specificity trade-offs.

stratifyBy

Optional variable for stratified analysis (subgroup analysis).

Value

A results object containing:

results$texta html
results$performanceTablea table
results$cutoffTablea table
results$comparisonTablea table
results$validationTablea table
results$rocPlotan image
results$prPlotan image
results$calibrationPlotan image
results$stratifiedResultsa table
results$interpretationa html
results$recommendationsa html

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

results$performanceTable$asDF

as.data.frame(results$performanceTable)

Examples

# Single biomarker diagnostic performance
diagnosticperformance(
    data = dataset,
    outcome = "disease_status",
    predictors = "biomarker_level",
    validation_method = "crossval",
    cv_folds = 10
)

# Multiple biomarker comparison
diagnosticperformance(
    data = dataset,
    outcome = "disease_status",
    predictors = c("marker1", "marker2", "marker3"),
    comparison_method = "delong",
    validation_method = "bootstrap",
    bootstrap_n = 1000
)