Skip to content
 
 

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Privilege Scores

This repository contains the code and reproduction scripts for the ACM FAccT 2026 paper "Privilege Scores". The project implements privilege scores (PS), privilege score contributions (PSCs), and related simulation and real-world experiments for mortgage and law-school admission settings.

Citation

If you use this code or build on the method, please cite:

@inproceedings{bothmann2026privilege,
  author = {Bothmann, Ludwig and Boustani, Philip A. and Alvarez, Jose M. and Casalicchio, Giuseppe and Bischl, Bernd and Dandl, Susanne},
  title = {Privilege Scores},
  year = {2026},
  isbn = {979-8-4007-2596-8/2026/06},
  publisher = {Association for Computing Machinery},
  address = {New York, NY, USA},
  doi = {10.1145/3805689.3812340},
  booktitle = {The 2026 ACM Conference on Fairness, Accountability, and Transparency (FAccT '26)},
  location = {Montreal, QC, Canada},
  series = {FAccT '26}
}

Setup

Create and activate a conda environment, then install R:

conda create --name priv_scores
conda activate priv_scores
conda install -c conda-forge r-base r-essentials

Install the R packages used by the active simulation, real-data, and result scripts:

conda install -c conda-forge r-mlr3 r-mlr3learners r-mlr3tuning r-mlr3tuningspaces r-simcausal r-ggplot2 r-dplyr r-tidyr r-gridextra r-cowplot r-ggdist r-ggridges r-ranger r-r.utils r-rhpcblasctl r-lgr r-data.table r-rstan r-xtable r-mgcv r-knitr r-kableextra r-stargazer r-fairmodels

fairadapt is not currently available from conda-forge, so install it from R:

R -q -e "install.packages('fairadapt', repos = 'https://cloud.r-project.org')"

Reproducing Results

The repository separates full experiment runs from paper-output scripts. The main_* scripts rerun experiments and write timestamped .RData result files. The results_* scripts load saved result objects and reproduce paper-facing tables, plots, and diagnostics.

Simulation Study

The simulation scripts are organized as:

code/
|-- main_sim_study.R       # full simulation run
|-- results_sim_study.R    # simulation tables and diagnostics
`-- shared helper layer

Run the full simulation study:

Rscript code/main_sim_study.R

The default command-line arguments are:

Rscript code/main_sim_study.R --M 100 --n_train 1000 --B 100 --num_cores 4 --n_evals 30 --german_scm_version "standard" --misspec_type "None" --thr_type "adaptive" --verbose FALSE

To reproduce simulation tables and diagnostics from saved results, run:

Rscript code/results_sim_study.R

HMDA Mortgage Experiments

HMDA data are not distributed with this repository. Download the 2022 loan-level files from the HMDA Data Browser and save them under data/real/hmda/ with the following filenames (expected by the code):

  • county_36061_loan_types_1.csv for New York County, NY,
  • state_WI_loan_types_1.csv for Wisconsin,
  • state_LA.csv for Louisiana.

The HMDA mortgage scripts are organized as:

code/
|-- main_real_mortgage.R             # full HMDA run
|-- results_real_mortgage-short.R    # main paper HMDA plots and tables
|-- results_real_mortgage.R          # extended HMDA summaries
`-- shared helper layer

The full HMDA run expects the raw HMDA files described in code/main_real_mortgage.R and in the paper. Run the full mortgage experiment with:

Rscript code/main_real_mortgage.R

The default command-line arguments are:

Rscript code/main_real_mortgage.R --B 100 --num_cores 3 --n_evals 25 --eiko FALSE --small FALSE --location "ny" --verbose TRUE

To reproduce the main mortgage plots and tables from saved results, run:

Rscript code/results_real_mortgage-short.R

For the broader mortgage result summaries, run:

Rscript code/results_real_mortgage.R

Law School Experiments

Law School data are not distributed with this repository. Download the data from Law School Admissions Bar Passage on Kaggle and save the CSV under data/real/ as bar_pass_prediction.csv.

The Law School scripts are organized as:

code/
|-- main_real_lawschool.R       # full Law School run
|-- results_real_lawschool.R    # Law School plots and tables
`-- shared helper layer

Run the full Law School experiment:

Rscript code/main_real_lawschool.R

The default command-line arguments are:

Rscript code/main_real_lawschool.R --R 3 --B 100 --num_cores 3 --n_evals 25 --bell_dummy TRUE --verbose TRUE --pa "race"

To reproduce Law School plots and tables from saved results, run:

Rscript code/results_real_lawschool.R

About

Code for "Privilege Scores" (FAccT'26)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages