## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set(collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 4) ## ----setup-------------------------------------------------------------------- library(clinicalfair) data(compas_sim) str(compas_sim) ## ----fairness-data------------------------------------------------------------ fd <- fairness_data( predictions = compas_sim$risk_score, labels = compas_sim$recidivism, protected_attr = compas_sim$race ) fd ## ----metrics------------------------------------------------------------------ fm <- fairness_metrics(fd) fm ## ----report------------------------------------------------------------------- rpt <- fairness_report(fd) rpt ## ----disparity-plot----------------------------------------------------------- autoplot(fm) ## ----calibration-------------------------------------------------------------- plot_calibration(fd) ## ----mitigation--------------------------------------------------------------- mit <- threshold_optimize(fd, objective = "equalized_odds") mit ## ----intersectional----------------------------------------------------------- set.seed(42) n <- nrow(compas_sim) intersectional_fairness( predictions = compas_sim$risk_score, labels = compas_sim$recidivism, race = compas_sim$race, age_group = sample(c("Young", "Old"), n, replace = TRUE) )