ClinicoPathJamoviModule

Comprehensive ROC Analysis with Advanced Features

Performs sophisticated Receiver Operating Characteristic (ROC) curve analysis with optimal cutpoint determination, multiple comparison methods, and advanced statistical features including IDI/NRI calculations, DeLong test, and comprehensive visualization options.

Value

A psychopdaROCResults object containing:

Details

This function provides an extensive ROC analysis toolkit that goes beyond basic ROC curve generation. Key features include:

Core ROC Analysis:

Advanced Statistical Methods:

Visualization Options:

Subgroup Analysis:

Note

This function originally developed by Lucas Friesen in the psychoPDA module. Enhanced version with additional features added to the ClinicoPath module.

References

DeLong, E. R., DeLong, D. M., & Clarke-Pearson, D. L. (1988). Comparing the areas under two or more correlated receiver operating characteristic curves: a nonparametric approach. Biometrics, 44(3), 837-845.

Pencina, M. J., D’Agostino, R. B., D’Agostino, R. B., & Vasan, R. S. (2008). Evaluating the added predictive ability of a new marker: from area under the ROC curve to reclassification and beyond. Statistics in Medicine, 27(2), 157-172.

Youden, W. J. (1950). Index for rating diagnostic tests. Cancer, 3(1), 32-35.

See also

cutpointr for cutpoint optimization methods roc for ROC curve analysis

Super classes

jmvcore::Analysis -> psychopdaROCBase -> psychopdaROCClass

Methods

Public methods

Inherited methods


psychopdaROCClass$asSource()

Generate R source code for psychopdaROC analysis

Usage

psychopdaROCClass$asSource()

Returns

Character string with R syntax for reproducible analysis


psychopdaROCClass$clone()

The objects of this class are cloneable with this method.

Usage

psychopdaROCClass$clone(deep = FALSE)

Arguments

Examples

if (FALSE) { # \dontrun{
# Load example medical data
data(medical_roc_data)

# Basic ROC analysis
result1 <- psychopdaROC(
  data = medical_roc_data,
  dependentVars = "biomarker1",
  classVar = "disease_status",
  positiveClass = "Disease"
)

# Compare multiple biomarkers with DeLong test
result2 <- psychopdaROC(
  data = medical_roc_data,
  dependentVars = c("biomarker1", "biomarker2", "biomarker3"),
  classVar = "disease_status",
  positiveClass = "Disease",
  delongTest = TRUE,
  combinePlots = TRUE
)

# Advanced analysis with IDI/NRI
result3 <- psychopdaROC(
  data = medical_roc_data,
  dependentVars = c("biomarker1", "biomarker2"),
  classVar = "disease_status",
  positiveClass = "Disease",
  calculateIDI = TRUE,
  calculateNRI = TRUE,
  refVar = "biomarker1",
  nriThresholds = "0.3,0.7"
)

# Cost-benefit optimization
result4 <- psychopdaROC(
  data = medical_roc_data,
  dependentVars = "biomarker1",
  classVar = "disease_status",
  positiveClass = "Disease",
  method = "oc_cost_ratio",
  costratioFP = 2.5 # False positives cost 2.5x false negatives
)

# Subgroup analysis by hospital
result5 <- psychopdaROC(
  data = medical_roc_data,
  dependentVars = "biomarker1",
  classVar = "disease_status",
  positiveClass = "Disease",
  subGroup = "hospital"
)

# Comprehensive analysis with all features
result6 <- psychopdaROC(
  data = medical_roc_data,
  dependentVars = c("biomarker1", "biomarker2"),
  classVar = "disease_status",
  positiveClass = "Disease",
  method = "maximize_metric",
  metric = "youden",
  plotROC = TRUE,
  sensSpecTable = TRUE,
  showThresholdTable = TRUE,
  delongTest = TRUE,
  calculateIDI = TRUE,
  partialAUC = TRUE,
  bootstrapCI = TRUE,
  precisionRecallCurve = TRUE,
  compareClassifiers = TRUE
)

# Financial risk assessment example
data(financial_roc_data)

financial_result <- psychopdaROC(
  data = financial_roc_data,
  dependentVars = c("credit_score", "income_debt_ratio", "employment_score"),
  classVar = "default_status",
  positiveClass = "Default",
  direction = "<=", # Lower credit scores indicate higher risk
  method = "oc_cost_ratio",
  costratioFP = 0.1, # False positives (rejected good clients) cost less
  delongTest = TRUE,
  subGroup = "client_type"
)

# Educational assessment example
data(education_roc_data)

education_result <- psychopdaROC(
  data = education_roc_data,
  dependentVars = c("exam_score", "project_score", "peer_score"),
  classVar = "pass_status",
  positiveClass = "Pass",
  method = "maximize_metric",
  metric = "accuracy",
  calculateIDI = TRUE,
  refVar = "exam_score",
  subGroup = "class_section"
)

# Manufacturing quality control example
data(manufacturing_roc_data)

quality_result <- psychopdaROC(
  data = manufacturing_roc_data,
  dependentVars = c("dimension_score", "surface_score", "strength_score"),
  classVar = "quality_status",
  positiveClass = "Defect",
  method = "oc_equal_sens_spec", # Balanced sensitivity/specificity
  plotROC = TRUE,
  showCriterionPlot = TRUE,
  showDotPlot = TRUE,
  subGroup = "production_line"
)
} # }