## ----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)
)

