{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Recidivism\n",
"\n",
"This notebook contains my analysis of data presented in \n",
"\"[Machine Bias](https://www.propublica.org/article/machine-bias-risk-assessments-in-criminal-sentencing)\", Julia Angwin, Jeff Larson, Surya Mattu and Lauren Kirchner, ProPublica, May 23, 2016.\n",
"\n",
"I would like to thank the authors of that article for making their data and analysis freely available. They are a model of open science.\n",
"\n",
"\n",
"Copyright 2018 Allen Downey\n",
"\n",
"The code and text of this notebook are under this license: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n",
"\n",
"The data are from [this repository](https://github.com/propublica/compas-analysis), which contains the data and analysis pipeline described on [this web page](https://www.propublica.org/article/how-we-analyzed-the-compas-recidivism-algorithm).\n",
"\n",
"The terms of use for the data [are here](https://www.propublica.org/datastore/terms). In compliance with those terms, I am not distributing the data, but there is a link below that downloads it directly."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n",
"\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from sympy import symbols, Eq, solve\n",
"\n",
"from overthink import decorate"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Metrics\n",
"\n",
"In this section I start with the [data reported here](https://www.propublica.org/article/how-we-analyzed-the-compas-recidivism-algorithm) and replicate the analysis there, computing various metrics based on the [confusion matrix](https://en.wikipedia.org/wiki/Confusion_matrix): prevalence, sensitivity, specificity, false positive rate, false negative rate, positive predictive value, and negative predictive value.\n",
"\n",
"The following function takes an array and returns a Pandas DataFrame:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def make_matrix(a):\n",
" \"\"\"Make a confusion matrix from an array.\n",
" \n",
" a: array or list of lists\n",
" \n",
" returns: DataFrame\n",
" \"\"\"\n",
" a = np.asarray(a).reshape((2, 2))\n",
" index = ['Survived', 'Recidivated']\n",
" columns = ['Low', 'High']\n",
" return pd.DataFrame(a, index=index, columns=columns)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Make the matrix for all defendants."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
],
"text/plain": [
" Percent\n",
"White defendants \n",
"FP rate 23.454301\n",
"FN rate 47.722567\n",
"PPV 59.133489\n",
"NPV 71.187500\n",
"Sensitivity 52.277433\n",
"Specificity 76.545699\n",
"Prevalence 39.364303"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"white_metrics = compute_metrics(matrix_white, 'White defendants')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So far, all results are consistent with those reported in the article, including the headline results:\n",
"\n",
"1. The false positive rate for black defendants is substantially higher than for white defendants (45%, compared to 23%).\n",
"\n",
"2. The false negative rate for black defendants is substantially lower (28%, compared to 48%).\n",
"\n",
"The false positive rate is the fraction of all non-recidivists who not labeled low risk.\n",
"\n",
"The false negative rate is the fraction of all recidivists who were labeled low risk."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(44.84679665738162, 27.985270910047344)"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"error_rates(matrix_black)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(23.45430107526882, 47.72256728778468)"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"error_rates(matrix_white)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### The constant predictive value model\n",
"\n",
"An ideal test should have equal predicitive value in all groups; that is, two people in the same risk category should have the same probability of recidivism, regardless of what group they are in.\n",
"\n",
"An ideal test should also have the same error rates for all groups; that is, two non-recidivists should have the same probability of being classified as high risk. \n",
"\n",
"Unfortunately, these two goals are in conflict:\n",
"\n",
"* If you design a test to achieve equal predictive value across groups with different prevalence, you will find that error rates depend on prevalence. Speficially, false positive rates will be higher in groups with higher rates of recividism.\n",
"\n",
"* If you design a test to achieve equal error rates across groups, you will find that predictive value depends on prevalence. Specifically, positive predictive value will be lower in groups with lower rates of recidivism.\n",
"\n",
"The next two sections demonstrate these effects.\n",
"\n",
"A confusion matrix contains four values, but because they are contrained to add up to 100, it only takes 3 values to determine a confusion matrix.\n",
"\n",
"For example, if you specify prevalence, PPV, and NPV, that determines a confusion matrix, and then you can compute the error rates.\n",
"\n",
"Or, if you specify prevalence, FPR, and FNR, that determines a confusion matrix, and then you can compute predictive values.\n",
"\n",
"The following function takes prevalence, PPV, and NPV and returns a confusion matrix."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"def constant_predictive_value(prev, ppv, npv):\n",
" \"\"\"Make a confusion matrix with given metrics.\n",
" \n",
" prev: prevalence\n",
" ppv: positive predictive value\n",
" npv: negative predictive value\n",
" \n",
" returns: confusion matrix\n",
" \"\"\"\n",
" tn, fp, fn, tp = symbols('tn fp fn tp')\n",
" eq1 = Eq(percent(tp+fn, tn+fp), prev)\n",
" eq2 = Eq(percent(tp, fp), ppv)\n",
" eq3 = Eq(percent(tn,fn), npv)\n",
" eq4 = Eq(tn+fp+fn+tp, 1)\n",
" soln = solve([eq1, eq2, eq3, eq4], [tn, fp, fn, tp])\n",
" a = list(soln.values())\n",
" return make_matrix(a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To test it, I'll construct a confusion matrix with the actual metrics from all defendents."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Low
\n",
"
High
\n",
"
\n",
" \n",
" \n",
"
\n",
"
Survived
\n",
"
0.371638480731910
\n",
"
0.177710008317161
\n",
"
\n",
"
\n",
"
Recidivated
\n",
"
0.168561131133906
\n",
"
0.282090379817023
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Low High\n",
"Survived 0.371638480731910 0.177710008317161\n",
"Recidivated 0.168561131133906 0.282090379817023"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ppv, npv = predictive_value(matrix_all)\n",
"prev = prevalence(matrix_all)\n",
"\n",
"m = constant_predictive_value(prev, ppv, npv)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we use it to compute the other metrics, they are consistent with the results we got with the original data."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Percent
\n",
"
\n",
"
\n",
"
\n",
"
\n",
"
\n",
" \n",
" \n",
"
\n",
"
FP rate
\n",
"
32.3492303810245
\n",
"
\n",
"
\n",
"
FN rate
\n",
"
37.4038757305443
\n",
"
\n",
"
\n",
"
PPV
\n",
"
61.3506180283389
\n",
"
\n",
"
\n",
"
NPV
\n",
"
68.7965101360021
\n",
"
\n",
"
\n",
"
Sensitivity
\n",
"
62.5961242694557
\n",
"
\n",
"
\n",
"
Specificity
\n",
"
67.6507696189755
\n",
"
\n",
"
\n",
"
Prevalence
\n",
"
45.0651510950929
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Percent\n",
" \n",
"FP rate 32.3492303810245\n",
"FN rate 37.4038757305443\n",
"PPV 61.3506180283389\n",
"NPV 68.7965101360021\n",
"Sensitivity 62.5961242694557\n",
"Specificity 67.6507696189755\n",
"Prevalence 45.0651510950929"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"compute_metrics(m)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can use this function to run the \"constant predictive value\" model, which asks what happens if we keep PPV and NPV constant, and vary prevalence. "
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {},
"outputs": [],
"source": [
"ppv, npv = predictive_value(matrix_all)\n",
"prevalences = np.linspace(32, 60, 31)\n",
"\n",
"fp_rates = pd.Series(index=prevalences)\n",
"fn_rates = pd.Series(index=prevalences)\n",
"\n",
"for prev in prevalences:\n",
" df = constant_predictive_value(prev, ppv, npv)\n",
" fpr, fnr = error_rates(df)\n",
" fp_rates[prev] = fpr\n",
" fn_rates[prev] = fnr"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The following figure shows the error rates we would expect from a test with equal predictive value for all groups, regardless of prevalence."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def plot_cpv_model():\n",
" fp_rates.plot(label='false positive rate', color='C1')\n",
" fn_rates.plot(label='false negative rate', color='C4')\n",
" decorate(xlabel='Prevalence', ylabel='Percent',\n",
" title='Expected error rates, constant predictive value',\n",
" loc='upper center')\n",
" \n",
"plot_cpv_model()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As prevalence increases, false positive rates increase quickly. Note the vertical scale: the difference in error rates between a low-prevalence group and a high-prevalence group is dramatic!\n",
"\n",
"For the COMPAS test, the effect is not as extreme. The following figure shows the constant prediction model again, including data points for the white defendants (left), all defendants (middle), and black defendants (right)."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"def plot_fpr_fnr(m):\n",
" \"\"\"Plot error rates versus prevalence.\n",
" \n",
" m: confusion matrix\n",
" \"\"\"\n",
" prev = prevalence(m)\n",
" fpr, fnr = error_rates(m)\n",
" plt.plot(prev, fpr, 'o', color='C1')\n",
" plt.plot(prev, fnr, 'o', color='C4')"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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Dh3KkiVLuOqqq857bWpqKlFRUbz11lu8+OKLvPDCC7z//vvceuutvPfee/To0YNnn32WF154gXfeeYf//ve/7N+/H09PT5KSks7bVpcuXRg6dCiDBw9mxIgR563r27cv48aNIzU1FR8fHyZNmsSoUaM4fvw4L730EvPnz8fHx4fXXnuN//3vfzz77LMXHJukpCQWL14MwKlTp1i5ciUiwmeffcbrr7/OW2+9xfjx4/H19eXRRx8F4KabbuLhhx+mW7duHDx4kP79+7NjR6WcbFhdgUqToAAatqlB77HhzP9yO79/uo0B41ri6lopCpHqEiUnJzN27FhiYmIQETIzL6wa7tq1K4888ghjxoxh+PDhhIaGMm/ePObNm0fbtm0BSElJISYm5oIE5eLiwqhRowC4+eabGT58OMnJySQlJdGjRw8Axo4dy8iRIwGIjIxkzJgxDBs2jGHDhpX4fbi5uTFgwABmzpzJiBEj+O2333j99ddZvHgx27dvp2vXrgBkZGTQuXPnQreRGydY96uNGjWKhIQEMjIyirxfaf78+edVOZ4+fZozZ87g5+dX4tiVkzIGyqi3ZaVKUADNOtYm41wWS37azZ9f7aDv7RGIi3ZtdSrFlHTKyjPPPEOvXr2YPn06sbGx9OzZ84LnPPHEE1xzzTXMnj2bTp06MX/+fIwxPPnkk4wbN+6S9nex7tW//fYbS5YsYcaMGfznP/9h27ZtJd72qFGj+OCDDwgICKB9+/b4+flhjKFv3778+OOPF329j49P3t//+Mc/eOSRRxg6dCiLFi3i+eefL/Q1OTk5rFixAm9v7xLHqcqBlR/DweVw/Rfgav/0USmLD616htJpWENi1hxl8Y+70FmFVUHJycmEhIQAVltPYfbu3UurVq3417/+RXR0NDt37qR///588cUXee05hw4d4tixYxe8NicnhylTpgDwww8/0K1bN6pVq4a/vz9Lly4F4Ntvv6VHjx7k5OQQFxdHr169eP3110lKSrqgvcjPzy+vDaygnj17sn79ej799NO80lCnTp1YtmwZe/bsAeDs2bPs3r37ko7L119/XeT++/Xrx/vvv5/3eOPGjRfdtnJixsCSN2Duv8DkWD9loFImKIB2A8KIGlCfbUsPs2LaXk1S6jyPP/44Tz75JF27diU7O7vQ57zzzju0bNmS1q1b4+3tzcCBA+nX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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_fpr_fnr(matrix_all)\n",
"plot_fpr_fnr(matrix_black)\n",
"plot_fpr_fnr(matrix_white)\n",
"\n",
"plot_cpv_model()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For black defendants:\n",
"\n",
"* The actual false positive rate is lower that what we would expect if the test had the same predictive value for all groups.\n",
"\n",
"* The actual false negative rate is higher than expected.\n",
"\n",
"For white defendants:\n",
"\n",
"* The actual false positive rate is higher than what we would expect if the test had the same predictive value for all groups.\n",
"\n",
"* The actual false negative rate is lower than expected.\n",
"\n",
"Relative to the CPV model, the COMPAS test is what I will call \"tempered\", that is, less sensitive to variation in prevalence between groups.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Constant error rate model\n",
"\n",
"In the previous section we held predictive value constant and computed the effect on error rates. In this section we'll go the other way: if we hold error rates constant for all groups, what effect does that have on predictive value?\n",
"\n",
"The following function takes prevalence and error rates and returns a confusion matrix.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"def constant_error_rates(prev, fpr, fnr):\n",
" \"\"\"Make a confusion matrix with given metrics.\n",
" \n",
" prev: prevalence\n",
" fpr: false positive rate\n",
" fnr: false negative rate\n",
" \n",
" returns: confusion matrix\n",
" \"\"\"\n",
" tn, fp, fn, tp = symbols('tn fp fn tp')\n",
" eq1 = Eq(percent(tp+fn, tn+fp), prev)\n",
" eq2 = Eq(percent(fp, tn), fpr)\n",
" eq3 = Eq(percent(fn, tp), fnr)\n",
" eq4 = Eq(tn+fp+fn+tp, 1)\n",
" soln = solve([eq1, eq2, eq3, eq4], [tn, fp, fn, tp])\n",
" a = list(soln.values())\n",
" return make_matrix(a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Again, just to test it, we can replicate the observed confusion matrix."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def plot_cer_model():\n",
" ppv_rates.plot(label='Positive predictive value', color='C0')\n",
" npv_rates.plot(label='Negative predictive value', color='C2')\n",
" decorate(xlabel='Prevalence', ylabel='Percent',\n",
" title='Expected predictive value, constant error rates',\n",
" loc='upper center')\n",
" \n",
"plot_cer_model()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As prevalence increases, so does positive predictive value.\n",
"\n",
"For the COMPAS test, the effect is not as extreme. The following figure shows the constant error rate again, including data points for the white defendants (left), all defendants (middle), and black defendants (right)."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"def plot_ppv_npv(m):\n",
" \"\"\"Plot predictive values versus prevalence.\n",
" \n",
" m: confusion matrix\n",
" \"\"\"\n",
" prev = prevalence(m)\n",
" ppv, npv = predictive_value(m)\n",
" plt.plot(prev, ppv, 'o', color='C0')\n",
" plt.plot(prev, npv, 'o', color='C2')"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_ppv_npv(matrix_all)\n",
"plot_ppv_npv(matrix_black)\n",
"plot_ppv_npv(matrix_white)\n",
"\n",
"plot_cer_model()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Again, the test is less sensitive to differences in prevalence between groups than we would expect from the constant error rate model."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### More data, more details\n",
"\n",
"In this section I read the detailed dataset available from [this repository](https://github.com/propublica/compas-analysis) and run validation checks."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"# Uncomment and run this cell once to download the data.\n",
"# Then comment it again so you don't download it every time you run the notebook.\n",
"# !wget 'https://raw.githubusercontent.com/propublica/compas-analysis/master/compas-scores-two-years.csv'"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
id
\n",
"
name
\n",
"
first
\n",
"
last
\n",
"
compas_screening_date
\n",
"
sex
\n",
"
dob
\n",
"
age
\n",
"
age_cat
\n",
"
race
\n",
"
...
\n",
"
v_decile_score
\n",
"
v_score_text
\n",
"
v_screening_date
\n",
"
in_custody
\n",
"
out_custody
\n",
"
priors_count.1
\n",
"
start
\n",
"
end
\n",
"
event
\n",
"
two_year_recid
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
1
\n",
"
miguel hernandez
\n",
"
miguel
\n",
"
hernandez
\n",
"
2013-08-14
\n",
"
Male
\n",
"
1947-04-18
\n",
"
69
\n",
"
Greater than 45
\n",
"
Other
\n",
"
...
\n",
"
1
\n",
"
Low
\n",
"
2013-08-14
\n",
"
2014-07-07
\n",
"
2014-07-14
\n",
"
0
\n",
"
0
\n",
"
327
\n",
"
0
\n",
"
0
\n",
"
\n",
"
\n",
"
1
\n",
"
3
\n",
"
kevon dixon
\n",
"
kevon
\n",
"
dixon
\n",
"
2013-01-27
\n",
"
Male
\n",
"
1982-01-22
\n",
"
34
\n",
"
25 - 45
\n",
"
African-American
\n",
"
...
\n",
"
1
\n",
"
Low
\n",
"
2013-01-27
\n",
"
2013-01-26
\n",
"
2013-02-05
\n",
"
0
\n",
"
9
\n",
"
159
\n",
"
1
\n",
"
1
\n",
"
\n",
"
\n",
"
2
\n",
"
4
\n",
"
ed philo
\n",
"
ed
\n",
"
philo
\n",
"
2013-04-14
\n",
"
Male
\n",
"
1991-05-14
\n",
"
24
\n",
"
Less than 25
\n",
"
African-American
\n",
"
...
\n",
"
3
\n",
"
Low
\n",
"
2013-04-14
\n",
"
2013-06-16
\n",
"
2013-06-16
\n",
"
4
\n",
"
0
\n",
"
63
\n",
"
0
\n",
"
1
\n",
"
\n",
"
\n",
"
3
\n",
"
5
\n",
"
marcu brown
\n",
"
marcu
\n",
"
brown
\n",
"
2013-01-13
\n",
"
Male
\n",
"
1993-01-21
\n",
"
23
\n",
"
Less than 25
\n",
"
African-American
\n",
"
...
\n",
"
6
\n",
"
Medium
\n",
"
2013-01-13
\n",
"
NaN
\n",
"
NaN
\n",
"
1
\n",
"
0
\n",
"
1174
\n",
"
0
\n",
"
0
\n",
"
\n",
"
\n",
"
4
\n",
"
6
\n",
"
bouthy pierrelouis
\n",
"
bouthy
\n",
"
pierrelouis
\n",
"
2013-03-26
\n",
"
Male
\n",
"
1973-01-22
\n",
"
43
\n",
"
25 - 45
\n",
"
Other
\n",
"
...
\n",
"
1
\n",
"
Low
\n",
"
2013-03-26
\n",
"
NaN
\n",
"
NaN
\n",
"
2
\n",
"
0
\n",
"
1102
\n",
"
0
\n",
"
0
\n",
"
\n",
" \n",
"
\n",
"
5 rows × 53 columns
\n",
"
"
],
"text/plain": [
" id name first last compas_screening_date sex \\\n",
"0 1 miguel hernandez miguel hernandez 2013-08-14 Male \n",
"1 3 kevon dixon kevon dixon 2013-01-27 Male \n",
"2 4 ed philo ed philo 2013-04-14 Male \n",
"3 5 marcu brown marcu brown 2013-01-13 Male \n",
"4 6 bouthy pierrelouis bouthy pierrelouis 2013-03-26 Male \n",
"\n",
" dob age age_cat race ... \\\n",
"0 1947-04-18 69 Greater than 45 Other ... \n",
"1 1982-01-22 34 25 - 45 African-American ... \n",
"2 1991-05-14 24 Less than 25 African-American ... \n",
"3 1993-01-21 23 Less than 25 African-American ... \n",
"4 1973-01-22 43 25 - 45 Other ... \n",
"\n",
" v_decile_score v_score_text v_screening_date in_custody out_custody \\\n",
"0 1 Low 2013-08-14 2014-07-07 2014-07-14 \n",
"1 1 Low 2013-01-27 2013-01-26 2013-02-05 \n",
"2 3 Low 2013-04-14 2013-06-16 2013-06-16 \n",
"3 6 Medium 2013-01-13 NaN NaN \n",
"4 1 Low 2013-03-26 NaN NaN \n",
"\n",
" priors_count.1 start end event two_year_recid \n",
"0 0 0 327 0 0 \n",
"1 0 9 159 1 1 \n",
"2 4 0 63 0 1 \n",
"3 1 0 1174 0 0 \n",
"4 2 0 1102 0 0 \n",
"\n",
"[5 rows x 53 columns]"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cp = pd.read_csv(\"compas-scores-two-years.csv\")\n",
"cp.head()"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(7214, 53)"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cp.shape"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"id\n",
"name\n",
"first\n",
"last\n",
"compas_screening_date\n",
"sex\n",
"dob\n",
"age\n",
"age_cat\n",
"race\n",
"juv_fel_count\n",
"decile_score\n",
"juv_misd_count\n",
"juv_other_count\n",
"priors_count\n",
"days_b_screening_arrest\n",
"c_jail_in\n",
"c_jail_out\n",
"c_case_number\n",
"c_offense_date\n",
"c_arrest_date\n",
"c_days_from_compas\n",
"c_charge_degree\n",
"c_charge_desc\n",
"is_recid\n",
"r_case_number\n",
"r_charge_degree\n",
"r_days_from_arrest\n",
"r_offense_date\n",
"r_charge_desc\n",
"r_jail_in\n",
"r_jail_out\n",
"violent_recid\n",
"is_violent_recid\n",
"vr_case_number\n",
"vr_charge_degree\n",
"vr_offense_date\n",
"vr_charge_desc\n",
"type_of_assessment\n",
"decile_score.1\n",
"score_text\n",
"screening_date\n",
"v_type_of_assessment\n",
"v_decile_score\n",
"v_score_text\n",
"v_screening_date\n",
"in_custody\n",
"out_custody\n",
"priors_count.1\n",
"start\n",
"end\n",
"event\n",
"two_year_recid\n"
]
}
],
"source": [
"for col in cp.columns:\n",
" print(col)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The following functions compute value counts and percentages for various variables."
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"def make_dataframe(series, *columns):\n",
" \"\"\"Make a Series into a DataFrame with one column.\n",
" \n",
" So it looks better in Jupyter.\n",
" \n",
" series: Series\n",
" columns: column name(s)\n",
" \n",
" returns: DataFrame\n",
" \"\"\"\n",
" df = pd.DataFrame(series.values,\n",
" index=series.index,\n",
" columns=columns)\n",
" df.index.name = series.name\n",
" return df\n",
"\n",
"def counts(df, var):\n",
" \"\"\"Compute counts for each unique value.\n",
" \n",
" df: DataFrame\n",
" var: variable name\n",
" \"\"\"\n",
" series = df[var].value_counts()\n",
" return make_dataframe(series, 'Count')\n",
"\n",
"def percentages(df, var):\n",
" \"\"\"Compute percentages for each unique value.\n",
" \n",
" df: DataFrame\n",
" var: variable name\n",
" \"\"\"\n",
" series = df[var].value_counts() / len(df) * 100\n",
" return make_dataframe(series, 'Percentage')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Breakdown by age"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
"
],
"text/plain": [
" Low High\n",
"Survived 0 0\n",
"Recidivated 0 0"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"matrix_white - compute_matrix(white).values"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Calibration\n",
"\n",
"To check for calibration, I group defendents by decile score and compute prevalence (recidivism rate) in each group.\n",
"\n",
"This analysis does not take observation time into account, unlike the analysis in the original article.\n",
"\n",
"The following function groups defendants by decile score and computes prevalence in each group."
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [],
"source": [
"def calibration_curve(df):\n",
" \"\"\"Compute probability of recidivism by decile score.\n",
" \n",
" df: DataFrame\n",
" \n",
" returns: Series\n",
" \"\"\"\n",
" return df.groupby('decile_score').two_year_recid.mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The following figure shows this calibration curve for all defendants and broken down by race."
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [],
"source": [
"def plot_calibration(df, group_vars, title=''):\n",
" calibration_curve(cp).plot(linestyle='dotted',\n",
" label='All defendants', color='gray')\n",
"\n",
" for name, group in cp.groupby(group_vars):\n",
" if len(group) > 1000:\n",
" calibration_curve(group).plot(label=name)\n",
"\n",
" decorate(xlabel='Decile score',\n",
" ylabel='Prob recidivism',\n",
" title=title)"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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TzN12V7qutrz1dgONPdzLX7u3LlzuLm54eDgQFZWFvb29pX27/i2vQ/qnz/s50BSRoW22aq+G68PaF3mPpeX29i4cSMDBw5k2rRpDBw4kKysLDp16sQrr7zCTz/9hJeXF7t27aJ9+/aEhIQQExPDZ599RnJyMpMmTeL48eOAaYbzLl26MHjwYBISEsjNzeWZZ55hwoQJgGkS22eeeYbVq1fj6OjI999/j6+v7zV1aa1ZtmwZv/zyC926dSM3NxcHBwfi4+Pp168fd9xxB9u2baNt27Y88sgjvP7665w7d44FCxbQsWNHsrKyePrpp9m3bx+FhYVMmzaNQYMGERUVxY8//khubi5ZWVnMmTOH/v37ExcXh8Fg4KWXXuLnn39GKcX48eN5+umneeONN/jhhx/IycmhS5cufPnllyil6NGjB506dWLjxo2kpaXx1Vdf0a1btwr9GQpxOzEaNdPXHeLz347RMdiL/44Jx8vZrvj57OxsvvrqK0JDQ7nvvvvMmjGmKsgpvgpS2nIbq1atwtHRkd27dzNixAgADh8+zPr163n//feveP2UKVPo3r07e/bsYefOnbRubQrEOXPmEBsbS0xMDJ988gmpqakAZGVlERkZyZ49e7jzzjuZNWtWqXVt2bKF4OBgGjduTI8ePViz5q/VT44ePcozzzzD3r17+fPPP1m4cCGbN29m+vTp/Otf/wLg7bffplevXkRHR7Nx40amTp1KVlYWAH/88Qdz585lw4YNVxxz5syZnDhxgl27drF3797iNaueeuopoqOjiYuLIycnh9WrVxe/prCwkB07dvDRRx/xz3/+86Z/DkLc7jLzCpk4P5bPfzvGgx0DmP9Yp+JwujzBs5OTEwMGDKBHjx5VWGn5al0PqryejqWYu9zGsGHDsLa+duTMhg0b+OabbwDTTOHu7qahn5988gkrVqwAICEhgSNHjlCnTh3s7OyKl48PDw/nl19+uW5dI0eOLK5r3rx53H///QAEBwcTEhICQOvWrenduzdKKUJCQoiPjwdMS3msWrWK6dOnA6YFHk+dOgVAnz598PLyuuaY69evZ9KkScWnCy7vs3HjRt577z2ys7O5cOECrVu3ZsCAAQDFNV1eEkQIceMSLmQz/psYDidfYtqAVoztElR8PSkpKYklS5YwfPhwGjRoQJs2baq42vLVuoCqCjey3MaN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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_calibration(cp, 'race')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The test is well calibrated. People with higher scores have higher probabilities of recidivism. In fact, we could use this curve to transform COMPAS scores into probabilities.\n",
"\n",
"The test is about equally calibrated for black and white defendants, although black defendants with scores 3 and 4 are more likely to recidivate than white defendants with the same scores (that apparent difference might not be statistically significant).\n",
"\n",
"Here's the breakdown by age group."
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_calibration(cp, 'age_cat')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The test is about equally calibrated for all age groups, which means that people with the same score have about the same probability of recidivism, regardless of what group they are in.\n",
"\n",
"There are only 4 people in the \"Less than 25\" group with decile score 1, which is why that data point is so out of line.\n",
"\n",
"Here's the breakdown by sex."
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_calibration(cp, 'sex')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's the first case where the test does not seem well calibrated. At all decile scores, female defendants are substantially less likely to recidivate than male defendants.\n",
"\n",
"Or, reading this graph the other way, female defendants are given decile scores 1-2 points higher than male defendants with the same actual risk of recidivism. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Comparing reality to the CPV model\n",
"\n",
"In this section I'll compare actual PPV and FPR for a variety of subgroups to the values we would expect based on the CPV model; that is, a model where the predictive values are the same for all groups.\n",
"\n",
"The following function groups defendants by `group_vars` and returns a table with one row for each group."
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [],
"source": [
"def make_table(df, group_vars, expected_ppv, expected_npv):\n",
" \"\"\"Make a table with one line per group.\n",
" \n",
" df: DataFrame\n",
" group_vars: string or list of string variable names\n",
" expected_ppv: \n",
" expected_npv:\n",
" \n",
" returns: table\n",
" \"\"\"\n",
" # make the DataFrame\n",
" columns = ['count', 'prevalence',\n",
" 'actual PPV', 'actual NPV', 'actual FNR',\n",
" 'actual FPR', 'expected FPR', 'difference']\n",
" columns = group_vars + columns \n",
"\n",
" table = pd.DataFrame(columns=columns)\n",
"\n",
" # loop through the groups\n",
" grouped = df.groupby(group_vars)\n",
" for i, (name, group) in enumerate(grouped):\n",
" if not isinstance(name, tuple):\n",
" name = name,\n",
" \n",
" # size of group\n",
" count = len(group)\n",
" \n",
" # compute metrics\n",
" matrix = compute_matrix(group)\n",
" prev = prevalence(matrix)\n",
" actual_ppv, actual_npv = predictive_value(matrix)\n",
" actual_fpr, actual_fnr = error_rates(matrix)\n",
"\n",
" # generate the CPV matrix\n",
" cpv = constant_predictive_value(prev, \n",
" expected_ppv, expected_npv)\n",
"\n",
" # get the expected error rates\n",
" expected_fpr, _ = error_rates(cpv * 100)\n",
" \n",
" # for very low and high prevalences, it might\n",
" # not be possible to achieve given predictive values\n",
" if expected_fpr < 0:\n",
" expected_fpr = 0\n",
"\n",
" if expected_fpr > 100:\n",
" expected_fpr = 100\n",
"\n",
" # difference between actual and expected\n",
" diff = actual_fpr - expected_fpr\n",
"\n",
" # add a row to the table\n",
" row = name + (count, prev,\n",
" actual_ppv, actual_npv, actual_fnr,\n",
" actual_fpr, expected_fpr, diff)\n",
" \n",
" table.loc[i] = row\n",
" \n",
" # sort the table by prevalence\n",
" table.sort_values(by='prevalence', inplace=True)\n",
" return table"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(6150, 53)"
]
},
"execution_count": 69,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"subset = cp[cp.race.isin(['African-American', 'Caucasian'])]\n",
"subset.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's the breakdown by age category."
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
age_cat
\n",
"
count
\n",
"
prevalence
\n",
"
actual PPV
\n",
"
actual NPV
\n",
"
actual FNR
\n",
"
actual FPR
\n",
"
expected FPR
\n",
"
difference
\n",
"
\n",
" \n",
" \n",
"
\n",
"
1
\n",
"
Greater than 45
\n",
"
1334
\n",
"
32.908546
\n",
"
54.945055
\n",
"
75.360825
\n",
"
54.441913
\n",
"
18.324022
\n",
"
3.25812703191668
\n",
"
15.0658953144520
\n",
"
\n",
"
\n",
"
0
\n",
"
25 - 45
\n",
"
3506
\n",
"
47.803765
\n",
"
61.931499
\n",
"
66.782609
\n",
"
34.188544
\n",
"
37.049180
\n",
"
40.7730043881377
\n",
"
-3.72382406026880
\n",
"
\n",
"
\n",
"
2
\n",
"
Less than 25
\n",
"
1310
\n",
"
57.404580
\n",
"
64.665912
\n",
"
57.611241
\n",
"
24.069149
\n",
"
55.913978
\n",
"
78.8593270762673
\n",
"
-22.9453485816437
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" age_cat count prevalence actual PPV actual NPV actual FNR \\\n",
"1 Greater than 45 1334 32.908546 54.945055 75.360825 54.441913 \n",
"0 25 - 45 3506 47.803765 61.931499 66.782609 34.188544 \n",
"2 Less than 25 1310 57.404580 64.665912 57.611241 24.069149 \n",
"\n",
" actual FPR expected FPR difference \n",
"1 18.324022 3.25812703191668 15.0658953144520 \n",
"0 37.049180 40.7730043881377 -3.72382406026880 \n",
"2 55.913978 78.8593270762673 -22.9453485816437 "
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ppv, npv = predictive_value(matrix_all)\n",
"group_vars = ['age_cat']\n",
"table1 = make_table(subset, group_vars, ppv, npv)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Again, the actual behavior of the test is tempered, compare to the CPV model; that is, the results are less extreme than the model expects.\n",
"\n",
"Here's the breakdown by race."
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
race
\n",
"
count
\n",
"
prevalence
\n",
"
actual PPV
\n",
"
actual NPV
\n",
"
actual FNR
\n",
"
actual FPR
\n",
"
expected FPR
\n",
"
difference
\n",
"
\n",
" \n",
" \n",
"
\n",
"
1
\n",
"
Caucasian
\n",
"
2454
\n",
"
39.364303
\n",
"
59.133489
\n",
"
71.187500
\n",
"
47.722567
\n",
"
23.454301
\n",
"
17.2544721036439
\n",
"
6.19982897162488
\n",
"
\n",
"
\n",
"
0
\n",
"
African-American
\n",
"
3696
\n",
"
51.433983
\n",
"
62.971481
\n",
"
65.045992
\n",
"
27.985271
\n",
"
44.846797
\n",
"
53.4036054274053
\n",
"
-8.55680877002365
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" race count prevalence actual PPV actual NPV actual FNR \\\n",
"1 Caucasian 2454 39.364303 59.133489 71.187500 47.722567 \n",
"0 African-American 3696 51.433983 62.971481 65.045992 27.985271 \n",
"\n",
" actual FPR expected FPR difference \n",
"1 23.454301 17.2544721036439 6.19982897162488 \n",
"0 44.846797 53.4036054274053 -8.55680877002365 "
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ppv, npv = predictive_value(matrix_all)\n",
"group_vars = ['race']\n",
"table2 = make_table(subset, group_vars, ppv, npv)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The false positive rate for whites is higher than we would expect if predictive value were the same for all groups.\n",
"\n",
"The false positive rate for blacks is lower than we would expect.\n",
"\n",
"Here's the breakdown by sex."
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
sex
\n",
"
count
\n",
"
prevalence
\n",
"
actual PPV
\n",
"
actual NPV
\n",
"
actual FNR
\n",
"
actual FPR
\n",
"
expected FPR
\n",
"
difference
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
"
Female
\n",
"
1219
\n",
"
36.587367
\n",
"
50.980392
\n",
"
75.683891
\n",
"
35.874439
\n",
"
35.575679
\n",
"
10.8846867203845
\n",
"
24.6909924516724
\n",
"
\n",
"
\n",
"
1
\n",
"
Male
\n",
"
4931
\n",
"
49.097546
\n",
"
64.369680
\n",
"
66.193182
\n",
"
34.407270
\n",
"
35.019920
\n",
"
45.0678340229313
\n",
"
-10.0479137042062
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" sex count prevalence actual PPV actual NPV actual FNR actual FPR \\\n",
"0 Female 1219 36.587367 50.980392 75.683891 35.874439 35.575679 \n",
"1 Male 4931 49.097546 64.369680 66.193182 34.407270 35.019920 \n",
"\n",
" expected FPR difference \n",
"0 10.8846867203845 24.6909924516724 \n",
"1 45.0678340229313 -10.0479137042062 "
]
},
"execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ppv, npv = predictive_value(matrix_all)\n",
"group_vars = ['sex']\n",
"table3 = make_table(subset, group_vars, ppv, npv)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The false positive rate for women is substantially higher than what we would expect in the CPV model, which is consistent with the calibration results in the previous section.\n",
"\n",
"Here's the breakdown by age and race."
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"