{ "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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
LowHigh
Survived26811282
Recidivated12162035
\n", "
" ], "text/plain": [ " Low High\n", "Survived 2681 1282\n", "Recidivated 1216 2035" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = [[2681, 1282], [1216, 2035]]\n", "matrix_all = make_matrix(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Confirm that the total matches what's reported in the article." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "7214" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.sum(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute sensitivity and specificity." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def percent(x, y):\n", " \"\"\"Compute the percentage `x/(x+y)`.\n", " \"\"\"\n", " return x / (x+y) * 100\n", "\n", "def sens_spec(m):\n", " \"\"\"Compute sensitivity and specificity.\n", " \n", " m: confusion matrix\n", " \"\"\"\n", " tn, fp, fn, tp = m.values.flatten()\n", " sens = percent(tp, fn)\n", " spec = percent(tn, fp)\n", " return sens, spec" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute sensitivity and specificity for all defendants." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(62.59612426945556, 67.65076961897553)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sens, spec = sens_spec(matrix_all)\n", "sens, spec" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute error rates." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def error_rates(m):\n", " \"\"\"Compute false positive and false negative rate.\n", " \n", " m: confusion matrix\n", " \"\"\"\n", " tn, fp, fn, tp = m.values.flatten()\n", " fpr = percent(fp, tn)\n", " fnr = percent(fn, tp)\n", " return fpr, fnr" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute error rates for all defendants." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(32.349230381024476, 37.40387573054445)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fpr, fnr = error_rates(matrix_all)\n", "fpr, fnr" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute predictive value." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def predictive_value(m):\n", " \"\"\"Compute positive and negatie predictive value.\n", " \n", " m: confusion matrix\n", " \"\"\"\n", " tn, fp, fn, tp = m.values.flatten()\n", " ppv = percent(tp, fp)\n", " npv = percent(tn, fn)\n", " return ppv, npv" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute predictive value for all defendants." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(61.350618028338864, 68.79651013600206)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ppv, npv = predictive_value(matrix_all)\n", "ppv, npv" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute prevalence." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "def prevalence(df):\n", " \"\"\"Compute prevalence.\n", " \n", " m: confusion matrix\n", " \"\"\"\n", " tn, fp, fn, tp = df.values.flatten()\n", " prevalence = percent(tp+fn, tn+fp)\n", " return prevalence" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute prevalences for all defendants." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "45.06515109509287" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prev = prevalence(matrix_all)\n", "prev" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute all metrics and put them in a DataFrame." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "def compute_metrics(m, name=''):\n", " \"\"\"Compute all metrics.\n", " \n", " m: confusion matrix\n", " \n", " returns: DataFrame\n", " \"\"\"\n", " fpr, fnr = error_rates(m)\n", " ppv, npv = predictive_value(m)\n", " sens, spec = sens_spec(m)\n", " prev = prevalence(m)\n", " \n", " index = ['FP rate', 'FN rate', 'PPV', 'NPV',\n", " 'Sensitivity', 'Specificity', 'Prevalence']\n", " df = pd.DataFrame(index=index, columns=['Percent'])\n", " df.Percent = fpr, fnr, ppv, npv, sens, spec, prev\n", " df.index.name = name\n", " return df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute metrics for all defendants." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Percent
All defendants
FP rate32.349230
FN rate37.403876
PPV61.350618
NPV68.796510
Sensitivity62.596124
Specificity67.650770
Prevalence45.065151
\n", "
" ], "text/plain": [ " Percent\n", "All defendants \n", "FP rate 32.349230\n", "FN rate 37.403876\n", "PPV 61.350618\n", "NPV 68.796510\n", "Sensitivity 62.596124\n", "Specificity 67.650770\n", "Prevalence 45.065151" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "compute_metrics(matrix_all, 'All defendants')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make the confusion matrix for black defendants." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
LowHigh
Survived990805
Recidivated5321369
\n", "
" ], "text/plain": [ " Low High\n", "Survived 990 805\n", "Recidivated 532 1369" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = [[990, 805], [532, 1369]]\n", "matrix_black = make_matrix(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute metrics for black defendants." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Percent
Black defendants
FP rate44.846797
FN rate27.985271
PPV62.971481
NPV65.045992
Sensitivity72.014729
Specificity55.153203
Prevalence51.433983
\n", "
" ], "text/plain": [ " Percent\n", "Black defendants \n", "FP rate 44.846797\n", "FN rate 27.985271\n", "PPV 62.971481\n", "NPV 65.045992\n", "Sensitivity 72.014729\n", "Specificity 55.153203\n", "Prevalence 51.433983" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "black_metrics = compute_metrics(matrix_black, 'Black defendants')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make the confusion matrix for white defendants." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
LowHigh
Survived1139349
Recidivated461505
\n", "
" ], "text/plain": [ " Low High\n", "Survived 1139 349\n", "Recidivated 461 505" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = [[1139, 349], [461, 505]]\n", "matrix_white = make_matrix(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compute metrics for white defendants." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Percent
White defendants
FP rate23.454301
FN rate47.722567
PPV59.133489
NPV71.187500
Sensitivity52.277433
Specificity76.545699
Prevalence39.364303
\n", "
" ], "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
LowHigh
Survived0.3716384807319100.177710008317161
Recidivated0.1685611311339060.282090379817023
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Percent
FP rate32.3492303810245
FN rate37.4038757305443
PPV61.3506180283389
NPV68.7965101360021
Sensitivity62.5961242694557
Specificity67.6507696189755
Prevalence45.0651510950929
\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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
LowHigh
Survived0.3716384807319100.177710008317161
Recidivated0.1685611311339070.282090379817022
\n", "
" ], "text/plain": [ " Low High\n", "Survived 0.371638480731910 0.177710008317161\n", "Recidivated 0.168561131133907 0.282090379817022" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fpr, fnr = error_rates(matrix_all)\n", "prev = prevalence(matrix_all)\n", "m = constant_error_rates(prev, fpr, fnr)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And it has the right metrics" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Percent
FP rate32.3492303810245
FN rate37.4038757305445
PPV61.3506180283388
NPV68.7965101360020
Sensitivity62.5961242694555
Specificity67.6507696189755
Prevalence45.0651510950929
\n", "
" ], "text/plain": [ " Percent\n", " \n", "FP rate 32.3492303810245\n", "FN rate 37.4038757305445\n", "PPV 61.3506180283388\n", "NPV 68.7965101360020\n", "Sensitivity 62.5961242694555\n", "Specificity 67.6507696189755\n", "Prevalence 45.0651510950929" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "compute_metrics(m)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can see how predictive value depends on prevalence (with error rates held constant)." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "fpr, fnr = error_rates(matrix_all)\n", "prevalences = np.linspace(20, 70, 31)\n", "\n", "ppv_rates = pd.Series(index=prevalences)\n", "npv_rates = pd.Series(index=prevalences)\n", "\n", "for prev in prevalences:\n", " df = constant_error_rates(prev, fpr, fnr)\n", " ppv, npv = predictive_value(df)\n", " ppv_rates[prev] = ppv\n", " npv_rates[prev] = npv" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following function plots the results." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idnamefirstlastcompas_screening_datesexdobageage_catrace...v_decile_scorev_score_textv_screening_datein_custodyout_custodypriors_count.1startendeventtwo_year_recid
01miguel hernandezmiguelhernandez2013-08-14Male1947-04-1869Greater than 45Other...1Low2013-08-142014-07-072014-07-140032700
13kevon dixonkevondixon2013-01-27Male1982-01-223425 - 45African-American...1Low2013-01-272013-01-262013-02-050915911
24ed philoedphilo2013-04-14Male1991-05-1424Less than 25African-American...3Low2013-04-142013-06-162013-06-16406301
35marcu brownmarcubrown2013-01-13Male1993-01-2123Less than 25African-American...6Medium2013-01-13NaNNaN10117400
46bouthy pierrelouisbouthypierrelouis2013-03-26Male1973-01-224325 - 45Other...1Low2013-03-26NaNNaN20110200
\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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Count
age_cat
25 - 454109
Greater than 451576
Less than 251529
\n", "
" ], "text/plain": [ " Count\n", "age_cat \n", "25 - 45 4109\n", "Greater than 45 1576\n", "Less than 25 1529" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "counts(cp, 'age_cat')" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Percentage
age_cat
25 - 4556.958691
Greater than 4521.846410
Less than 2521.194899
\n", "
" ], "text/plain": [ " Percentage\n", "age_cat \n", "25 - 45 56.958691\n", "Greater than 45 21.846410\n", "Less than 25 21.194899" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "percentages(cp, 'age_cat')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Breakdown by race" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Count
race
African-American3696
Caucasian2454
Hispanic637
Other377
Asian32
Native American18
\n", "
" ], "text/plain": [ " Count\n", "race \n", "African-American 3696\n", "Caucasian 2454\n", "Hispanic 637\n", "Other 377\n", "Asian 32\n", "Native American 18" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "counts(cp, 'race')" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Percentage
race
African-American51.233712
Caucasian34.017189
Hispanic8.830053
Other5.225950
Asian0.443582
Native American0.249515
\n", "
" ], "text/plain": [ " Percentage\n", "race \n", "African-American 51.233712\n", "Caucasian 34.017189\n", "Hispanic 8.830053\n", "Other 5.225950\n", "Asian 0.443582\n", "Native American 0.249515" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "percentages(cp, 'race')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Breakdown by sex" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Count
sex
Male5819
Female1395
\n", "
" ], "text/plain": [ " Count\n", "sex \n", "Male 5819\n", "Female 1395" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "counts(cp, 'sex')" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Percentage
sex
Male80.6626
Female19.3374
\n", "
" ], "text/plain": [ " Percentage\n", "sex \n", "Male 80.6626\n", "Female 19.3374" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "percentages(cp, 'sex')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Breakdown by recidivism" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Count
two_year_recid
03963
13251
\n", "
" ], "text/plain": [ " Count\n", "two_year_recid \n", "0 3963\n", "1 3251" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "counts(cp, 'two_year_recid')" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Percentage
two_year_recid
054.934849
145.065151
\n", "
" ], "text/plain": [ " Percentage\n", "two_year_recid \n", "0 54.934849\n", "1 45.065151" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "percentages(cp, 'two_year_recid')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Breakdown by risk category" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Count
score_text
Low3897
Medium1914
High1403
\n", "
" ], "text/plain": [ " Count\n", "score_text \n", "Low 3897\n", "Medium 1914\n", "High 1403" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "counts(cp, 'score_text')" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Percentage
score_text
Low54.019961
Medium26.531744
High19.448295
\n", "
" ], "text/plain": [ " Percentage\n", "score_text \n", "Low 54.019961\n", "Medium 26.531744\n", "High 19.448295" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "percentages(cp, 'score_text')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following function computes cross-tabulations." ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "def crosstab(df, index, columns):\n", " \"\"\"Compute a cross-tabulation.\n", " \n", " df: DataFrame\n", " index: variable(s) that will label the rows\n", " columns: variable(s) that will label the columns\n", " \n", " returns: DataFrame\n", " \"\"\"\n", "\n", " xtab = df.pivot_table(index=index, \n", " columns=columns,\n", " values='id',\n", " aggfunc='count')\n", " \n", " return xtab" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Breakdown by sex and race" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
raceAfrican-AmericanAsianCaucasianHispanicNative AmericanOther
sex
Female6522567103467
Male304430188753414310
\n", "
" ], "text/plain": [ "race African-American Asian Caucasian Hispanic Native American Other\n", "sex \n", "Female 652 2 567 103 4 67\n", "Male 3044 30 1887 534 14 310" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xtab = crosstab(cp, 'sex', 'race')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Breakdown by age and race" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
raceAfrican-AmericanAsianCaucasianHispanicNative AmericanOther
age_cat
25 - 45219414131236712210
Greater than 4558211752143385
Less than 259207390127382
\n", "
" ], "text/plain": [ "race African-American Asian Caucasian Hispanic \\\n", "age_cat \n", "25 - 45 2194 14 1312 367 \n", "Greater than 45 582 11 752 143 \n", "Less than 25 920 7 390 127 \n", "\n", "race Native American Other \n", "age_cat \n", "25 - 45 12 210 \n", "Greater than 45 3 85 \n", "Less than 25 3 82 " ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xtab = crosstab(cp, 'age_cat', 'race')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Breakdown by age and sex" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sexFemaleMale
age_cat
25 - 458073302
Greater than 453001276
Less than 252881241
\n", "
" ], "text/plain": [ "sex Female Male\n", "age_cat \n", "25 - 45 807 3302\n", "Greater than 45 300 1276\n", "Less than 25 288 1241" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xtab = crosstab(cp, 'age_cat', 'sex')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Distribution of decile scores for black defendants." ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cp.loc[cp.race=='African-American', 'decile_score'].hist()\n", "decorate(xlabel='Decile Score',\n", " ylabel='Count',\n", " title='Black defendant decile scores',\n", " ylim=[0, 700])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Distribution of decile scores for white defendants." ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cp.loc[cp.race=='Caucasian', 'decile_score'].hist()\n", "decorate(xlabel='Decile Score',\n", " ylabel='Count',\n", " title='White defendant decile scores',\n", " ylim=[0, 700])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cross tabulation of decile score and race." ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
raceAfrican-AmericanAsianCaucasianHispanicNative AmericanOther
decile_score
1398.015.0681.0196.0NaN150.0
2393.04.0361.0113.04.066.0
3346.05.0273.086.01.036.0
4385.0NaN285.052.01.046.0
5365.01.0241.052.0NaN22.0
6384.03.0194.037.02.021.0
7400.01.0143.034.04.010.0
8359.02.0114.026.01.010.0
9380.0NaN98.020.02.08.0
10286.01.064.021.03.08.0
\n", "
" ], "text/plain": [ "race African-American Asian Caucasian Hispanic Native American \\\n", "decile_score \n", "1 398.0 15.0 681.0 196.0 NaN \n", "2 393.0 4.0 361.0 113.0 4.0 \n", "3 346.0 5.0 273.0 86.0 1.0 \n", "4 385.0 NaN 285.0 52.0 1.0 \n", "5 365.0 1.0 241.0 52.0 NaN \n", "6 384.0 3.0 194.0 37.0 2.0 \n", "7 400.0 1.0 143.0 34.0 4.0 \n", "8 359.0 2.0 114.0 26.0 1.0 \n", "9 380.0 NaN 98.0 20.0 2.0 \n", "10 286.0 1.0 64.0 21.0 3.0 \n", "\n", "race Other \n", "decile_score \n", "1 150.0 \n", "2 66.0 \n", "3 36.0 \n", "4 46.0 \n", "5 22.0 \n", "6 21.0 \n", "7 10.0 \n", "8 10.0 \n", "9 8.0 \n", "10 8.0 " ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "crosstab(cp, 'decile_score', 'race')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cross tabulation of decile score and age group." ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
age_cat25 - 45Greater than 45Less than 25
decile_score
16547824
266018299
3437120190
443498237
540585191
6357104180
734077175
829857157
929254162
1023217134
\n", "
" ], "text/plain": [ "age_cat 25 - 45 Greater than 45 Less than 25\n", "decile_score \n", "1 654 782 4\n", "2 660 182 99\n", "3 437 120 190\n", "4 434 98 237\n", "5 405 85 191\n", "6 357 104 180\n", "7 340 77 175\n", "8 298 57 157\n", "9 292 54 162\n", "10 232 17 134" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "crosstab(cp, 'decile_score', 'age_cat')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's the confusion matrix with all three score categories." ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
score_textHighLowMedium
two_year_recid
04022681880
1100112161034
\n", "
" ], "text/plain": [ "score_text High Low Medium\n", "two_year_recid \n", "0 402 2681 880\n", "1 1001 1216 1034" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "crosstab(cp, 'two_year_recid', 'score_text')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To make sure I've got the data right, I'll reproduce the confusion matrices from the article." ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [], "source": [ "def compute_matrix(df):\n", " \"\"\"Compute a confusion matrix from data.\n", " \n", " df: DataFrame\n", " \n", " returns: confusion matrix\n", " \"\"\"\n", " high = cp.score_text.isin(['Medium', 'High']).astype(int)\n", " return crosstab(df, 'two_year_recid', high)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All defendants." ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
score_text01
two_year_recid
026811282
112162035
\n", "
" ], "text/plain": [ "score_text 0 1\n", "two_year_recid \n", "0 2681 1282\n", "1 1216 2035" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "compute_matrix(cp)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And the differences are 0." ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
LowHigh
Survived00
Recidivated00
\n", "
" ], "text/plain": [ " Low High\n", "Survived 0 0\n", "Recidivated 0 0" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "matrix_all - compute_matrix(cp).values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Black defendants." ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
score_text01
two_year_recid
0990805
15321369
\n", "
" ], "text/plain": [ "score_text 0 1\n", "two_year_recid \n", "0 990 805\n", "1 532 1369" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "black = cp[cp.race=='African-American']\n", "compute_matrix(black)" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
LowHigh
Survived00
Recidivated00
\n", "
" ], "text/plain": [ " Low High\n", "Survived 0 0\n", "Recidivated 0 0" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "matrix_black - compute_matrix(black).values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "White defendants." ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
score_text01
two_year_recid
01139349
1461505
\n", "
" ], "text/plain": [ "score_text 0 1\n", "two_year_recid \n", "0 1139 349\n", "1 461 505" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "white = cp[cp.race=='Caucasian']\n", "compute_matrix(white)" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
LowHigh
Survived00
Recidivated00
\n", "
" ], "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
age_catcountprevalenceactual PPVactual NPVactual FNRactual FPRexpected FPRdifference
1Greater than 45133432.90854654.94505575.36082554.44191318.3240223.2581270319166815.0658953144520
025 - 45350647.80376561.93149966.78260934.18854437.04918040.7730043881377-3.72382406026880
2Less than 25131057.40458064.66591257.61124124.06914955.91397878.8593270762673-22.9453485816437
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
racecountprevalenceactual PPVactual NPVactual FNRactual FPRexpected FPRdifference
1Caucasian245439.36430359.13348971.18750047.72256723.45430117.25447210364396.19982897162488
0African-American369651.43398362.97148165.04599227.98527144.84679753.4036054274053-8.55680877002365
\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
sexcountprevalenceactual PPVactual NPVactual FNRactual FPRexpected FPRdifference
0Female121936.58736750.98039275.68389135.87443935.57567910.884686720384524.6909924516724
1Male493149.09754664.36968066.19318234.40727035.01992045.0678340229313-10.0479137042062
\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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
age_catracecountprevalenceactual PPVactual NPVactual FNRactual FPRexpected FPRdifference
3Greater than 45Caucasian75227.79255355.55555677.32283568.8995229.57642709.57643
2Greater than 45African-American58239.51890054.65587071.64179141.30434831.81818217.626278185028614.1919036331532
125 - 45Caucasian131243.14024460.00000067.24137946.99646626.80965126.9139758955996-0.104324421068796
5Less than 25Caucasian39048.97435959.07173066.66666726.70157148.74371944.64952110386664.09419748909818
025 - 45African-American219450.59252562.68540266.37458927.65765844.09594150.3106752879841-6.21473432857449
4Less than 25African-American92060.97826166.71826652.55474523.17290659.88857997.8224228659821-37.9338434787955
\n", "
" ], "text/plain": [ " age_cat race count prevalence actual PPV \\\n", "3 Greater than 45 Caucasian 752 27.792553 55.555556 \n", "2 Greater than 45 African-American 582 39.518900 54.655870 \n", "1 25 - 45 Caucasian 1312 43.140244 60.000000 \n", "5 Less than 25 Caucasian 390 48.974359 59.071730 \n", "0 25 - 45 African-American 2194 50.592525 62.685402 \n", "4 Less than 25 African-American 920 60.978261 66.718266 \n", "\n", " actual NPV actual FNR actual FPR expected FPR difference \n", "3 77.322835 68.899522 9.576427 0 9.57643 \n", "2 71.641791 41.304348 31.818182 17.6262781850286 14.1919036331532 \n", "1 67.241379 46.996466 26.809651 26.9139758955996 -0.104324421068796 \n", "5 66.666667 26.701571 48.743719 44.6495211038666 4.09419748909818 \n", "0 66.374589 27.657658 44.095941 50.3106752879841 -6.21473432857449 \n", "4 52.554745 23.172906 59.888579 97.8224228659821 -37.9338434787955 " ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ppv, npv = predictive_value(matrix_all)\n", "group_vars = ['age_cat', 'race']\n", "table4 = make_table(subset, group_vars, ppv, npv)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Breakdown by age and sex." ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
age_catsexcountprevalenceactual PPVactual NPVactual FNRactual FPRexpected FPRdifference
2Greater than 45Female25923.55212441.07142981.28078862.29508216.666667016.6667
3Greater than 45Male107535.16279157.46753273.79400353.17460318.7948357.8287206027246410.9661144044490
025 - 45Female70440.05681855.52050572.60981937.58865233.41232218.934916074196714.4774062006848
4Less than 25Female25640.23437546.27659676.47058815.53398166.01307219.372044562613146.6410273328117
125 - 45Male280249.75017863.31967265.09716033.50071738.13920547.3182268799581-9.17902233450359
5Less than 25Male105461.57495369.64028854.03899725.42372952.098765100-47.9012
\n", "
" ], "text/plain": [ " age_cat sex count prevalence actual PPV actual NPV \\\n", "2 Greater than 45 Female 259 23.552124 41.071429 81.280788 \n", "3 Greater than 45 Male 1075 35.162791 57.467532 73.794003 \n", "0 25 - 45 Female 704 40.056818 55.520505 72.609819 \n", "4 Less than 25 Female 256 40.234375 46.276596 76.470588 \n", "1 25 - 45 Male 2802 49.750178 63.319672 65.097160 \n", "5 Less than 25 Male 1054 61.574953 69.640288 54.038997 \n", "\n", " actual FNR actual FPR expected FPR difference \n", "2 62.295082 16.666667 0 16.6667 \n", "3 53.174603 18.794835 7.82872060272464 10.9661144044490 \n", "0 37.588652 33.412322 18.9349160741967 14.4774062006848 \n", "4 15.533981 66.013072 19.3720445626131 46.6410273328117 \n", "1 33.500717 38.139205 47.3182268799581 -9.17902233450359 \n", "5 25.423729 52.098765 100 -47.9012 " ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ppv, npv = predictive_value(matrix_all)\n", "group_vars = ['age_cat', 'sex']\n", "table5 = make_table(subset, group_vars, ppv, npv)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Breakdown by race and sex." ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
racesexcountprevalenceactual PPVactual NPVactual FNRactual FPRexpected FPRdifference
2CaucasianFemale56735.09700250.44642974.92711443.21608030.1630437.6908325017500722.4722109765108
0African-AmericanFemale65237.88343651.33531276.50793729.95951440.49382713.786756726452226.7070704340416
3CaucasianMale188740.64652962.22222270.16706448.89178621.25000020.39681082998050.853189170019501
1African-AmericanMale304454.33639965.10615162.05468127.69044746.11510864.9466440776828-18.8315361640137
\n", "
" ], "text/plain": [ " race sex count prevalence actual PPV actual NPV \\\n", "2 Caucasian Female 567 35.097002 50.446429 74.927114 \n", "0 African-American Female 652 37.883436 51.335312 76.507937 \n", "3 Caucasian Male 1887 40.646529 62.222222 70.167064 \n", "1 African-American Male 3044 54.336399 65.106151 62.054681 \n", "\n", " actual FNR actual FPR expected FPR difference \n", "2 43.216080 30.163043 7.69083250175007 22.4722109765108 \n", "0 29.959514 40.493827 13.7867567264522 26.7070704340416 \n", "3 48.891786 21.250000 20.3968108299805 0.853189170019501 \n", "1 27.690447 46.115108 64.9466440776828 -18.8315361640137 " ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ppv, npv = predictive_value(matrix_all)\n", "group_vars = ['race', 'sex']\n", "table6 = make_table(subset, group_vars, ppv, npv)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Breakdown by age, race, and sex." ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
age_catracesexcountprevalenceactual PPVactual NPVactual FNRactual FPRexpected FPRdifference
4Greater than 45African-AmericanFemale8822.72727344.82758688.13559335.00000023.529412023.5294
6Greater than 45CaucasianFemale17123.97660837.03703778.47222275.60975613.076923013.0769
7Greater than 45CaucasianMale58128.91566361.11111176.98574367.2619058.47457608.47458
10Less than 25CaucasianFemale8731.03448338.23529494.7368423.70370470.000000070
025 - 45African-AmericanFemale39538.22784852.65957474.87922734.43708636.47541014.578422346108021.8969874899576
225 - 45CaucasianFemale30942.39482259.68992270.00000041.22137429.21348324.90673893741934.30674420864812
5Greater than 45African-AmericanMale49442.51012155.96330368.11594241.90476233.80281725.21380890281548.58900799859303
325 - 45CaucasianMale100343.36989060.10781766.45569648.73563226.05633827.5430043789732-1.48666635080423
8Less than 25African-AmericanFemale16944.97041450.83333369.38775519.73684263.44086032.072830419701431.3680297953524
125 - 45African-AmericanMale179953.30739364.40988163.88102026.59019846.30952460.6900439996716-14.3805201901478
11Less than 25CaucasianMale30354.12541367.45562162.68656730.48780539.56834564.0583101483587-24.4899648246177
9Less than 25African-AmericanMale75164.58055970.34220548.88888923.71134058.646617100-41.3534
\n", "
" ], "text/plain": [ " age_cat race sex count prevalence actual PPV \\\n", "4 Greater than 45 African-American Female 88 22.727273 44.827586 \n", "6 Greater than 45 Caucasian Female 171 23.976608 37.037037 \n", "7 Greater than 45 Caucasian Male 581 28.915663 61.111111 \n", "10 Less than 25 Caucasian Female 87 31.034483 38.235294 \n", "0 25 - 45 African-American Female 395 38.227848 52.659574 \n", "2 25 - 45 Caucasian Female 309 42.394822 59.689922 \n", "5 Greater than 45 African-American Male 494 42.510121 55.963303 \n", "3 25 - 45 Caucasian Male 1003 43.369890 60.107817 \n", "8 Less than 25 African-American Female 169 44.970414 50.833333 \n", "1 25 - 45 African-American Male 1799 53.307393 64.409881 \n", "11 Less than 25 Caucasian Male 303 54.125413 67.455621 \n", "9 Less than 25 African-American Male 751 64.580559 70.342205 \n", "\n", " actual NPV actual FNR actual FPR expected FPR difference \n", "4 88.135593 35.000000 23.529412 0 23.5294 \n", "6 78.472222 75.609756 13.076923 0 13.0769 \n", "7 76.985743 67.261905 8.474576 0 8.47458 \n", "10 94.736842 3.703704 70.000000 0 70 \n", "0 74.879227 34.437086 36.475410 14.5784223461080 21.8969874899576 \n", "2 70.000000 41.221374 29.213483 24.9067389374193 4.30674420864812 \n", "5 68.115942 41.904762 33.802817 25.2138089028154 8.58900799859303 \n", "3 66.455696 48.735632 26.056338 27.5430043789732 -1.48666635080423 \n", "8 69.387755 19.736842 63.440860 32.0728304197014 31.3680297953524 \n", "1 63.881020 26.590198 46.309524 60.6900439996716 -14.3805201901478 \n", "11 62.686567 30.487805 39.568345 64.0583101483587 -24.4899648246177 \n", "9 48.888889 23.711340 58.646617 100 -41.3534 " ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ppv, npv = predictive_value(matrix_all)\n", "group_vars = ['age_cat', 'race', 'sex']\n", "table7 = make_table(subset, group_vars, ppv, npv)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Those are all the possible subgroups for these three variables.\n", "\n", "Now we can see what the results look like." ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [], "source": [ "tables = [table1, table2, table3, table4, table5, table6, table7];" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following function plots one data point per subgroup showing the given metric versus prevalence.\n", "\n", "Groups with a small number of people are shown with lighter colors.\n" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [], "source": [ "def plot_table_var(table, var, color):\n", " \"\"\"Plot one data point per row.\n", " \n", " table: DataFrame\n", " var: which metric to plot\n", " color: string\n", " \"\"\"\n", " for _, row in table.iterrows():\n", " alpha = 0.8 if row['count'] > 200 else 0.3\n", "\n", " plt.plot(row['prevalence'], row[var],\n", " 'o', color=color, alpha=alpha)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's what the results look like for FPR." ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xd4VGX2wPHvIZTQQUBFUKnSizRBVlCKDUSaIqLCiqIrrq6rrLg/XcvqrgquWNAVREcUqdJVlo4iKk1EEJEiCEgXAgFCQnJ+f9ybMAkpkzK5U87nefJM7jt37j1zGebkLfd9RVUxxhhjQk0RrwMwxhhjMmMJyhhjTEiyBGWMMSYkWYIyxhgTkixBGWOMCUmWoIwxxoQkS1AmX0TkIxF5xus4ciIiA0Xk82yev1pENhZmTIXN638rESkqIioiNbyKwYQXS1AGABHZISKnRCTe7+cir+MqKKr6gareAJl/UarqUlVt5FV8qexL3JizLEEZfzepahm/n9+8DijSiEhRr2OIBCJSRETs+yvC2T+wyZb7RTBNRPaJyFERWSoiDbLY93wR+czd73cR+cLvueoiMkNEDorILyIyNJtzfiQio0VkkYgcF5ElInKx3/N/EJHVIhInIitF5Aq/5wa7tcHjIrJdRG5zy+8RkaXubqlxbXRrin1EpIuI7HD3fVJEJmWIabSI/Mf9vYKIvC8ie0Vkt4g8l9WXpYg8LyKTRWSiiBwH7hCRdiLyjXud9orI6yJSLKvY3OP0EJHv3dcsF5HGfuf4u4j8JiLHROQnEbk6q2sLVMnsuorIOyLyUobYPxeRBzN5T0XcmA+4/wbrRaSh+9xyERnkt6//dU91k/sZOCQiL6ZeOxGJEZFRInLY/bf7s4io37GWi8g/ReRr4ARwifu5mut+3raIyN1++6dr0vT/N3a3d4vI4yKySUSOiMg4ESmRzbUzhU1V7cd+AHYAXTIpLwIMAsoCscCbwGq/5z8CnnF/H+E+XwwoDnR0y2OAdcDf3fI67vk6ZxHLR0Ac0B4oAYwGlrrPVXaf6w8UBe4ADgMVgXLuc3XdfasCDd3f7/E7RlFAgRp+5+wC7HB/rwXEA6X99j8AtHK35wJvAaWAC4E1wOAs3svzQCJwk3stSwKtgSvc49YCfgYezCa21sB+9zEGuBvY5l7LRsBO4EJ335pArTxc1yuBXUARd/sC4CRQOZPjdANWAuXd99TQ7/zLgUF++2Z23Re6/141gK2p+wMPAhuAasB5wBJA/Y613P3cNMD5jBUFvgLewPlstgAOcfZzl/bZzPhv7G7vBtYD1XE+V9/4728/3v9YDcr4m+n+hX5URGYCqGqKqvpU9biqJgDPAC1FpHQmr08CLgIuUdVEVV3mlrcFyqnqv9zyrcA44LZsYpmjql+p6mmcxNZBRKrifNFvVNWJqnpGVT8CtuN8aYLzBdhYRGJVda+q/pjbi6Cq23G+KG92i7oCR1V1tYhUAzoDj6jqSVXdB4zK4b0sV9U57rU8paqrVPVbN/7twBigYzavHwK85b4uWVXfc8tbA2dwvpwbiUhRVf3FPWZWMr2uqroCOOUXR39goaoeyuQYSTh/DNQHUNUf3esQqBdV9Yiq7gBed88FcCvwqqruUdXfgZcyee17qrpJVZOAi4E2wHBVTVDVtcD7wJ25iOV1Vd3tvs9/+cViQoAlKOOvp6pWcH96Qlqzy8tuk8sxnL94wfmLM6MXcf6aXyQi20RkmFt+KU5zTGryOwr8Daf2kZVdqb+oahzOX/4XuT87M+y7E6imqsdwvmCGAvvcpp/LcvH+/X3M2S+r24EJfu+lBLDf772Mxqlx5PheAESkvoh8Kk6z6THgOTK/nqkuBR7PcP2q4rznzcCj7jEOuE2JebmuAONxaqS4jx9mdgBVnQ/8F3gb5zr8V0TKZnPOLGPA+bdLPf9FGZ5Ld90yKbsIOKSqJzIcr1oBxGJCgCUok5O7gBuBTjhNOnXccsm4o6oeU9VHVLUG0BPnS7UjzpfAFr/kV0FVy6rqTdmc17/Pqbx77t/cn0sz7HsJsMeN4XNV7YLzBb4VeCeTYwcyhf9koIuIVMepSX3slu/Cafo6z++9lFPVptkcK+P53sGpodVR1XLAPzh7PTOLbRfwbIbrV0pVpwCo6keq2h6neS8G+Hc2sWR1XcFJSL1F5HKgNjAnyzekOkpVWwCNcZr4/uo+dQKn6TNVZsnyYr/fL/E7/16c5rbM9ks7td/vvwGVM9Tm0z4L+YzFhABLUCYnZYHTOP08pYAXstpRRG4SkdoiIjh/mSe7P18DiSLyqIjEurWyJiLSMpvz3uQOJiiB04+zXFX34vT/NBKRfuIMyb4dJ2l+JiJV3RhK4fT7nHDPn46qJrvvp1ZWJ1fV/Th9Hu8Dm1V1i1u+C1gGjBSRcu6AgToi0iGb95JRWff6nBBnwMl9OcQ2BhgqIq3FUcZ9n6VFpIGIXONep1Puzznv2U9W1xVV3YnTV/gBMNVt0j2HiLRxf4riXONEv3OuA/qISEm39np3Jof4mzgDTS4BHsL5YwBgCvAXEblIRCoCwzJ5bRpV/QVYDfxLREqISHPgj5yt7a4DuolIRbd5+KFMDvOgiFQTkUrAE36xmBBgCcrk5H3O1lw2Aiuy2bcesBhngMFXwGuqulxVz+DUwtrgdHIfwqlFlMvmWB/hfIEeApri9iuo6kGgB/A4zhf5I0B3t88iBudLba/73JU4He+ZeRr42G0y653FPh/jdKx/nKH8DqA08CNwBJhK9s2VGT0KDASO41yHjF+K6WJT1W+BP+E0qR3BGVSR2hRXAngZ5zrtwxl88GQ25870uvr5AGhCFs17rgo4fYhHcf499wKvus+NxKnlHADec8+X0Ryc5PEdMAPwueVvA0uBH3AGnnyKk/yy0w+oi/PepwF/V9Ul7nM+YBNO0908YFImr5+IM2hjG7AZpx/KhAhRtQULTWgRkY+Arar6jNexRBsR6YSTfGqpx18OInITMEpVawfp+LuBO1R1aTCOb/LPalDGGABEpDjwMDDWi+TkNlle7zYBV8fpm5tR2HGY0GEJyhiDiDTBaT48D2fotydh4PRxxuE08a0HnvUoFhMCrInPGGNMSLIalDHGmJAUFhNXVq5cWWvUqOF1GMYYYwrAmjVrDqlqlZz2C4sEVaNGDVavXu11GMYYYwqAiGScDSZT1sRnjDEmJFmCMsYYE5IsQRljjAlJlqCMMcaEJEtQxhhjQpIlKGOMMSHJEpQxxpiQFBYJ6vDhw6xbtw6A5ORkfD4f69evByApKQmfz8eGDRsASEhIwOfzsWnTJgBOnjyJz+dj8+bNAMTHx+Pz+di61VkYNi4uDp/Px/btzirZR44cwefzsWPHDgAOHTqEz+dj1y5n4c0DBw7g8/nYs8dZE23fvn34fD727XNWvN6zZw8+n48DBw4AsGvXLnw+H4cOOStn79ixA5/Px5EjRwDYvn07Pp+PuLg4ALZu3YrP5yM+Ph6AzZs34/P5OHnyJACbNm3C5/ORkOAs1bNhwwZ8Ph9JSUkArF+/Hp/PR3KyszzPunXr8Pl8addyzZo1jB8/Pm171apVTJgwIW37m2++YeLEiWnbK1asYMqUKWnby5cvZ9q0aWnby5YtY/r06WnbS5YsYdasWWnbCxcuZM6cs+vezZ8/n08//TRte968ecybNy9t+9NPP2X+/Plp23PmzGHhwoVp27NmzWLJkiVp29OnT2fZsmVp29OmTWP58uVp21OmTGHFirMrhEycOJFvvvkmbXvChAmsWrUqbXv8+PGsWbMmbdvn89lnzz57gAefvbdfZd2SmUDkffYCFRYJyhhjokr8ATj0M6yfAlE8X2pYTBbbqlUrtZkkjDFRQRUmDYCtC+G+L+D8+l5HVOBEZI2qtsppP6tBGWNMKFn3MWz+FDr/IyKTU25YgjLGmFBxdBfMGw6Xtoe2D3gdjecsQRljTChISYFZD4CmQM+3oIh9PYfFbObGGBPxVo6BX76Am16HijW8jiYkWIo2xhivHfwZFj4Nda+DFnd5HU3IsARljDFeSj4DM++HYiWhx+sg4nVEIcOa+IwxxkvLX4U9a6Dv+1D2Qq+jCSlWgzLGGK/8tg6WvQiN+0Lj3l5HE3IsQRljjBeSEmDG/VCqMtw4wutoQpI18RljjBcWPQsHN8GAaVDqPK+jCUlWgzLGmMK2ZSF88xa0GQJ1u3odTciyBGWMMYUp/iDM/BOc3xC6Pud1NCHNmviMMaawqDqzRSTEwV2znKHlJkuWoIwxprCsHANb5sMNI+CChl5HE/Ksic8YYwrD/o0w/ylntog293odTViwBGWMMcGWdAqmDYbY8nDzaJstIkDWxGeMMcE2/ylnSPkdn0CZKl5HEzasBmWMMcG0eR6sGgtth0KdLl5HE1YsQRljTLAc3+eM2rugCXR52utowo4lKGOMCYaUFGcqo8ST0HccFC3hdURhx/qgjDEmGJb/B7Yvge6joEo9r6MJS1aDMsaYgrbjK1jygjNLectBXkcTtoKaoETkERHZKCIbRGSiiMSKSE0R+VZEtojIZBEpHswYjDGmUMUfhE8GQ8WacNMoG1KeD0FLUCJSDXgIaKWqjYEY4DbgJeBVVa0LHAEGBysGY4wpVCkpMGMInPwdbv0ASpT1OqKwFuwmvqJASREpCpQC9gKdgGnu8x8APYMcgzHGFI7l/4Fti+GGl+DCJl5HE/aClqBUdQ8wEvgVJzHFAWuAo6p6xt1tN1Ats9eLyBARWS0iqw8ePBisMI0xpmBYv1OBC2YTX0XgZqAmcBFQGrghk101s9er6hhVbaWqrapUsTuvjTEhzPqdgiKYTXxdgF9U9aCqJgHTgSuBCm6TH0B14LcgxmCMMcFl/U5BE8wE9SvQVkRKiYgAnYEfgSVAX3efgcCsIMZgjDHBZf1OQRPMPqhvcQZDrAV+cM81Bngc+KuIbAUqAeOCFYMxxgTVjuXW7xREQZ1JQlWfBjJOQLUdaBPM8xpjTNAd+w2mDoLzalm/U5DYVEfGGJNbZxKd5JR4EgbOsX6nILEEZYwxuTX//2DXt9D3fTi/gdfRRCybi88YY3Lj+8mwcgy0exAa9/Y6mohmCcoYYwK17weY8zBc2h66PON1NBHPEpQxxgTi1BGYfAeUrAC3+CCmmNcRRTzrgzLGmJykLj4YtwcGfQplzvc6oqhgCcoYY3Ly5Uj4eR7cOBIuucLraKKGNfEZY0x2tiyAJf+Cpv2g9T1eRxNVLEEZY0xWft8On9wDFzRylm63m3ELlSUoY4zJTMIxmNjfSUr9PoTipbyOKOpYH5QxxmSUkgLTh8ChLXDnDGc6I1PoLEEZY0xGS16Anz+HG16GWh29jiZqWROfMcb42/CJM2qvxV3QZojX0UQ1q0FFk7g9sGctnDwEpSpDtRZQvprXURkTOn5bBzOHwsVt4cZXbFCEx6wGFS3i9sDmz+DMSecmwzMnne24PV5HZkxoiD8AkwZAqUrOoIiixb2OKOpZgooWe9ZCbDkoUQ6kiPMYW84pNybanUmEyXfCycNw2wSbKSJEWIKKFicPQfEy6cuKl3HKjYlmqvDZo7DrG+g5Gi5q7nVExmUJKlqUqgyJ8enLEuOdcmOi2coxsHY8XPUoNO7jdTTGjyWoaFGthXPj4eljoCnOY8Ixp9yYaPXzfJg3HOrdCNc86XU0JgNLUNGifDXnP2HRUk5ncNFSzraN4jPRat8GmPZHuKAx9B4LRezrMNTYMPNoUr6aJSRjAI7vg4/7OYOFbp8MJcrk/BpT6CxBGWOiS+JJmHibswDh3Z9DuYu8jshkwRKUMZn5eQGseA2O7oQKl8KVD8NlXb2OyuRXSgrMGOLckNt/IlRt5nVEJhvW6GpMRj8vgM8fg+P7Ibai8/j5Y065CW+LnoFNc+C6f0G9G7yOxuTAEpQxGa14DYoUd5ZXEHEeixR3yk34WvMBfPUatBoMbf/kdTQmAJagjMno6E4oVjJ9WbGScPRXb+Ix+bd9KXz6V6jd2Zmh3ObYCwuWoIzJqMKlkHQqfVnSKahwiTfxmPw5sAkm3wWVL4NbfBBjXe/hwhKUMRld+TCkJDqjvVSdx5REp9yEl2O/wUd9oVisM5w8tpzXEZlcsD8ljMnosq7ASHcU369OzSlURvHZkimBS4hzklPCUfjj51YDDkOWoIzJzGVdQyMh+UtdMiW2nDPbdmK8s20zgpzrTCJMvgMObYYBU6FqU68jMnlgTXzGhAtbMiUwKSkw6wH45Qu4eTTU7uR1RCaPLEEZEy5syZTALHoGfpgKnf8BzW7zOhqTD5agjAkXtmRKzr595+y9Tn/4q9fRmHyyBGVMuLAlU7L34yz4/HGo3x1uHGH3OkUAS1DGhAtbMiVrO7+GT+6F6q2hz7tQJMbriEwBCOooPhGpALwLNAYUuBvYDEwGagA7gFtV9Ugw4zAmYtiSKefatwEm9oMKF0P/SefOAmLCVrBrUK8B81S1PtAM2AQMBxapal1gkbttjDG59/t2+Kg3FCsNd86A0pW8jqhw/LwAfN1hVBPnMUInMg5aghKRckAHYByAqiaq6lHgZuADd7cPgJ7BisEYE8GO74MPe0FyopOcouVG3CiabT+YNahawEHgfRH5TkTeFZHSwAWquhfAfTw/sxeLyBARWS0iqw8ePBjEMI0xYefUEfiwN8QfhAGfwPn1vY6o8Hg1274HtbZgJqiiQAvgbVW9HDhBLprzVHWMqrZS1VZVqlQJVozGmHCTeMJZrv3wFrhtAlRv6XVEhcuL2fY9qrUFM0HtBnar6rfu9jSchLVfRKoCuI8HghiDMSaSnEmEKXfB7lXOaL3a13gdUeHzYrZ9j2ptQUtQqroP2CUi9dyizsCPwGxgoFs2EJgVrBiMMREkJQVm/gm2LoTuo6DhzV5H5A0vZtv3aI20YE8W+2dggogUB7YDf8RJilNEZDDwK3BLkGMwxoQ7Vfh8GGyYBl2ehZYDc35NpPJitv0KlzrNesVLnS0rhDXSgpqgVHUd0CqTpzoH87zGmAiz+J+w6l248iH4w1+8jsZ7hT3b/pUPO31OiTg1p6RThbJGms0kYYwJbV+MgC9fgZaDoOtzXkdzrmi4J+myrnDDSCh7gbO+VtkLnO0gJ0lbD8oYE7pWvAmLn4emt0G3V0Nvfr3U0W1Fiqcf3Ubwv7wLnQdrpFkNyhgTmlaOhfn/Bw17Ous6FQnBryuv7kmKEiH4L26MiXrfTYDPHoPLboDeYyEmRBt7PBrdFi0sQRljQssP02D2g1DrGrjFB0WLex1R1ry4JymKWIIyxoSOTXNh+hC4pB3c9jEUi/U6oux5cU9SFLEEZYwJDVsWwrQ/wkWXw+2T099zE6o8Gt0WLQJq2BWRRaraOacyY4zJk62LYPIAqFIP7pgGJcp6HVHgPBjdFi2yTVAiEguUAiqLSEUgdYxnOeCiIMdmjIkGWxfBpNuhUh24cxaUrOh1RCZE5FSDug/4C04yWsPZBHUMGB3EuIwx0WDb4rPJ6a7Z0bPgYDD8vMCd/minM3gj2NMfFYJs+6BU9TVVrQk8pqq1VLWm+9NMVd8spBiNMZFo22KY2N+SU0GI0EUMA+qDUtU3RORKoIb/a1R1fJDiMsZEsm1LLDkVJP8bhsF5THTLw7gWFeggiQ+B2sA6INktVsASlDEmd7YtgYm3wXm1LTkVlKM7nZqTvwi4YTjQ27NbAQ1VVYMZjDEmwvknp4FzLDkVFI+Wwwi2QO+D2gBcGMxAjDERbttiS07BEqE3DAdag6oM/CgiK4HTqYWq2iMoURljIsvmeTDlTqh8mTXrBYMXixgWgkAT1DPBDMIYE0ZyO5x540z4ZDBc2ATumA6lziu8WKNJBN4wHFATn6ouA3YAxdzfVwFrgxiXMSYU5XY48/eTnemLqrWEu2ZZcjK5ElCCEpF7gWnAO25RNWBmsIIyxoSo3Kx/tOYDmHEfXNreqTnFli/8eE1YC3SQxFCgPc4MEqjqFuD8YAVljAlRga5/9O0YmPMQ1OkMA6ZCiTKFF6OJGIEmqNOqmpi6ISJFce6DMsZEk0DWP/rqNfh8GNTr5i6ZkSGhGROgQBPUMhH5O1BSRLoCU4E5wQvLGBOSshvOrApLX4QF/4BGveHWD6BoieDG8/MC8HWHUU2cxzCf2sekF2iCGg4cBH7AmUD2M+DJYAVljAlRWa1/VKcz/O/vsPTf0Ox26PMuxBQLbiyBDNiwBBbWJJDJIUSkNJCgqsnudgxQQlVPBjk+AFq1aqWrV68ujFMZY3Ir+QzM/jN8/zFccT9c928oUghrofq6nzt7QuJJJ2kOmns2gRUp7jQzJp1yanu2oKDnRGSNqrbKab9AP0WLAP+G5JLAwrwEZoyJIEkJMOUuJzld/Xe4/sXCSU6Q84CN3Iw4NCEp0Bt1Y1U1PnVDVeNFJAzWYzbGBM3p486M5Du+hBtGwBVD8nacvK5jlNP8cxE6gWo0CfRPnRMi0iJ1Q0RaAqey2d8YE8lOHIYPboKdK6D32JyTU1Z9QflZxyin+ecCGXFoQlqgCephYKqIfCkiXwKTgQeDF5YxJmTF7Yb3r4cDm+C2CdD01uz3zy4J5acZLqsBG6m1rwidQDWa5NjEJyJFgOJAfaAezrLvP6lqUpBjM8aEmkNb4cOekBDnzA5Ro33Or8luMb38NsNlN/9chE6gGk1yTFCqmiIir6hqO5xlN4wx0Wj3avj4VkCc5TIuah7Y67JLQsFexygCJ1CNJoE28c0XkT4iIkGNxhgTmn7+n9PnVKIsDJ4feHKC7PuCrBnOZCPQBPVXnNkjEkXkmIgcF5FjQYzLGBMq1n7ojNarXBcGL4BKtXP3+uySUE79SCaqBTTMXFXLBjsQY0yIUYUvRsKS56F2J7h1vFODyq2c+oKsGc5kIaAE5TbtDQBqquo/ReRioKqqrgxqdMYYb6Qkw2ePwer3oOlt0OMNKFo878ezJGTyINAmvreAdsDt7nY8MDooERmTVzbvWsFIOuXMDrH6PWj/F+j13/wlJ2PyKNAEdYWqDgUSAFT1CM7Q8xyJSIyIfCcic93tmiLyrYhsEZHJImKffJN/+bnh05x18nf4sBf89Clc/xJ0fda5P8kYDwSaoJLcCWIVQESqACkBvvZhYJPf9kvAq6paFzgCDA7wOMZkzeZdy7/D2+DdLrBnLfR9D9re73VEeWe16YgQaIJ6HZgBnC8iLwDLgX/l9CIRqQ50A951twXohLN8PMAHQM9cxmzMuQJd6dVk7tdvYVxXOHUEBs6Gxr29jijvrDYdMQIdxTdBRNYAnXFmkuipqptyeBnAKOBvQOrQn0rAUVU9427vBqpl9kIRGQIMAbjkEps7y+Qg2Dd8RrIN02HG/VC+urM8e26HkYea7GausIEaYSXbGpSIxIrIX0TkTaAj8I6qvhlIchKR7sABVV3jX5zJrpkuSKWqY1S1laq2qlKlSk6nM9HObvjMPVVY/ipM+yNUawH3LMxfcgqVZjWrTUeMnJr4PgBa4aykewMwMhfHbg/0EJEdwCScpr1RQAURSa25VQd+y03AxmTKbvjMneQkmPMwLHwGGveFO2dCqfPyfrxQalazWcwjRk5NfA1VtQmAiIwDAr7vSVWfAJ5wX3s18JiqDhCRqUBfnKQ1EJiVh7iNOZfdaxOYhGMwdSBsWwxXPQbX/F/+FxkMpWa1Kx92kmMi6VfStdp02MnpU5k2Y7lfv1F+PQ78VUS24vRJjSug4xpjcnJkJ7x3HfzyBfR4Ezo/dTY55aeJLpSa1aw2HTFyqkE185tzT4CS7rYAqqrlAjmJqi4Flrq/bwfa5ClaYwKR1xVaI93Or2HyAEg5A3d8ArWuPvtcahNdkeLpm+gI8Is91AapWG06ImRbg1LVGFUt5/6UVdWifr8HlJyMKVSh1BcSSr6b4MxGXrIi3LM4fXKC/N9HZoNUTBDks+HZmCDLbbOT3bCbXkoyzH8KZj3gLC54z0KoXOfc/fLbRGfNaiYIAroPyhhP5KXZKb8rtEaS08fhk3vg53nQ+l64/t8QUyzzfXPbRJdVM6olJFOArAZlQldeakM2xNhxZCeMuxa2LIAbR0K3kVknJ8hdE501o5pCYgnKhK68NDtZXwjs+ArGdoJje5zBEG3uzfk1uWmis2ZUU0isic+ErryMDMtpcbzCVpgjClVh1bswbzhUrAH9Jzmr4AYq0CY6a0Y1hcQSlAldeb3hMj99IQWZUPI7dDs3zpyGTx+F7z6EutdBn7EQW75gz5Eq1IaUm4hlTXwmdBX2yLCC7lsprKawY3vB181JTlc95tScgpWcwJpRTaGxGpQJbYU5Mqygp+spjKawXatg8h3OiL1bPoBGhbB6Tag1o5qIZQnKRDf/Jr3j+6HcRemfz09CCXZT2NoP4dO/QtmqcOd0uKBRwRw3EDak3BQCa+Iz0Stjk54UgbhdcPrY2X3yk1CC1RR2JtHpb5r9IFzaHoYsLdzkZEwhsQRlolfGPqKyFzrlx/YWTEIJRh9a3B7w3eiM1rvyzzBgWv6WyTAmhFkTn4leGfuIYss7y2fG/+YklILoWynIprBfvoCpf4QzCYXX32SMhyxBmcIVSjONZ9ZHFFMMqreBQXO9iSkzqvDVa7DoWahUF/p9BFUu8zoqY4LOmvhM4Qm1KXLCYbh0QpwzSm/h09CgB9y7yJKTiRqWoEzhCbUpcoJ9n1V+FgAE2P8jjLkGNn8O1/0LbvFBibIFE5sxYcCa+EzhCcUpcoI1XDq/s0h8Pxnm/sVJSIPmwqVXFnyMxoQ4q0GZwhNNM43ntbaYdApm/xlmDIGLLof7vrDkZKKWJShTeMKhz6eg5GUm9kNbYGxnWDsernoU7pp9dui7MVHIEpQpPNG06mpua4s/TIMxV8PxvTDgE+j8D4ixFngT3ex/gClc0TJFTnYzsfsPtS9/MRQrBVsXwMVtoe97UL6a19EbExIsQRkTDFlNqApnB08UKwW7V0PyaWhwM/Qdl/2qt8ZEGUtQxgRLZrVFX3cnOSWfhsM7nTKJgV+Wwral0VG7NCZA1gdlTGE6sgNOHHSa9xCIKQ5FikHiCW9vWjYmBFmCMqYd2Da9AAAax0lEQVSw/LbOSU4JR5zEFFMcisQACkVjvb1p2ZgQZAnKmGBTha9Hw7tdoGgpKHMhaAogkJICKJQ53/ublo0JMZagjAmm+IPw8a3wv79D3WvhoTXQ400oXhr0jDMoonx1KFEucm9aNiaPIn+QRNwe2LMWTh6CUpWhWgsbxmsKx7YlMOM+OHUUbhwJre9xZpW4rCv0Huc3mq9kZN+0bEweRXYNKm4PbP4Mzpx0mlDOnHS24/Z4HZkJBfmdzDUrSQkw7wn4sCfEVnBmIG9zr5OcUkXTTcvG5FFk16D2rIXYck7zCZx93LPWalHRLr+TuWZl/0b45F44sBFa3wtdn0u/3pS/aLlp2Zg8iuwa1MlDULxM+rLiZZxyE90KeumPlBRnIMSYq52RerdPhW4js05OxpgcRXYNqlRlSIw/W3MCZ7tUZe9iMqGhIJf+OPYbzPwTbF8Kl90APd6AMlUKJExjollkJ6hqLZw+J3BqTonxkHAM6v3B27iM9zJb7j2rUXTZLVP/4yyY8zCcOQ3dR0HLQen7mowxeRbZTXzlq0G9G517T+IPOI/1brT+JxP40h9ZLVO/cQZMvw+m3AUVa8B9X0KrP1pyMqYARXYNCpxkZAnJZJTVZK4ZBy3491WB83jiBEwfAinJ0PFx6DDMJnk1JgiClqBE5GJgPHAhkAKMUdXXROQ8YDJQA9gB3KqqR4IVhzFZCmQUnX9flaY4/U0nD0GRonDPAqjWMvhxGhOlgtnEdwZ4VFUbAG2BoSLSEBgOLFLVusAid9uY0JS68GDiCTj4k5OcYivAxVdYcjImyIKWoFR1r6qudX8/DmwCqgE3Ax+4u30A9AxWDMbkW9sHIH4fHN7i9FWVrw4lK0D7R7yOzJiIVyh9UCJSA7gc+Ba4QFX3gpPEROT8LF4zBBgCcMklNj9ZRMluVFwo2bMWFj0Hp485E7zGFHMGRIRqvMZEmKAnKBEpA3wC/EVVj0mAo5xUdQwwBqBVq1YavAhNQAoqqQRrBoeClJQAy16Er16HMhc4N91edq3XURkTdYI6zFxEiuEkpwmqOt0t3i8iVd3nqwIHghmDKQBZDbXOy9x1BT2DQ0HbvRre6QDLX4Xm/eGBry05GeORoCUocapK44BNqvofv6dmAwPd3wcCs4IVgykgBZlUju50ZmzwFwrrICWdgvlPwbiuzg3dd3wCN492+puMMZ4IZhNfe+BO4AcRWeeW/R14EZgiIoOBX4FbghiDKQgFOS1QbmZwKCy7VsLMB5yBEC0HQdd/OpMMG2M8FbQEparLgaw6nDoH67wBC5eO+lBQkEnlyoed5sFEnCSXdMq7dZBOx8Pi5+Hb/0L5i+HOmVD7msKPwxiTqcie6igrBdmnEg0CnRYoEKGyDtKWhfBWWyc5tR4MD6yw5GRMiIn8qY4yk9n0NYluudWizhXotEC5OZ5X1/nEYfjfE7B+MlS+DO6eB5e09SYWY0y2ojNBFWSfSrQI98X1VOGHaTDvcWdG+46Pw1WPQtESXkdmjMlCdCaoUOyoN8Fz9FeY+1fYugCqtXLWa7qgoddRGWNyEJ19UAXZp2JCV/IZWPEGjG4LO7+C61+EwfMtORkTJqKzBlXQfSom9OxeA3Mfhn0/QN3r4MYRUPFSr6MyxuRCdCYoOLdPJW4P/DjHma26VGVnNV5bRyr8JMTBon/Cqneh7IVw63ho0MMWEjQmDEVvgvIXt8dZGj62HJQ535lJYPNntvpuOFGFH2fC58Mhfj+0GQKdngz7G26TkpLYvXs3CQkJXodiTK7FxsZSvXp1ihXL24KelqDAmbU6thyUcL/MUh/3rLUEFQ6O7IDPhsGW+VC1GfSf6NSAI8Du3bspW7YsNWrUINCJlo0JBarK4cOH2b17NzVr1szTMSxBgdOsVybDqh/Fy0C8zWMb0pIS4KvXYPl/QGLgun87NaeYyPlYJyQkWHIyYUlEqFSpEgcPHszzMSLnf3J+lKrsNOuV8GsOSox3yk1o2rIQPh8Gv2+HRr3g2hcitrZrycmEq/x+di1BgdMctPkz5/fiZZzklHAM6v3B27jMuY7ucmaC2DQHKtWBO2dA7U5eR2WMCYLovA8qo/LVnAERRUs5zXpFS9kAiVBzJhG+/A+MbuPUnjo9BX9aYcmpEMTExNC8efO0nxdffDHo5zx69ChvvfVWrl/3zDPPMHLkyEzLq1WrlvYehg8fDsDVV19NvXr1aNasGe3bt2fz5s3nlLdu3Zp169adc8zCNHPmTH788cc8v37Hjh18/PHHWT7/888/c+ONN1KnTh0aNGjArbfeyv79+1m6dCnly5fn8ssvp0GDBjz77LOcOHGCSpUqERcXl+4YPXv2ZMqUKXmOMVOqGvI/LVu2VBPFtixUfaOV6tPlVCfervr7Dq8jKjQ//vij1yFo6dKlC/2cv/zyizZq1CjXr3v66ad1xIgRAZd37NhRV61apaqq77zzjt50003nlL/33nvapUuXXMdSkAYOHKhTp07N8+uXLFmi3bp1y/S5U6dOaZ06dXT27NlpZYsXL9Yffvgh3evi4+O1Tp06unr1ar3tttvU5/Ol7X/06FGtVKmSnjhx4pzjZ/YZBlZrAN/91sQXCmzpj8z9/gv87/9g86dQsSbcPgUuu87rqLzz+XDnxuOCdGETuCH3NaK4uDjatGnD7NmzqVevHv3796dTp07ce++9lClThvvuu48lS5ZQsWJFJk2aRJUqVdi2bRtDhw7l4MGDlCpVirFjx1K/fn3279/P/fffz/bt2wF4++23ef3119m2bRvNmzena9eujBgxghEjRjBlyhROnz5Nr169ePbZZwF44YUXGD9+PBdffDFVqlShZcuWeboUHTp0YNSoUeeUt2vXjhEjRuT4+q1bt3L//fdz8OBBYmJimDp1KrVq1eJvf/sbn3/+OSLCk08+Sb9+/Vi6dCnPPPMMlStXZsOGDbRs2ZKPPvoIEWH48OHMnj2bokWLcu2119K7d29mz57NsmXLeP755/nkk09YvHgxY8aMITExkTp16vDhhx9SqlQpBg0aRLly5Vi9ejX79u3j5Zdfpm/fvgwfPpxNmzbRvHlzBg4cyCOPPJIW98cff0y7du246aab0squucaZ2X/p0qVpZaVLl6Zly5Zs27aN/v378/bbbzNwoLP27IwZM7j++uspVcpv+rgCYAnKa6lLfxQpnn7pDzxYgiJUJJ5wllz/6nUoUhQ6Pw3thtrErh45deoUzZs3T9t+4okn6NevH2+++SaDBg3i4Ycf5siRI9x7770AnDhxghYtWvDKK6/w3HPP8eyzz/Lmm28yZMgQ/vvf/1K3bl2+/fZbHnjgARYvXsxDDz1Ex44dmTFjBsnJycTHx/Piiy+yYcOGtKa1+fPns2XLFlauXImq0qNHD7744gtKly7NpEmT+O677zhz5gwtWrTIMkG9+uqrfPTRRwC89NJLXHdd+j925syZQ5MmTc553bx58+jZs2eO12nAgAEMHz6cXr16kZCQQEpKCtOnT2fdunV8//33HDp0iNatW9OhQwcAvvvuOzZu3MhFF11E+/bt+eqrr2jYsCEzZszgp59+QkQ4evQoFSpUoEePHnTv3p2+ffsCUKFChbTr/eSTTzJu3Dj+/Oc/A7B3716WL1/OTz/9RI8ePejbty8vvvgiI0eOZO7cuefEnZogc3L48GG++eYbnnrqKerWrcs999zD4cOHqVSpEpMmTUo7f0GyBOU1W/rjLFXYOMNZev3YbmhyC3R9Dspd5HVkoSEPNZ2CULJkyUz7YLp27crUqVMZOnQo33//fVp5kSJF6NevHwB33HEHvXv3Jj4+nhUrVnDLLWcX0D59+jQAixcvZvz48YDT31W+fHmOHDmS7lzz589n/vz5XH755QDEx8ezZcsWjh8/Tq9evdL+cu/Ro0eW7+ORRx7hscceO6d8wIABlCxZkho1avDGG2+kKz9x4gTJycmsXbs222t0/Phx9uzZQ69evQDnBlWA5cuX079/f2JiYrjgggvo2LEjq1atoly5crRp04bq1asD0Lx5c3bs2EHbtm2JjY3lnnvuoVu3bnTv3j3T823YsIEnn3ySo0ePEh8fny7Z9uzZkyJFitCwYUP279+fbdyB+PLLL7n88sspUqQIw4cPp1GjRoBzradNm0afPn1Yt24d1157bb7PlZElKK8FuvRHpDcD7tsA84bDji+dZqc+78Kl7byOymQjJSWFTZs2UbJkSX7//fe0L9uMRISUlBQqVKiQ58EGqsoTTzzBfffdl6581KhR+R7KPGHCBFq1apVpebNmzRg+fDhDhw5l+vTp2caXm3KAEiXOtgjExMRw5swZihYtysqVK1m0aBGTJk3izTffZPHixee8dtCgQcycOZNmzZrh8/nSNcX5Hze786dq1KgRy5Yty/L5q666KtOaV//+/Xn++edRVW6++eY8zxaRHRvF57UKlzpLffjLuPRHJK8A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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fp_rates.plot(label='Expected FPR, constant CPV',\n", " color='C1')\n", "plt.axhline(fpr, linestyle='dotted', \n", " label='Expected FPR, constant FPR', color='gray')\n", "\n", "for table in tables:\n", " plot_table_var(table, 'actual FPR', 'C1')\n", " \n", "decorate(xlabel='Prevalence',\n", " ylabel='Percent',\n", " title='False positive rates by subgroup')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In general, groups with higher prevalence have higher false positive rates, but the effect is less extreme than what we would expect from the CPV model.\n", "\n", "Here are the results for positive predictive value." ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ppv_rates.plot(label='Expected PPV, constant FPR', color='C0')\n", "plt.axhline(ppv, linestyle='dotted', \n", " label='Expected PPV, constant PPV', color='gray')\n", "\n", "for table in tables:\n", " plot_table_var(table, 'actual PPV', 'C0')\n", " \n", "decorate(xlabel='Prevalence',\n", " ylabel='Rate',\n", " title='Positive predictive value by subgroup')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Groups with higher prevalence have higher PPV, but the effect is less extreme than we would expect from the CPV model.\n", "\n", "Here are the results for false negative rate." ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "image/png": "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JyEhofC4pKQkhg8fDsA333xDw4YN6dOnD926dePhhx8+vxdTTc63TIpKTEzkwIHSFwl+7rnn6NatG7GxscTFxTF58mTAU04xMTHExcVx0UUXsWXLFh5//HEee+yxYuevXr2a7t2rYwHtH1mCMoVEhGG3xHDqZBbLPi1tlXBTn4SGhrJ69erCn4IPd2+qjg/jsz344IOFr6Fokj1y5Aiff/55iecMGTKEVatWsWrVKj777DO+//77ao2pMrydoF5//XW++uorli1bxvr161m0aBFFJxKfMmUKa9asYfz48UycOJFbbrmF999/v9g1pk2bxq233lqlGM9mCcoU06pjQ2KHtmHtgr0c2Z3m63CMH0pNTSUmJoYtW7YAcMstt/Dmm28C0KBBA37729/St29fRo4cSUpKCgA7duzg8ssvp1+/fgwZMoTNmzcDcPjwYa699lri4uKIi4tj8eLFPProo+zYsYP4+HgmTpwIwLPPPkv//v3p3bs3f/nLXwpjefLJJ4mJieHSSy8tjKcyJk6cyN/+9rcyjwkNDSU+Pp79+/eXe71nnnmGXr16ERcXV5jMV69ezaBBg+jduzfXXnstJ054FuodPnw4jzzyCAMGDKBr1658++23AGzYsIEBAwYQHx9P79692bZt2zllcurUKUaOHEnfvn3p1asXn3zyCQDJycl0796du+++m549ezJq1CgyMjKYMWMGSUlJ3HbbbcTHx5ORkVEs7qeeeopXX32VyEjPgtcNGzZk/Pjx57y+oUOHsn37dmJiYmjUqBFLl/64MPEHH3zAzTffXG4ZVYYNMzfnGDS2EztXpfDNlC3c8Eg/XG77HuNr336wlaN7T1XrNZu1a8CQm7qWeUxGRgbx8fGF24899hjjxo3jlVdeYcKECTzwwAOcOHGCu+++G4DTp0/Tt29fnn/+ef7617/yxBNP8Morr3DPPffw+uuv06VLF5YuXcqvfvUr5s+fz/3338+wYcOYOXMmeXl5nDp1in/84x+sX7+e1atXAzB37ly2bdvGsmXLUFXGjBnDokWLCA8PZ9q0aaxatYrc3Fz69u1Lv379SnwdL7zwAu+99x4ATz/9NKNHjwZg8ODBzJw5kwULFhAREVHiuSdOnGDbtm0MHTq0zLL6/PPP+fjjj1m6dClhYWEcP+7py73zzjt5+eWXGTZsGH/+85954oknePHF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9ArF4HK5NC4urvBn2rRpqqo6d+5cHTRokE6dOlVHjx5deDyg7733nqqqPvHEE3rfffepquoll1yiW7duVVXVJUuW6IgRI1RV9aabbtIXXnih8DWdPHlSd+3apT179iy85pdffql333235ufna15enl511VW6cOFCTUpK0tjYWD19+rSmpqZqp06d9Nlnnz3nNfzlL3/RCy64oPA1fPHFF6qqOmzYMF2+fLmOGDFC58+fr8uXL9dhw4apquqCBQv0qquuUlXV48ePa9++ffXgwYNlltWcOXN08ODBevr0aVVVPXbsmKqq9urVS7/55htVVf3Tn/6kDzzwQOHzP/TQQ6qqOnv2bB05cqSqqv76178uLMOsrCw9c+bMOWWSk5OjqampqqqakpKinTp10vz8fN21a5e63e7C98mNN96o7777brHXW5Lx48drVFRUYRmtXbtWVVU7dOighw4d0m7duum2bdt0+vTpOn78eFX1vB8L/n93796tcXFxmpGRcc61z34fq6oCSVqBz36bt8act+4XtmbHiiMsnrmDDrFNiWx27vxkpnaz5Tbq/nIbBZ599lluuOGGc/a73W4mTpzI3//+d6644opij73//vssWLCALVu28OabbxISUr2rHlgTnzlvIsLw27shAvPf3VxsiWhT/SZMmFD4weN2u5kwYULhlDuBgYFMmDCB2NhYAEJCQpgwYULhHGhhYWFMmDCBmJgYwNMUVxVnL7dRmrOX2yj42bRpU4WfS53lNgrO3b59O3fddVfh9avqkksuITMzs8TlNtauXcu6det47bXXyl0uRKtxuY1PP/2U0NBQRo8ezfz58885r+hyG6tXr6Zly5alLrdRcN2quOOOO1i0aBF79uwptn/cuHFs2LCBb7/9lt/+9rccOnSoys9VlCUoUyURTUK48LrO7N9ygg3flt4Ba+oWW26jbi23UZ7AwEAefPDBwpWAzzZ48GDuuOMOXnrppfO6fmksQZkq6znkAtrENGbxh9tJO1bxzlfj/2y5DY+6vtxGRdx1111l1sYeeeQRJk2adN5JsCS23IapFmlHM5j6/5bRumMkP/lNPOKqetNLfWfLbfgnW26jcmy5DeNzkc1Cuei6TuzddIJ1C8sfjmtMbWXLbdQcS1Cm2vQc2ob2PZuy+KPtHD942tfhGB+o67UnU7MsQZlqIyJccmc3AoPc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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fn_rates.plot(label='Expected FNR, constant CPV',\n", " color='C4')\n", "plt.axhline(fnr, linestyle='dotted', \n", " label='Expected FNR, constant FNR', color='gray')\n", "\n", "for table in tables:\n", " plot_table_var(table, 'actual FNR', 'C4')\n", " \n", "decorate(xlabel='Prevalence',\n", " ylabel='Percent',\n", " title='False negative rates by subgroup')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Groups with higher prevalence have lower FNR, but the effect is less extreme than we would expect from the CPV model.\n", "\n", "Here are the results for negative predictive value." ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xd8VFXawPHfk0Y6pNAkNAUBKUFAkcUgKFWRJlVYjbCgqKu+IIrsruC+iviiC7oWVJDAivQuUqQKsqCAIKEjRQgEkhAIIQmknPePmYwJJGESMplJeL6fD5/ktnOfOxnmmXPuueeIMQallFLK1bg5OwCllFIqL5qglFJKuSRNUEoppVySJiillFIuSROUUkopl6QJSimllEvSBKWKjYisFJGnnR1HYYnIRhH5i/X3gSKypojluNT1i0ikiGxxQLm1RMSIiEdxl12IGMaJyNfOOr8qGZqgSjEROSEi50TEL8e6v4jIxhI49w0fEMaYLsaYGY4+tyMZY2YZYzrebL+yev1KuRJNUKWfB/Cys4NwFc78Vq9KJ33PuC5NUKXfROBVEamQ10YRqS8i34vIBRE5JCJ9c2wLEZHlIpIkIj+LyNs5m4RE5EMROWXdvlNEIqzrOwNjgH4ikiwie6zrN1prcOVE5KKINMpRVkURSRWRStblriKy27rfVhFpkt8FWpuTXhKRYyISLyITRcTNui1SRH4UkUkicgEYZ10/WEQOiEiiiKwWkZo5yusgIgdF5JKIfAxIjm25msVEpGGO1++ciIwpyesXkSki8v5165aKyAjr76NF5DcRuSwi+0WkZz7l3NAsl7Np82avWT4Gi8gZETkrIiOtZVQRkRQRCclRbnMRiRMRzzziul9EdljfY+dE5F/W9W1F5PR1+54QkfY5VnmLyFzrte8SkfAc+zYTkV+s2+Zb93s7Z9ki8rqIxALTreuHishR6996mYjcYc9rl+M9+G/re+qgiDxyk9dO2UETVOm3A9gIvHr9BrE0/X0PfANUAgYAn4pIQ+sunwBXgCrA09Z/Of0MNAWCrWXMFxFvY8wqYDww1xjjb4wJz3mQMeYqsMh6vmx9gU3GmPMi0gz4CngWCAE+B5aJSLkCrrMn0AJoBnQHBufY1hI4Zr3Gd0SkB5YE0guoCGwGZltfk1BgIfB3IBT4DWid1wlFJABYC6wC7gDqAOtK+Pq/wZIIxRpTENARmGPd/hsQAZQH3gK+FpGqeV1PQQp6zQrQDqhrjWe0iLQ3xsRieT/2zbHfIGCOMSY9jzI+BD40xgQCdwHzChF2d2A+f7w/l4iIp4h4AYuBKOu22VjePzlVsW6rCQwTkYeBd61xVwVO8sdrbI/s92AoMBZYJCLBhThe5UETVNnwJvBXEal43fquwAljzHRjTIYxZheWD+feIuIOPAGMNcakGGP2A7nunxhjvjbGJFiP/QAoB9SzM6ZvyP0B/aR1HcBQ4HNjzHZjTKb1vs1V4IECynvPGHPBGPM7MPm6ss8YY/5tjTMVywf/u8aYA8aYDCzJpKm1RvAosN8Ys8D6gTkZiM3nnF2BWGPMB8aYNGPMZWPM9hK+/s2AwZKEAHoD/zXGnAEwxsw3xpwxxmQZY+YCR4D77Ywxp4Jes/y8ZYy5YozZi6UWkn29M7AkJazvswHAf/IpIx2oIyKhxphkY8y2QsS8M8ff8V+AN5bX8AEsTd8fGWPSjTGLgJ+uOzYLy3v/qvU9MxD4yhizy/oF4w2glYjUsjOW88Bk6/nmAoeAxwpxLSoPmqDKAGNMNPAtMPq6TTWBltZmpIsichHLf8QqWL4lewCncuyf83dEZKS1yeeS9djyWL4h2mM94CMiLa0fck2xfKvNjmvkdXFVx1JLyU/O2E5et++p6/atCXyYo+wLWJrxqlmPs+1vLKMlX398tupYaihFUSzXb41vDn98+D8JzMreLiJP5WgqvAg0wv6/UU4FvWb5ye9vshS4R0TuBDoAl4wx1yeIbEOAu4GDYmlm7lqImHP+HbOA09YY7gBiTO6RsK//G8cZY9JyLN9hvYbs8pKBBAq+/pyuP9/171FVBHpzsOwYC+wCPsix7hSWZqUO1+9s/WabAYQBh62rq+fYHgG8DjwC7DPGZIlIIn/crylwGHzr/vOwfLCeA741xlzOEdc7xph3CnF91YF91t9rAGdynu66fbPLn3XdekSkLrmvU3Iu51HOgHy2leT1zwbWiMgELE1JPa2x1wS+xPI3+q8xJlNEdpPjnloOV6w/fYEk6+9VcmzP9zUrQHXgoPV329/EGJNmvfaBQH3yrz1hjDkCDBDLPcVewALr/asr1lixXqs7li9V158/e7sblvfyGSxfvKuJiORIGtd/2bj+73cGS5LOLs8PS/NrDDd/7cjjfDWAZfldt7KP1qDKCGPMUWAu8FKO1d8Cd4vIn61t854icp+INDDGZGK5TzJORHxFpD7wVI5jA7AksDjAQ0TeBAJzbD8H1LJ+MOTnG6Aflg+qb3Ks/xJ4zlq7EBHxE5HHrPd88jNKRIJEpDqWXotzC9h3CvBG9r02ESkvIn2s21YADUWkl/Wm90vc+GGT7Vugioi8IpaODwEi0tK6rcSu3xjzC5a/w1RgtTHmonWTH5YP2jjrdT6DpQaVVxlxWD5sB4mIu4gMxnLPJ1tBr1l+/mF97zQEniH332QmEAl0A/J9XklEBolIRWsNKPu6MrF8afK2vi6eWO4ZXn+PrnmOv+MrWJpJtwH/tZbxooh4iEh3bt7s+Q3wjIg0td4LHA9sN8acsOO1A8v9z5es/8f6AA2A725yTnUTmqDKln9i+dACwPqNvSPQH8s3xFjgPf74j/4ilma7WCzfcmdj+U8OsBpYieWD4iSQRu5mkvnWnwkisiuvYKz3a65gaepYmWP9Diz3YT4GEoGjWD7MCrIU2AnsxpJkpuW3ozFmsfU654hIEhANdLFuiwf6ABOwNOHUBX7Mp5zLWJqoHsfyGh3B0jEASv76ZwPtyZHorPcNP8DygXwOaJzftVgNBUZhue6GwNYcZeX7mhVgkzX2dcD7xhjbA87GmB+x3OfZZYw5UUAZnYF9IpKMpcNEf+v9vkvA81iScnYt5vR1xy7F8gUgEfgz0Mt6D+galtrYECxJbxCWLxtXyYcxZh3wDyz3aM9iSUD9c+yS72tntR3LeykeeAfobYxJKOC6lR3E6ISFykpE3gOqGGNcZjQEsHQzB+paa4mqlBCR9cA3xpipLhDLdmCKMWa6A8qOBP5ijHmwuMu+3WkN6jYmlmekmlibme7H8o1z8c2OU+pmROQ+LI8EFNQU68jzPySWZ7I8xDL8VBMsjwuoUkQ7SdzeArA0Hd2BpZvsB1iaTZQqMhGZAfQAXs7RMaSk1cPyTJU/ls4RvY0xZ50UiyoibeJTSinlkrSJTymllEsqFU18oaGhplatWs4OQymlVDHYuXNnvDHm+ufablAqElStWrXYsWOHs8NQSilVDETk5M330iY+pZRSLkoTlFJKKZekCUoppZRLKhX3oJS63aSnp3P69GnS0tJuvrNSLsrb25uwsDA8PW+Yq9IumqCUckGnT58mICCAWrVqYRlwXanSxRhDQkICp0+fpnbt2kUqQxOUsom9Ekt0fDSJaYkEeQfRKLQRVfzyG+hbOVJaWpomJ1WqiQghISHExcUVuQy9B6UAS3LaeGojaRlphPiEkJaRxsZTG4m9kt9ks8rRNDmp0u5W38OaoBQA0fHR+Hv64+/lj5u44e/lj7+nP9Hx0c4OTSl1m9IEpQBITEvE19M31zpfT18S0xKdFJFyNnd3d5o2bWr7N2HCBIef8+LFi3z66aeFPm7cuHG8//77ea739fXl/PnztnX+/v6237OvsVGjRvTp04eUlBTatm3L6tWrc5UzefJknn/++ULHVVwmT55MSkpKkY/fuHEjW7deP4WVRVRUFBUrVrT9nZ96yjJvaWRkJLVr16Zp06Y0a9aM//73vzesDw8PZ926dUWO62Y0QSkAgryDSEnP/R8gJT2FIO8gJ0WknM3Hx4fdu3fb/o0ePdrh5yxqgipIaGgoH3zwQZ7bsq8xOjoaLy8vpkyZwoABA5gzZ06u/ebMmcOAAQOKNa7CcGSCAujXr5/t7zxz5kzb+okTJ7J7924mTJjAs88+e8P6yZMn89xzzxU5rpvRBKUAaBTaiOT0ZJKvJZNlski+lkxyejKNQvOcQVzdpi5dukS9evU4dOgQAAMGDODLL78ELDWTkSNH0qxZMx555BHbzfHffvuNzp0707x5cyIiIjh48CAA586do2fPnoSHhxMeHs7WrVsZPXo0v/32G02bNmXUqFGA5cPwvvvuo0mTJowdO9YWyzvvvEO9evVo3769LZ68DB48mLlz53LhwoUCry0iIoKjR4/Su3dvvv32W65etUzAe+LECc6cOcODDxY8H+GqVato1qwZ4eHhPPLIIwBcuHCBHj160KRJEx544AF+/fVXwFKzGzx4MG3btuXOO+/ko48+AuDKlSs89thjhIeH06hRI+bOnctHH33EmTNnaNeuHe3aWSZ0Hj58OC1atKBhw4a5XpNatWoxduxYmjVrRuPGjTl48CAnTpxgypQpTJo0iaZNm7J58+YCryMvbdq04ejRG+cLbdWqFTExMYUuz17ai08BUMWvCm2rtyU6PpqE1ASCvINoUaWF9uJzAe/99B4HLxws1jLrB9fn9ftfL3Cf1NRUmjZtalt+44036NevHx9//DGRkZG8/PLLJCYmMnToUMDy4dqsWTM++OAD/vnPf/LWW2/x8ccfM2zYMKZMmULdunXZvn07zz//POvXr+ell17ioYceYvHixWRmZpKcnMyECROIjo5m9+7dAKxZs4YjR47w008/YYyhW7du/PDDD/j5+TFnzhx++eUXMjIyaNasGc2bN8/zOvz9/Rk8eDAffvghb731Vp77ZGRksHLlSjp37kxISAj3338/q1atonv37syZM4d+/foVeMM/Li6OoUOH8sMPP1C7dm1bMhw7diz33nsvS5YsYf369Tz11FO2azt48CAbNmzg8uXL1KtXj+HDh7Nq1SruuOMOVqxYAVi+EJQvX55//etfbNiwgdDQUMCSnIODg8nMzOSRRx7h119/pUmTJoClxrhr1y4+/fRT3n//faZOncpzzz2Hv78/r776ap7xz507ly1btgDw8ssv88wzz+Tavnz5cho3bnzDcatWraJHjx75vi63ShOUsqniV0UTkrLJbv66XocOHZg/fz4vvPACe/bssa13c3OjX79+AAwaNIhevXqRnJzM1q1b6dOnj22/7JrJ+vXrbc1J7u7ulC9fnsTE3Pc816xZw5o1a7j33nsBSE5O5siRI1y+fJmePXvi62u5b9qtW7cCr+Wll16iadOmjBw5Mtf6nEk4IiKCIUOGANia+bIT1FdffVVg+du2baNNmza2532Cg4MB2LJlCwsXLgTg4YcfJiEhgUuXLgHw2GOPUa5cOcqVK0elSpU4d+4cjRs35tVXX+X111+na9euRERE5Hm+efPm8cUXX5CRkcHZs2fZv3+/LUH16tULgObNm7No0aIC486W/cXjeqNGjeLtt9+mYsWKTJs2Ldf61157jfPnz7Nt2za7zlEUmqCUcnE3q+mUtKysLA4cOICPjw8XLlwgLCwsz/1EhKysLCpUqJBnorOHMYY33ngj1/0PsNyTKUwX5goVKvDkk0/ecH8rvyTco0cPRowYwa5du0hNTaVZs2Y3jTOvePKaEDZ7v3LlytnWubu7k5GRwd13383OnTv57rvveOONN+jYsSNvvvlmruOPHz/O+++/z88//0xQUBCRkZG5RhzJLje7zFsxceJEevfunef6Xr168dFHH/H000+zc+fOWzpPfvQelFKqUCZNmkSDBg2YPXs2gwcPJj09HbAkrgULFgDwzTff8OCDDxIYGEjt2rWZP38+YPnAzq51PfLII3z22WcAZGZmkpSUREBAAJcv/zFLfKdOnfjqq69ITk4GICYmhvPnz9OmTRsWL15Mamoqly9fZvny5TeNe8SIEXz++ed2fWj7+/vTtm1bBg8efEPniPr169+wf6tWrdi0aRPHjx8HsDXxtWnThlmzZgGWjgqhoaEEBgbme94zZ87g6+vLoEGDePXVV9m1axdArtclKSkJPz8/ypcvz7lz51i5cuVNr+f617U4uLm58fLLL5OVlXVDr8fiojUopVSerr8H1blzZwYPHszUqVP56aefCAgIoE2bNrz99tu89dZb+Pn5sW/fPpo3b0758uWZO3cuALNmzWL48OG8/fbbpKen079/f8LDw/nwww8ZNmwY06ZNw93dnc8++4xWrVrRunVrGjVqRJcuXZg4cSIHDhygVatWgCVxfP311zRr1ox+/frRtGlTatasmW9TWE6hoaH07NmTSZMm2XX9AwYMoFevXrl69MXHx+dZK6pYsSJffPEFvXr1Iisri0qVKvH9998zbtw4nnnmGZo0aYKvry8zZswo8Jx79+5l1KhRuLm54enpaUvgw4YNo0uXLlStWpUNGzZw77330rBhQ+68805at25902t5/PHH6d27N0uXLuXf//63Xa+XPUSEv//97/zf//0fnTp1KpYyc5Wf14vtalq0aGF0wkJ1Ozlw4AANGjRwdhiF4u/vb6vplFXffvstx44d46WXXnJ2KKVGXu9lEdlpjGlxs2O1BqWUUnbq2rWrs0O4reg9KKVUsSjrtSdV8jRBKaWUckmaoJRSSrkkTVBKKaVckiYopZRSLkkTlFIqTzrdxh/K+nQbbm5utoFsARo1asSJEycAywC0jRs3Jjw8nI4dOxIbG0tkZCSff/55rnKWLFnCo48+WuQY8+LQBCUiL4tItIjsE5FXrOuCReR7ETli/anzOSjlgnS6jT+U9ek2wsLCeOedd/LdvmHDBvbs2UOLFi0YP358ib1GDktQItIIGArcD4QDXUWkLjAaWGeMqQussy4rpUoBnW4jf6V5uo2uXbuyb9++Al9H+GPajfbt23Pw4EHOnj0LQEpKCmvXri3+kc2NMQ75B/QBpuZY/gfwGnAIqGpdVxU4dLOymjdvbpS6nezfvz/X8vTp080vv/xijDEmIyPDTJ8+3ezZs8cYY8y1a9fM9OnTzd69e40xxqSmpprp06fbyrhy5YqZPn26OXjw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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "npv_rates.plot(label='Expected NPV, constant FPR', color='C2')\n", "plt.axhline(npv, linestyle='dotted', \n", " label='Expected NPV, constant NPV', color='gray')\n", "\n", "for table in tables:\n", " plot_table_var(table, 'actual NPV', 'C2')\n", " \n", "decorate(xlabel='Prevalence',\n", " ylabel='Percent',\n", " title='Negative predictive value by subgroup')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Groups with higher prevalence have lower NPV. In this case, the effect is almost exactly what we would expect from the CPV model." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Individual FPR" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [], "source": [ "from scipy.interpolate import interp1d\n", "\n", "def crossing(series, value, **options):\n", " \"\"\"Find where a function crosses a value.\n", " \n", " series: Series\n", " value: number\n", " options: passed to interp1d (default is linear interp)\n", " \n", " returns: number\n", " \"\"\"\n", " interp = interp1d(series.values, series.index, **options)\n", " return interp(value)\n", "\n", "def interpolate(series, value, **options):\n", " \"\"\"Evaluate a function at a value.\n", " \n", " series: Series\n", " value: number\n", " options: passed to interp1d (default is linear interp)\n", " \n", " returns: number\n", " \"\"\"\n", " interp = interp1d(series.index, series.values, **options)\n", " return interp(value)" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cal_all = calibration_curve(cp)\n", "cal_all.plot()\n", "decorate(ylabel='Probability of recidivism')" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(3.40971594)" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "crossing(cal_all, 0.4)" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(9.01595501)" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "crossing(cal_all, 0.7)" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(0.39943493)" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "interpolate(cal_all, 3.4)" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(0.6988189)" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "interpolate(cal_all, 9)" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [], "source": [ "def make_error_dist(std_dev):\n", " \"\"\"Make a discrete Gaussian distribution.\n", " \n", " std_dev: standard deviation\n", " \n", " returns: Series that maps errors to probabilities\n", " \"\"\"\n", " errors = np.linspace(-3, 3, 21)\n", " prob_error = np.exp(-(errors/std_dev)**2)\n", " prob_error /= np.sum(prob_error)\n", " error_dist = pd.Series(prob_error, index=errors)\n", " return error_dist" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "error_dist = make_error_dist(std_dev=2)\n", "error_dist.plot(label='')\n", "decorate(xlabel='Error (score)',\n", " ylabel='Probability')" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [], "source": [ "def individual_fpr(actual_prob_recid, cal, thresh, std_dev):\n", " \"\"\"Compute an individual FPR.\n", " \n", " actual_prob_recid: actual probability of recidivism\n", " cal: calibration curve, map from score to prob_recid\n", " thresh: threshold between low and not low risk\n", " std_dev: standard deviation of the error function\n", " \n", " returns: individual FPR\n", " \"\"\"\n", " # look up actual_prob_recid to get correct score\n", " correct_score = crossing(cal, actual_prob_recid)\n", "\n", " # make the error distribution\n", " error_dist = make_error_dist(std_dev)\n", "\n", " # loop through possible errors\n", " total_prob = 0\n", " for error, prob_error in error_dist.iteritems():\n", " # hypothetical score\n", " score = correct_score+error\n", " score = max(score, 1)\n", " score = min(score, 10)\n", " \n", " # probability of being classified 'not low' | error\n", " prob_positive = 0 if score < thresh else 1\n", "\n", " # probability of being a false positive | error\n", " prob_fp = prob_positive * (1-actual_prob_recid)\n", " \n", " total_prob += prob_error * prob_fp\n", " return total_prob" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.01623457260428886" ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ "individual_fpr(0.3, cal_all, 4.5, 2)" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.3538656315021642" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "individual_fpr(0.5, cal_all, 4.5, 2)" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.3" ] }, "execution_count": 96, "metadata": {}, "output_type": "execute_result" } ], "source": [ "individual_fpr(0.7, cal_all, 4.5, 2)" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [], "source": [ "def compute_fpr_vs_prob_recid(cal, thresh, std_dev):\n", " \"\"\"Computes FPR as a function of probability of recidivism.\n", " \n", " cal: calibration curve, map from score to prob_recid\n", " thresh: threshold between low and not low risk\n", " std_dev: standard deviation of the error function\n", " \n", " returns: Series\n", " \"\"\"\n", " prob_recid_array = np.linspace(min(cal), max(cal), 21)\n", " prob_fpr_series = pd.Series(index=prob_recid_array)\n", " for prob_recid in prob_recid_array:\n", " fpr = individual_fpr(prob_recid, cal, thresh, std_dev)\n", " prob_fpr_series[prob_recid] = fpr\n", " return prob_fpr_series" ] }, { "cell_type": "code", "execution_count": 98, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "s = compute_fpr_vs_prob_recid(cal_all, thresh=4.5, std_dev=2)\n", "s.plot(label='FPR, std_dev=2')\n", "\n", "s = compute_fpr_vs_prob_recid(cal_all, thresh=4.5, std_dev=1)\n", "s.plot(label='FPR, std_dev=1')\n", "\n", "decorate(xlabel='Actual probability of recidivism',\n", " ylabel='Probability of false positive')" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [], "source": [ "def individual_fpr_given_score(actual_score, cal, thresh, std_dev):\n", " \"\"\"Compute an individual FPR.\n", " \n", " actual_score: score assigned\n", " cal: calibration curve, map from score to prob_recid\n", " thresh: threshold between low and high risk\n", " std_dev: standard deviation of the error function\n", " \n", " returns: individual FPR\n", " \"\"\"\n", " # make the error distribution\n", " error_dist = make_error_dist(std_dev)\n", "\n", " # loop through possible errors\n", " total_prob = 0\n", " for error, prob_error in error_dist.iteritems():\n", " # correct score\n", " correct_score = actual_score-error\n", " correct_score = max(correct_score, 1)\n", " correct_score = min(correct_score, 10)\n", " \n", " # map from correct score to probability of recidivism.\n", " # if calibration curves are different for different\n", " # groups, this one should be group specific.\n", " correct_prob_recid = interpolate(cal, correct_score)\n", " cond_ifpr = individual_fpr(correct_prob_recid,\n", " cal, thresh, std_dev)\n", " \n", " total_prob += prob_error * cond_ifpr\n", " return total_prob" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.3451680036503149" ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "individual_fpr_given_score(6, cal_all, thresh=4.5, std_dev=2)" ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [], "source": [ "def make_ifpr_series(cal, thresh, std_dev):\n", "\n", " scores = np.arange(1, 11)\n", " t = [individual_fpr_given_score(score, cal, thresh, std_dev)\n", " for score in scores]\n", " \n", " ifpr_series = pd.Series(t, scores)\n", " return ifpr_series" ] }, { "cell_type": "code", "execution_count": 132, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thresh = 4.5\n", "\n", "s = make_ifpr_series(cal_all, thresh, std_dev=2)\n", "s.plot(label='FPR, std_dev=2')\n", "\n", "s = make_ifpr_series(cal_all, thresh, std_dev=1)\n", "s.plot(label='FPR, std_dev=1')\n", "\n", "decorate(xlabel='Score',\n", " ylabel='Probability of false positive')" ] }, { "cell_type": "code", "execution_count": 133, "metadata": {}, "outputs": [], "source": [ "def assign_individual_fpr(df, cal, thresh, std_dev):\n", " \"\"\"Assign individual FPRs to defendants.\n", " \n", " df: DataFrame\n", " cal: calibration curve, map from score to prob_recid\n", " thresh: threshold between low and high risk\n", " std_dev: standard deviation of the error function\n", " \"\"\"\n", " # compute the map from score to FPR\n", " ifpr_series = make_ifpr_series(cal, thresh, std_dev)\n", " \n", " # assign FPR to each defendant\n", " df['ifpr'] = [ifpr_series[score] for score in df.decile_score]" ] }, { "cell_type": "code", "execution_count": 134, "metadata": {}, "outputs": [], "source": [ "assign_individual_fpr(cp, cal_all, thresh=4.5, std_dev=2)" ] }, { "cell_type": "code", "execution_count": 135, "metadata": {}, "outputs": [], "source": [ "def make_cdf(series):\n", " \"\"\"Make a CDF.\"\"\"\n", " counts = series.value_counts().sort_index()\n", " counts /= counts.sum()\n", " return counts.cumsum()\n", "\n", "def plot_cdf(cdf, **options):\n", " \"\"\"Plot a CDF as a step function.\"\"\"\n", " plt.step(cdf.index, cdf.values, where='post', **options)" ] }, { "cell_type": "code", "execution_count": 136, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.018482 0.199612\n", "0.050389 0.330053\n", "0.128211 0.433601\n", "0.210571 0.540200\n", "0.258458 0.593291\n", "0.282626 0.687691\n", "0.292149 0.758109\n", "0.327170 0.829082\n", "0.345168 0.917937\n", "0.353374 1.000000\n", "Name: ifpr, dtype: float64" ] }, "execution_count": 136, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cdf_ifpr = make_cdf(cp.ifpr)" ] }, { "cell_type": "code", "execution_count": 137, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_cdf(cdf_ifpr, label='All')\n", "\n", "decorate(xlabel='Individual probability of false positive', \n", " ylabel='CDF',\n", " ylim=[0,1])" ] }, { "cell_type": "code", "execution_count": 138, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "black = cp[cp.race=='African-American']\n", "white = cp[cp.race=='Caucasian']\n", "\n", "thresh = 4.5\n", "std_dev = 2\n", "\n", "cal_black = calibration_curve(black)\n", "s = make_ifpr_series(cal_black, thresh, std_dev)\n", "s.plot(label='FPR, black')\n", "\n", "cal_white = calibration_curve(white)\n", "s = make_ifpr_series(cal_white, thresh, std_dev)\n", "s.plot(label='FPR, white')\n", "\n", "decorate(xlabel='Score',\n", " ylabel='Probability of false positive')" ] }, { "cell_type": "code", "execution_count": 139, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "male = cp[cp.sex=='Male']\n", "female = cp[cp.sex=='Female']\n", "\n", "thresh = 4.5\n", "std_dev = 2\n", "\n", "cal_male = calibration_curve(male)\n", "s = make_ifpr_series(cal_male, thresh, std_dev)\n", "s.plot(label='FPR, male')\n", "\n", "cal_female = calibration_curve(female)\n", "s = make_ifpr_series(cal_female, thresh, std_dev)\n", "s.plot(label='FPR, female')\n", "\n", "decorate(xlabel='Score',\n", " ylabel='Probability of false positive')" ] }, { "cell_type": "code", "execution_count": 176, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.18984802588839386" ] }, "execution_count": 176, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assign_individual_fpr(cp, cal_all, thresh=4.5, std_dev=2)\n", "cp.ifpr.mean()" ] }, { "cell_type": "code", "execution_count": 177, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "race\n", "African-American 0.225117\n", "Asian 0.115755\n", "Caucasian 0.160501\n", "Hispanic 0.142154\n", "Native American 0.240612\n", "Other 0.119566\n", "Name: ifpr, dtype: float64" ] }, "execution_count": 177, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cp.groupby('race').ifpr.mean()" ] }, { "cell_type": "code", "execution_count": 178, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.182639042962266" ] }, "execution_count": 178, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assign_individual_fpr(cp, cal_all, thresh=4.5, std_dev=1)\n", "cp.ifpr.mean()" ] }, { "cell_type": "code", "execution_count": 179, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "race\n", "African-American 0.223846\n", "Asian 0.098804\n", "Caucasian 0.148866\n", "Hispanic 0.125011\n", "Native American 0.239059\n", "Other 0.100288\n", "Name: ifpr, dtype: float64" ] }, "execution_count": 179, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cp.groupby('race').ifpr.mean()" ] }, { "cell_type": "code", "execution_count": 180, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.1777100083171615" ] }, "execution_count": 180, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assign_individual_fpr(cp, cal_all, thresh=4.5, std_dev=0.01)\n", "cp.ifpr.mean()" ] }, { "cell_type": "code", "execution_count": 181, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "race\n", "African-American 0.220867\n", "Asian 0.097329\n", "Caucasian 0.142568\n", "Hispanic 0.119877\n", "Native American 0.228798\n", "Other 0.085460\n", "Name: ifpr, dtype: float64" ] }, "execution_count": 181, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cp.groupby('race').ifpr.mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Individual FNR" ] }, { "cell_type": "code", "execution_count": 141, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xd8VFX6x/HPQyihl9B7b1I1VBEUGzYU24JdUezguuuuZV3LuruubdVdyw8BUVSw4sKKwCq4gNJ7bwEk1NBJIJDy/P6YgY0xhAEzmUnyfb9evmbunTt3voyBJ/ecc88xd0dERCTaFIt0ABERkZyoQImISFRSgRIRkaikAiUiIlFJBUpERKKSCpSIiESlsBYoM+tjZqvNbJ2ZPZrD6/XNbKqZLTSzJWZ2aTjziIhIwWHhug/KzGKANcCFQCIwFxjg7iuyHDMUWOjub5lZa2CCuzcMSyARESlQwnkF1RlY5+4J7n4UGANcme0YByoEn1cEtoYxj4iIFCDFw3juOsDmLNuJQJdsxzwNTDazB4GywAU5ncjMBgGDAMqWLXtWy5Yt8zysiIjkj/nz5+9y92onOy6cBcpy2Je9PXEAMNLdXzazbsAoM2vj7pk/eZP7UGAoQHx8vM+bNy8sgUVEJPzMbFMox4WziS8RqJdluy4/b8IbCHwC4O4zgVigahgziYhIARHOAjUXaGZmjcysJNAfGJftmB+B8wHMrBWBApUUxkwiIlJAhK1AuXs68AAwCVgJfOLuy83sWTPrGzzsN8BdZrYYGA3c5ppeXURECG8fFO4+AZiQbd8fszxfAZz9Sz8nLS2NxMREUlNTf+mpJB/FxsZSt25dSpQoEekoIhKFwlqg8ktiYiLly5enYcOGmOU0NkOijbuze/duEhMTadSoUaTjiEgUKhRTHaWmphIXF6fiVICYGXFxcbrqFZETKhQFClBxKoD0/0xEclNoCpSIiIRXRqazbMv+fPs8FSgRETmpnQdSuWnYbK556we27jucL5+pApUH9u3bx5tvvhnpGBHXvXv3HPffdtttfPbZZ/mcRkTyyrQ1SVzy2nQWbd7Hc1e1oXal0vnyuSpQeaCgFaiMjIw8OSa7H3744XTiiEiUSs/I5MVJq7j13TnElSvJuAfO5rr4eid/Yx4pFMPMs3pm/HJWbD2Qp+dsXbsCT11xxglff/TRR1m/fj0dOnSgY8eO9OvXj759+9KvXz8qV67MiBEjGD58OBs2bOC5557jlVdeYcSIEQDceeedPPTQQzme98knn6Rq1aoMGTIEgCeeeIIaNWowePBgXnzxRT755BOOHDlCv379eOaZZwC46qqr2Lx5M6mpqQwZMoRBgwYBUK5cOR5++GEmTZrEyy+/TI8ePX72eQ0bNuSOO+5g8uTJPPDAA3Tq1In777+fpKQkypQpwzvvvEPLli3ZsWMH99xzDwkJCQC89dZbdO/enXLlypGcnIy78+CDDzJlyhQaNWqE7r0WKXi27jvM4NELmbdpL/071eOpK86gdMmYfM1Q6ApUJDz//PMsW7aMRYsWMWbMGKZPn07fvn3ZsmUL27ZtA2DGjBn079+f+fPn8+677zJ79mzcnS5dutCrVy86duz4s/MOHDiQq6++miFDhpCZmcmYMWOYM2cOkydPZu3atcyZMwd3p2/fvkybNo2ePXsyYsQIqlSpwuHDh+nUqRPXXHMNcXFxpKSk0KZNG5599tlc/yyxsbHMmDEDgPPPP5+3336bZs2aMXv2bO677z6mTJnC4MGD6dWrF2PHjiUjI4Pk5OSfnGPs2LGsXr2apUuXsmPHDlq3bs0dd9yRR9+2iITblFU7ePiTxaSlZ/Ja/w5c2aFORHIUugKV25VOfjjnnHN49dVXWbFiBa1bt2bv3r1s27aNmTNn8vrrrzNixAj69etH2bJlAbj66quZPn16jgWqYcOGxMXFsXDhQnbs2EHHjh2Ji4tj8uTJTJ48+fh7kpOTWbt2LT179uT1119n7NixAGzevJm1a9cSFxdHTEwM11xzzUnz/+pXvzp+zh9++IHrrrvu+GtHjhwBYMqUKbz//vsAxMTEULFixZ+cY9q0aQwYMICYmBhq165N7969T/VrFJEIOJoeaNJ7Z/oGWteqwD9v6EjjauUilqfQFahIq1OnDnv37mXixIn07NmTPXv28Mknn1CuXDnKly9/ys1dd955JyNHjmT79u3Hr0Lcnccee4y77777J8d+9913fPPNN8ycOZMyZcpw7rnnHr8RNjY2lpiYk1+eHyucmZmZVKpUiUWLFp1S3mN0j5NIwbJ5zyEeGL2QxZv3cUu3Bjx+aStiS+Rvk152GiSRB8qXL8/BgwePb3fr1o1XX32Vnj17cs455/DSSy9xzjnnANCzZ0++/PJLDh06REpKCmPHjj3+Wk769evHxIkTmTt3LhdffDEAF198MSNGjDjetLZlyxZ27tzJ/v37qVy5MmXKlGHVqlXMmjXrtP9MFSpUoFGjRnz66adAoCguXrwYCDT9vfXWW0BgMMWBAz/t8+vZsydjxowhIyODbdu2MXXq1NPOISLhN3HZNi59fToJScm8deOZPHtlm4gXJ9AVVJ6Ii4vj7LPPpk2bNlxyySWcc845TJ48maZNm9KgQQP27NlzvAideeaZ3HbbbXTu3BkIXCHl1Lx3TMmSJTnvvPOoVKnS8Sugiy66iJUrV9KtWzcgMADigw8+oE+fPrz99tu0a9eOFi1a0LVr11/05/rwww+59957ee6550hLS6N///60b9+e1157jUGDBjF8+HBiYmJ46623jmeBQFGdMmUKbdu2pXnz5vTq1esX5RCR8EhNy+CvE1by3sxNtK9bkX8MOJP6cWUiHes4K2gjrHJaUXflypW0atUqQonCKzMzkzPPPJNPP/2UZs2aRTpOnivM/+9EotnGXSnc/9EClm89wJ09GvG7Pi0pWTx/GtXMbL67x5/sOF1BRbEVK1Zw+eWX069fv0JZnEQkMsYt3srjXywlppgx7JZ4LmhdI9KRcqQCFQV2797N+eef/7P933777fF7jfJSv3792LBhw0/2/e1vfzvexyUihVNqWgbPjF/O6DmbOatBZV4f0JE6+TQrxOkoNAXK3QvsyLG4uLjTHi13Oo4NQ4+0gta8LFKQrdt5kPs/XMjqHQe599wmPHxhc0rERPc4uUJRoGJjY9m9e7fWhCpAji1YGBsbG+koIoXeZ/MTefLLZZQpGcN7d3SmV/NqkY4UkkJRoOrWrUtiYiJJSUmRjiKn4NiS7yISHilH0nnyX8v4YsEWujauwmv9O1KjQsH5pbBQFKgSJUpo2XARkSxWbT/A/R8uIGFXCkPOb8bg85sRU6xgtTAVigIlIiIB7s6YuZt5etxyKpQuwYcDu9C9adVIxzotKlAiIoXEwdQ0Hh+7jPGLt3JOs6q8cn0HqpUvFelYp00FSkSkEFi2ZT8PfLSAzXsP88jFLbi3VxOKFbAmvexUoERECjB35/2Zm/jzVyupUrYkYwZ1pVPDKpGOlSdUoERECqj9h9L43eeLmbR8B71bVuel69pTpWzJSMfKMypQIiIF0MIf9/Lg6IVs35/KE5e2YmCPRgW+SS87FSgRkQIkM9MZPmMDf5u4ihoVYvn0nm50rF850rHCQgVKRKSA2JtylN98upgpq3Zy8Rk1eOGa9lQsUyLSscJGBUpEpACYu3EPg0cvZHfyUZ7pewa3dGtQ6Kd2C2uBMrM+wGtADDDM3Z/P9vrfgfOCm2WA6u5eKZyZREQKksxM563/rueV/6yhbuXSfHFfd9rUqRjpWPkibAXKzGKAN4ALgURgrpmNc/cVx45x919nOf5B4MRLy4qIFDFJB4/w8CeLmL52F5e3q8Vfr25L+djC26SXXTivoDoD69w9AcDMxgBXAitOcPwA4Kkw5hERiXppGZls2n2IZVv28+cJKzlwOI2/Xt2W/p3qFfomvezCWaDqAJuzbCcCXXI60MwaAI2AKSd4fRAwCKB+/fp5m1JEJJ+5O7tTjpKQlEJCUjIJu4KPSSls2nOIjMzAWmmNq5Xl/Ts606pWhQgnjoxwFqicSv2JVqjrD3zm7hk5vejuQ4GhAPHx8VrlTkQKhCPpGWzafYiEpGTWJ6UECtKuZNbvTOZAavrx40rGFKNh1TI0r1GePm1q0qRaORpXK0vr2hUoVTwmgn+CyApngUoE6mXZrgtsPcGx/YH7w5hFRCQs3J2kg0cCBWhX8vGrovVJKSTuPURmll+pq5cvReNqZbmifW0aB4tQk6rlqFO5dIFbCiM/hLNAzQWamVkjYAuBInRD9oPMrAVQGZgZxiwiIr9IaloGG3al5Ngsd/DI/66GShUvRqOqZWlbtyJXdfhfIWpUtWyRGuCQF8JWoNw93cweACYRGGY+wt2Xm9mzwDx3Hxc8dAAwxt3VdCciEeXubD+Q+pOroIRdKazfmczW/YfJ+q9UrYqxNKlWjn5n1qFx1bLHC1HtiqUL3ZRDkWIFrS7Ex8f7vHnzIh1DRAqJnQdSeWHSalZtP0BCUgqHjv6vK7xMyRgaVytL46qB4tO4WrlgMSpLmZKa5+B0mdl8d48/2XH6hkWkyNq0O4Wbhs9m18GjdGpUhfgGVWhS7X9XQzUrxBa5od3RRAVKRIqkVdsPcPPwOaRlZDJ6UFc61NMkNtGmWKQDiIjkt/mb9nD92zOJMePTu7upOEUpXUGJSJHy3zVJ3DNqPjUqlGLUwC7Uq1Im0pHkBFSgRKTI+PeSrfz640U0q16e9+7oTLXypSIdSXKhAiUiRcJHs3/kiS+XEt+gMsNu7UTF0ronKdqpQIlIoeYeWK7ihYmrOa9FNd688SxKlyy60wcVJCpQIlJouTt//XoVQ6clcGWH2rx0XXtKxGhsWEGhAiUihVJ6RiaPj13KJ/MSuaVbA56+4gzN8FDAqECJSKFzJD2DIaMXMXH5dgb3bsqvL2yuG24LIBUoESlUko+kc/eoeXy/bjdPXt6agT0aRTqSnCYVKBEpNPamHOW2kXNZtmU/L1/XnmvOqhvpSPILqECJSKGwfX8qNw+fzaY9h3j7prO4sHWNSEeSX0gFSkQKvA27Urhp2Gz2H07jvds7061JXKQjSR44aYEKLjj4INAw6/Hu3jd8sUREQrN8635uHTGHTIfRd3Wlbd2KkY4keSSUK6gvgeHAeCAzvHFEREI3d+Me7hg5l3KlijNqYBeaVi8X6UiSh0IpUKnu/nrYk4iInIKpq3Zy74fzqV2xNKPu7EKdSqUjHUnyWCgF6jUzewqYDBw5ttPdF4QtlYhILv61aAu/+WQxLWuVZ+TtnalaTpO+FkahFKi2wM1Ab/7XxOfBbRGRfDVq5kb+OG45nRtWYdit8ZSP1aSvhVUoBaof0Njdj4Y7jIjIibg7/5yyjpf/s4YLWlXnnzecSWwJTfpamIVSoBYDlYCdYc4iIpKjzEznua9WMuL7DVzdsQ5/u7adJn0tAkIpUDWAVWY2l5/2QWmYuYiEXXpGJr//fCmfL0jktu4N+ePlrTXpaxERSoF6KuwpRERykJqWwYOjF/KfFTv49QXNGXx+U036WoSEUqDmAYfdPdPMmgMtga/DG0tEirrkI+nc9d48Zibs5pm+Z3Br94aRjiT5LJRG3GlArJnVAb4FbgdGhjOUiBRte1KOcsM7s5izcQ+v/qqDilMRFUqBMnc/BFwN/MPd+wFnhDeWiBRVW/cd5rq3f2D19oMMvfksrupYJ9KRJEJCaeIzM+sG3AgMDO7T2E4RyXMJScncPHwOBw6n8f4dnenSWJO+FmWhFKiHgMeAse6+3MwaA1PDG0tEipplWwKTvgKMHtSVNnU06WtRd9ImPnf/r7v3dfe/BbcT3H1wKCc3sz5mttrM1pnZoyc45nozW2Fmy83so1OLLyKFweyE3QwYOovYEjF8ek83FScBcrmCMrNX3f0hMxtPYGqjnzjZfVBmFgO8AVwIJAJzzWycu6/IckwzAldnZ7v7XjOrfpp/DhEpoL5duYP7PlxA3cql+eDOLtSqqElfJSC3Jr5RwceXTvPcnYF17p4AYGZjgCuBFVmOuQt4w933Ari7ZqsQKUK+XLiF33y6mDNqV2Dk7Z2pUrZkpCNJFDlhgXL3+cGnVYAJ7n7kRMeeQB1gc5btRKBLtmOaA5jZ9wQGXjzt7hOzn8jMBgGDAOrXr3+KMUQkGo38fgNPj19B9yZxDL0lnnKltMC3/FQow8z7AmvMbJSZXWZmof4U5XS7d/amwuJAM+BcYAAwzMwq/exN7kPdPd7d46tVqxbix4tINHJ3Xv1mDU+PX8FFrWsw4rZOKk6So1AGSdwONAU+BW4A1pvZsBDOnQjUy7JdF9iawzH/cvc0d98ArCZQsESkEMrMdJ4Zv4JXv1nLtWfV5c0bNSO5nFhIv7a4e5qZfU3gCqg0gb6kO0/ytrlAMzNrBGwB+hMocFl9SeDKaaSZVSXQ5JcQenwRKQg27krh62XbGb94Kyu2HeDOHo14/NJWmvRVcnXSAmVmfQgUl/OA74BhwPUne5+7p5vZA8AkAv1LI4L3UT0LzHP3ccHXLjKzFUAG8Ii77z7dP4yIRI/1Scl8vXQbE5ZuZ8W2AwB0qFeJv13Tluvj62nSVzkpc//ZCPKfHhAYfTcG+Po0Bkrkufj4eJ83b16kY4hINu7O2p3JTFi6ja+Xbmf1joMAxDeozCVta9GnTU3qVNIQcgEzm+/u8Sc77qRXUO7eP28iiUhh4+6s3HaQr5dtY8LSbaxPSsEMOjWswtNXtKZPm1rUrBgb6ZhSQOV2o+4Md+9hZgcJ9D1Z1kd3r5BPGUUkirg7y7ceCFwpLdvOhl0pFDPo2jiO285uxMVn1KB6eRUl+eVyuw+qR/CxfP7FEZFo5O4sTtwf6FNato3New4TU8zo3iSOQT0bc1HrGsSVKxXpmFLI5HYFVSW3N7r7nryPIyLRIjPTWbh5LxOWbmfisu1s2XeYEjHG2U2r8mDvZlzYqgaVNfODhFFufVDz+V+TXn1gb/B5JeBHoFHY04lIvsrIdOZv2suEpduYuGw72w+kUjKmGD2bV+XhC5tzQasaVCxTItIxpYjIrYmvEYCZvQ2Mc/cJwe1LgAvyJ56IhFt6RiZzNu7h66Xbmbh8O0kHj1CqeDHObVGNx9q2pHfL6pSPVVGS/BfKjbqd3P2eYxvu/rWZ/SmMmUQkzNIyMpmVsJsJS7czefl2dqccJbZEMXq3rM4lbWpxXsvqmn5IIi6Un8BdZvYH4AMCTX43AbqZVqSAOZqeyffrd/H10m1MXrGDfYfSKFMyhvNb1eDSNjXp1aIaZUqqKEn0COWncQDwFDA2uD0tuE9EotyR9AxmrN3FhKXb+c+K7RxITadcqeJc0Ko6l7atRc/m1TQXnkStUG7U3QMMyYcsIpJHko+k8+evVjJ+8VaSj6RTIbY4F7auyaVta9KjWVVKFVdRkugXthV1RSQyNuxKYdD780jYlcLVHetwWbtadG9SlZLFQ1ldRyR6hHNFXRHJZ1NX7WTwmIUUL2aMuqMz3ZtWjXQkkdMWyoq684DD7p4JYGYxgG4ZF4ki7s4bU9fx8n/W0KpmBf7v5rOoV6VMpGOJ/CKhXPN/C2T9SS8NfBOeOCJyqpKPpHPvBwt4afIa+ravzef3dldxkkIhlFF8se6efGzD3ZPNTD/9IlFg464U7np/HuuTkvnDZa0Y2KOR1lmSQiOUApViZme6+wIAMzsLOBzeWCJyMlNX72TI6IUUK2a8f0cXejRTf5MULqEUqIeAT81sa3C7FvCr8EUSkdy4O29+t56XJq+mZc0KDFV/kxRSodwHNdfMWgItCEwWu8rd08KeTER+JuVIOo98tpgJS7dzRfvavHBNO0qX1D1NUjidtEAF+5seBhq4+11m1szMWrj7v8MfT0SO2bQ7hUHvz2ftzoM8fmlL7jqnsfqbpFALpYnvXQJLb3QLbicCnwIqUCL55LvVOxkc7G96747OnNOsWqQjiYRdKMPMm7j7C0AagLsfJtDUJyJhFuhvWsftI+dSu1Jpxt3fQ8VJioxQrqCOmllpgtMdmVkT4EhYU4kIKUfS+d1nS/hq6TYub1eLF65tp9nGpUgJ5af9KWAiUM/MPgTOBm4LZyiRou7H3YcYNGoea3Yc5NFLWnJ3T/U3SdGTa4GywN+IVcDVQFcCTXtD3H1XPmQTKZKmrUniwdELARh5e2d6NleTnhRNuRYod3cz+9LdzwK+yqdMIkWSu/N/0xJ4YeIqmtcoz//dfBYN4spGOpZIxITSxDfLzDq5+9ywpxEpog4dDfQ3/XvJNi5rW4sXr1N/k0gofwPOA+42s01ACoFmPnf3dmFNJlJEHOtvWr3jIL/v05J7eqm/SQRCK1CXhD2FSBE1fW2gvykz0xl5e2d6qb9J5LhQpjralB9BRIoSd+ed6Qk8//UqmlUvz9Bb1N8kkl1Y14A2sz5mttrM1pnZozm8fpuZJZnZouB/d4Yzj0g0OHw0gyFjFvGXCavo06YmX9zXXcVJJAcnvIIys1Lufto35AZX3n0DuJDA9EhzzWycu6/IdujH7v7A6X6OSEGyec8hBo2az6rtB/hdnxbc26uJ+ptETiC3K6iZAGY26jTP3RlY5+4J7n4UGANceZrnEinwZqzdxRX/nMGWvYcYcVsn7ju3qYqTSC5y64MqaWa3At3N7OrsL7r7Fyc5dx1gc5btRKBLDsddY2Y9gTXAr919c/YDzGwQMAigfv36J/lYkeji7gybvoG/fr2SptXLMfTmeBpWVZOeyMnkVqDuAW4EKgFXZHvNgZMVqJx+NfRs2+OB0e5+xMzuAd4Dev/sTe5DgaEA8fHx2c8hErUOH83g0S+W8K9FW7mkTU1evK495Urp/iaRUJzwb4q7zwBmmNk8dx9+GudOBOpl2a4LbM16gLvvzrL5DvC30/gckai0ec8h7h41n5XbD/DIxS2471z1N4mcilB+lRtlZoOBnsHt/wJvh7Cq7lygmZk1ArYA/YEbsh5gZrXcfVtwsy+wMuTkIlHsh3W7uP+jBaRnOiNu7cR5LatHOpJIgRNKgXoTKBF8BLgZeAvIdUi4u6eb2QPAJCAGGOHuy83sWWCeu48DBptZXyAd2INmSZcCzt0ZPmMDf5mwkibVyjH0lngaqb9J5LSYe+5dOma22N3bn2xffomPj/d58+ZF4qNFcnX4aAaPfbGELxdt5eIzavDy9R3U3ySSAzOb7+7xJzsulL89GWbWxN3XB0/cGMj4pQFFCpPEvYH+phXbDvDbi5pz37lNKVZM/U0iv0QoBeoRYKqZJRAYmdcAuD2sqUQKiENH0/l8fiJ//2YtaemZDL81nt4ta0Q6lkihEMpcfN+aWTOgBYECteqXzDAhUhjsOJDKez9s5MPZP7L/cBod61fi5eva07hauUhHEyk0QmogDxakJWHOIhL1lm/dz/DpGxi/ZCvpmc7FrWtyV89GnFm/soaQi+Qx9eCKnERmpjN19U6GTd/AzITdlCkZw41dGnD72Q01yatIGKlAiZzA4aMZfLEwkeEzNpCQlEKtirE8dklL+neuT8XSJSIdT6TQO2mBMrPPgRHA1+6eGf5IIpG182Aqo2Zu4oNZm9h7KI22dSryWv8OXNq2FiViwrpCjYhkEcoV1FsERu29bmafAiPdfVV4Y4nkv5XbDjB8xgbGLdpKWmYmF7aqwZ3nNKZTQ/UviURCKKP4vgG+MbOKwADgP2a2mcDceR+EMOWRSNTKzHT+uzaJ4dM3MGPdLkqXiGFA53rcfnYjzTguEmEh9UGZWRxwE4FpjhYCHwI9gFuBc8MVTiRcUtMy+HLhFobN2MC6ncnUqFCK3/VpwQ2d61OpTMlIxxMRQuuD+gJoCYwCrsgyuevHZqY5h6RASTp4hA9mBfqXdqcc5YzaFfj7r9pzWdvalCyu/iWRaBLKFdQwd5+Qdcex5eBDmUtJJBqs2XGQ4dM3MHbRFo6mZ3JBq+oM7NGYro2rqH9JJEqFUqCeAyZk2zcTODPv44jkHXdn+tpdDJuxgWlrkogtUYzr4+ty+9mNaKIZH0Si3gkLlJnVJLBse2kz68j/VsitAJTJh2wipyU1LYNxi7YybEYCa3YkU618KR65ONC/VLms+pdECorcrqAuJrA+U13glSz7DwKPhzGTyGnZnXyED2b9yKhZG9mVfJSWNcvz8nXtubx9LUoVj4l0PBE5Rbkt+f4e8J6ZXePun+djJpFTsm7nQYbP2MAXC7ZwJD2T81pU465zGtOtSZz6l0QKsNya+G5y9w+Ahmb2cPbX3f2VHN4mki/cnR/W72bY9ASmrk6iVPFiXH1mXQb2aEjT6uUjHU9E8kBuTXzH7lJUb7JEjSPpGYxfvI1h0xNYtf0gVcuV5OELm3Njl/rElSsV6Xgikodya+L7v+DjM/kXRyRn7s6k5dt57quVJO49TIsa5Xnh2nb0bV+b2BLqXxIpjHJr4ns9tze6++C8jyPyc2t2HOSZ8cv5ft1uWtQoz8jbO9GreTX1L4kUcrk18c3PtxQiOdh/KI2/f7OGUbM2Ua5UcZ7pewY3dqlPcc0oLlIknGwUn0i+y8h0Pp67mZcmr2bfoaPc0KU+D1/Ygiq6h0mkSMmtie9Vd3/IzMYDnv11d+8b1mRSJM3duIenxy1n+dYDdG5Yhaf6tuaM2hUjHUtEIiC3Jr5RwceX8iOIFG3b9h/mrxNWMW7xVmpVjOUfAzpyebta6mcSKcJya+KbH3z8r5mVJDCjuQOr3f1oPuWTQi41LYNh0xN4Y+p6MtwZ3Lsp95zbhDIlQ1oJRkQKsVCW27gMeBtYT2A+vkZmdre7fx3ucFJ4uTuTV+zgua9WsHnPYfqcUZMnLmtFvSqa5lFEAkL5NfVl4Dx3XwdgZk2ArwAVKDkt63Ye5JnxK5i+dhfNa5Tjwzu7cHbTqpGOJSJRJpQCtfNYcQpKAHaGKY8UYvsPp/HaN2t5f+ZGypSM4akrWnNT1waU0LBxEclBbqP4rg4+XW5mE4BPCPRBXQfMDeXkZtYHeA2IIbDw4fMnOO5a4FOgk7trld5CJiPT+XTeZl6ctJo9h47Sv1N9fntRc01NJCK5yu2GCskdAAASe0lEQVQK6oosz3cAvYLPk4DKJzuxmcUAbwAXAonAXDMb5+4rsh1XHhgMzD6F3FJAzN+0h6fHrWDplv3EN6jMe30706aOho2LyMnlNorv9l947s7AOndPADCzMcCVwIpsx/0JeAH47S/8PIkiOw6k8vzXqxi7cAs1K8TyWv8O9G1fW8PGRSRkoYziiwUGAmcAscf2u/sdJ3lrHWBzlu1EoEu2c3cE6rn7v81MBaoQOJKewfAZG/jnlHWkZzgPnNeUe89tQtlSGjYuIqcmlH81RgGrCKyw+yxwI7AyhPfl9Kvy8RkpzKwY8HcCq/bmfiKzQcAggPr164fw0ZLf3J1vV+7kT1+tYNPuQ1zUugZ/uKw19eM0bFxETk8oBaqpu19nZle6+3tm9hEwKYT3JQL1smzXBbZm2S4PtAG+Czb71ATGmVnf7AMl3H0oMBQgPj7+Z9MuSWSt25nMs/9ewbQ1STStXo5RAztzTrNqkY4lIgVcKAUqLfi4z8zaANuBhiG8by7QzMwaAVuA/sANx1509/3A8ZtfzOw74LcaxVdwHEhN4x/fruXd7zdSukQMT17emlu6adi4iOSNUArUUDOrDDwJjCOwwu6TJ3uTu6eb2QMErrZigBHuvtzMngXmufu4X5BbIigz0/lsfiIvTFrF7pSj/Cq+Hr+9uAVVNWxcRPKQuResFrP4+HifN08XWZGy4Me9PDNuOYsT93Nm/Uo807cNbetq2LiIhM7M5rt7/MmOC2UUXxzwNHA2gUEO04E/ufvuXxpSCo6dB1J5fuIqvliwherlS/HqrzpwZQcNGxeR8AmliW8MMA24Jrh9I/AxcEG4Qkn0OJKewbvfb+Qf364lLcO599wm3H9eU8pp2LiIhFko/8pUcfc/Zdl+zsyuClcgiR5TV+3k2X+vYMOuFC5oVYM/XNaKhlXLRjqWiBQRoRSoqWbWn8BcfADXEpjNXAqpXclHeHrccv69ZBuNq5Vl5O2dOLdF9UjHEpEiJrfJYg8S6HMy4GHgg+BLxYBk4Kmwp5N85e78a9FWnhm/nJQjGfz2ouYM6tmEksU1bFxE8l9uc/GVz88gEllb9x3mD18uY8qqnXSsX4kXrmlHsxr6ERCRyAmpp9vM+gI9g5vfufu/wxdJ8lNmpvPRnB95/utVZGQ6f7y8Nbd2b0hMMY3OE5HICmWY+fNAJ+DD4K4hZtbD3R8NazIJu427Uvj950uYvWEPZzeN46/92mnuPBGJGqFcQV0KdHD3TAAzew9YCKhAFVDpGZmM+H4DL09eQ8nixfjbNW25Pr6e7mkSkagS6s0slYA9weeaNqAAW7X9AL//bAmLE/dzYesaPHdVG2pUiD35G0VE8lkoBeqvwEIzm0pgRF9P4LGwppI8dzQ9kzemruPN79ZRIbYE/xjQkcvb1dJVk4hErVwLlAX+9ZoBdCXQD2XA7919ez5kkzyyaPM+fv/ZElbvOEi/jnV48vLWVClbMtKxRERylWuBcnc3sy/d/SwCM5lLAXL4aAav/Gc1w2dsoEaFWEbcFk/vljUiHUtEJCShNPHNMrNO7j437Gkkz8xcv5tHv1jCpt2HuKFLfR67pCXlY0tEOpaISMhCKVDnAfeY2UYghUAzn7t7u3AGk9NzIDWNv05Yxeg5P9Igrgyj7+pKtyZxkY4lInLKQilQl4Q9heSJKat28PgXy9h5MJVBPRvz6wuaU7pkTKRjiYicltzm4osF7gGaAkuB4e6enl/BJHR7Uo7y7PjlfLloKy1qlOftm8+iQ71KkY4lIvKL5HYF9R6QRmCBwkuA1sCQ/AgloXF3xi/ZxtPjlnMwNY2HLmjGfec21eSuIlIo5FagWrt7WwAzGw7MyZ9IEoodB1J5Yuwyvlm5g/Z1K/LCtV1pUVOTu4pI4ZFbgUo79sTd03VDZ3Rwdz6eu5k/T1hJWkYmT1zaijt6NNLkriJS6ORWoNqb2YHgcwNKB7ePjeKrEPZ08hM/7j7EY2OX8P263XRtXIXnr26nFW5FpNDKbT0oDf+KEhmZzsgfNvLSpNXEFDP+0q8t/TvVo5iumkSkEAt1sliJkLU7DvK7z5ew8Md99G5ZnT/3a0OtiqUjHUtEJOxUoKJUWkYmb3+3nn9MWUfZUjG81r8DfdvX1uSuIlJkqEBFoaWJ+3nks8Ws2n6QK9rX5qkrWlO1XKlIxxIRyVcqUFEkNS2DV79ZyzvTE4grW5J3bonnwtaa3FVEiiYVqCgxZ8MeHv18CQm7UujfqR6PXdqKiqU1uauIFF0qUFHgjanreHHSaupVKc2Hd3bh7KZVIx1JRCTiVKAiyN35+zdref3btVzVoTZ/ubotZUrqf4mICEBYJ20zsz5mttrM1pnZozm8fo+ZLTWzRWY2w8xahzNPNHF3Xpy0mte/Xcv18XV5+foOKk4iIlmErUCZWQzwBv+baHZADgXoI3dv6+4dgBeAV8KVJ5q4O3+ZsJI3v1vPDV3q8/zV7TRVkYhINuG8guoMrHP3BHc/CowBrsx6gLsfyLJZFvAw5okK7s4z41fwzvQN3NqtAX++qo1mhBARyUE425TqAJuzbCcCXbIfZGb3Aw8DJYHeOZ3IzAYBgwDq16+f50HzS2am88dxy/hg1o8M7NGIP1zWSjfeioicQDivoHL6l/dnV0ju/oa7NwF+D/whpxO5+1B3j3f3+GrVquVxzPyRmek8PnYpH8z6kXt6NVFxEhE5iXAWqESgXpbtusDWXI4fA1wVxjwRk5HpPPLZEsbM3cyDvZvy+z4tVJxERE4inAVqLtDMzBqZWUmgPzAu6wFm1izL5mXA2jDmiYj0jEwe/mQRny9I5NcXNOc3F6k4iYiEImx9UMFFDh8AJgExwAh3X25mzwLz3H0c8ICZXUBgccS9wK3hyhMJaRmZPPTxIr5aso1HLm7B/ec1jXQkEZECI6w33rj7BGBCtn1/zPJ8SDg/P5KOpmcyePRCJi7fzhOXtuKuno0jHUlEpEDRnaFhcCQ9g/s/XMA3K3fy1BWtuf3sRpGOJCJS4KhA5bHUtAzu+WA+361O4k9XteHmrg0iHUlEpEBSgcpDh49mMGjUPGas28XzV7elf+eCe8+WiEikqUDlkUNH0xk4ch6zNuzmxWvbc+1ZdSMdSUSkQFOBygPJR9K54925zNu0h79f34GrOtaJdCQRkQJPBeoXOpCaxm0j5rA4cT+vD+jI5e1qRzqSiEihoAL1C+w/nMYtI+awfMt+3rihI33a1Ip0JBGRQkMF6jTtO3SUm4bPZvX2g7x101lc2LpGpCOJiBQqKlCnYXfyEW4aPof1SckMvTme81pWj3QkEZFCRwXqFCUdPMJNw2azcXcKw26Jp2fzgjm7uohItFOBOgU7D6Qy4J1ZbN2Xyru3daJ706qRjiQiUmipQIVo2/7D3PDObHYcSGXk7Z3o0jgu0pFERAo1FagQJO49xA3vzGZPylFGDezMWQ2qRDqSiEihpwJ1Epv3HKL/0FkcSE3jgzu70KFepUhHEhEpElSgcrFxVwo3vDOLlKMZfHRnV9rWrRjpSCIiRYYK1AmsT0rmhndmcTQ9k9F3daV17QqRjiQiUqSoQOVg7Y6D3DBsNu7OmEHdaFGzfKQjiYgUOcUiHSDarNp+gP5DZwEwZlBXFScRkQhRgcpi+db9DBg6ixIxxfh4UFeaVldxEhGJFDXxBS1N3M9Nw2dTtmQMowd1pUFc2UhHEhEp0lSggIU/7uWWEXOoWLoEo+/qSr0qZSIdSUSkyCvyBWrexj3c9u5c4sqV5KO7ulKnUulIRxIREYp4H9TshN3cMmIO1cuX4uNB3VScRESiSJEtUD+s28Wt786hdqXSjBnUlZoVYyMdSUREsiiSBWramiRuHzmXBlXKMvqurlSvoOIkIhJtilwf1NRVO7l71HyaVC/Hh3d2oUrZkpGOJCIiOShSBSo1LYMnxi6lRc3yjBrYmUplVJxERKJVkSpQsSVieH9gF6qVL0XF0iUiHUdERHIR1j4oM+tjZqvNbJ2ZPZrD6w+b2QozW2Jm35pZg3DmAWhavZyKk4hIARC2AmVmMcAbwCVAa2CAmbXOdthCIN7d2wGfAS+EK4+IiBQs4byC6gysc/cEdz8KjAGuzHqAu09190PBzVlA3TDmERGRAiScBaoOsDnLdmJw34kMBL4OYx4RESlAwjlIwnLY5zkeaHYTEA/0OsHrg4BBAPXr18+rfCIiEsXCeQWVCNTLsl0X2Jr9IDO7AHgC6OvuR3I6kbsPdfd4d4+vVq1aWMKKiEh0CWeBmgs0M7NGZlYS6A+My3qAmXUE/o9AcdoZxiwiIlLAhK1AuXs68AAwCVgJfOLuy83sWTPrGzzsRaAc8KmZLTKzcSc4nYiIFDFhvVHX3ScAE7Lt+2OW5xeE8/NFRKTgMvccxy1ELTNLAjZFOkcYVAV2RTpEAaHvKnT6rkKn7yo0efE9NXD3kw4oKHAFqrAys3nuHh/pHAWBvqvQ6bsKnb6r0OTn91Qkl9sQEZHopwIlIiJRSQUqegyNdIACRN9V6PRdhU7fVWjy7XtSH5SIiEQlXUGJiEhUUoESEZGopAIVYWZWz8ymmtlKM1tuZkMinSmamVmMmS00s39HOks0M7NKZvaZma0K/mx1i3SmaGVmvw7+3VtmZqPNLDbSmaKFmY0ws51mtizLvipm9h8zWxt8rByuz1eBirx04Dfu3groCtyfw8KO8j9DCEydJbl7DZjo7i2B9ug7y5GZ1QEGE1g4tQ0QQ2DeUAkYCfTJtu9R4Ft3bwZ8G9wOCxWoCHP3be6+IPj8IIF/SHJbN6vIMrO6wGXAsEhniWZmVgHoCQwHcPej7r4vsqmiWnGgtJkVB8qQw6oLRZW7TwP2ZNt9JfBe8Pl7wFXh+nwVqChiZg2BjsDsyCaJWq8CvwMyIx0kyjUGkoB3g82hw8ysbKRDRSN33wK8BPwIbAP2u/vkyKaKejXcfRsEfsEGqofrg1SgooSZlQM+Bx5y9wORzhNtzOxyYKe7z490lgKgOHAm8Ja7dwRSCGMzTEEW7D+5EmgE1AbKBhdQlSigAhUFzKwEgeL0obt/Eek8UepsoK+ZbQTGAL3N7IPIRopaiUCiux+7Ev+MQMGSn7sA2ODuSe6eBnwBdI9wpmi3w8xqAQQfw7aWnwpUhJmZEegrWOnur0Q6T7Ry98fcva67NyTQiT3F3fWbbg7cfTuw2cxaBHedD6yIYKRo9iPQ1czKBP8uno8GlJzMOODW4PNbgX+F64PCuh6UhORs4GZgqZktCu57PLiWlsjpehD4MLiadQJwe4TzRCV3n21mnwELCIyoXYimPDrOzEYD5wJVzSwReAp4HvjEzAYSKPDXhe3zNdWRiIhEIzXxiYhIVFKBEhGRqKQCJSIiUUkFSkREopIKlIiIRCUVKBERiUoqUCIhMrOnzey3p/G+H4KPDbMuWyAiuVOBEgkzd4+qqXOCs3aLRD0VKJFcmNkTZrbazL4BWgT3NTGziWY238ymm1nL4P4aZjbWzBYH/+se3J+cw3ljzOxFM5trZkvM7O5cMtQys2lmtii4qN45wf19zGxB8LO+De6rYmZfBs85y8zaBfc/bWZDzWwy8P6pfL5IpOg3KZETMLOzCMz715HA35UFwHwCU+Hc4+5rzawL8CbQG3gd+K+79zOzGKBcLqcfSGBph05mVgr43swmu/uGHI69AZjk7n8OnreMmVUD3gF6uvsGM6sSPPYZYKG7X2VmvYH3gQ7B184Cerj7YTMbdAqfLxIRKlAiJ3YOMNbdDwGY2TgglsBs158G5hYFoFTwsTdwC4C7ZwD7czn3RUA7M7s2uF0RaAbkVCDmAiOCs95/6e6LzOxcYNqxguLuxxaV6wFcE9w3xczizKxi8LVx7n74ND5fJCJUoERyl32yymLAPnfvkNPBp8CAB9190kkDuE8zs54EVhMeZWYvAvtyyHbsvD87RfAx5XQ+XyRS1AclcmLTgH5mVtrMygNXAIeADWZ2HQSWSzGz9sHjvwXuDe6PCS69fiKTgHuDV0WYWfMTrXprZg0ILNb4DoGlWc4EZgK9zKxR8JhjTXzTgBuD+84Fdp1gAcyQP18kUnQFJXIC7r7AzD4GFgGbgOnBl24E3jKzPwAlCCyguBgYAgwNLkOQQaBYzTzB6YcBDYEFwXWIkoCrTnDsucAjZpYGJAO3uHtSsB/pCzMrRmDRuAuBpwks9b6EQDG9NedTntLni0SEltsQEZGopCY+ERGJSmriE4kSZtYWGJVt9xF37xKJPCKRpiY+ERGJSmriExGRqKQCJSIiUUkFSkREopIKlIiIRKX/B1by3DcXDmc2AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cal_all = calibration_curve(cp)\n", "cal_all.plot()\n", "decorate(ylabel='Probability of recidivism')" ] }, { "cell_type": "code", "execution_count": 142, "metadata": {}, "outputs": [], "source": [ "def individual_fnr(actual_prob_recid, cal, thresh, std_dev):\n", " \"\"\"Compute an individual FNR.\n", " \n", " actual_prob_recid: actual probability of recidivism\n", " cal: calibration curve, map from score to prob_recid\n", " thresh: threshold between low and not low risk\n", " std_dev: standard deviation of the error function\n", " \n", " returns: individual FNR\n", " \"\"\"\n", " # look up actual_prob_recid to get correct score\n", " correct_score = crossing(cal, actual_prob_recid)\n", "\n", " # make the error distribution\n", " error_dist = make_error_dist(std_dev)\n", "\n", " # loop through possible errors\n", " total_prob = 0\n", " for error, prob_error in error_dist.iteritems():\n", " # hypothetical score\n", " score = correct_score+error\n", " score = max(score, 1)\n", " score = min(score, 10)\n", " \n", " # probability of being classified 'low' | error\n", " prob_negative = 0 if score >= thresh else 1\n", "\n", " # probability of being a false negative | error\n", " prob_fp = prob_negative * actual_prob_recid\n", " \n", " total_prob += prob_error * prob_fp\n", " return total_prob" ] }, { "cell_type": "code", "execution_count": 143, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.29304232602673336" ] }, "execution_count": 143, "metadata": {}, "output_type": "execute_result" } ], "source": [ "individual_fnr(0.3, cal_all, 4.5, 2)" ] }, { "cell_type": "code", "execution_count": 144, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.14613436849783573" ] }, "execution_count": 144, "metadata": {}, "output_type": "execute_result" } ], "source": [ "individual_fnr(0.5, cal_all, 4.5, 2)" ] }, { "cell_type": "code", "execution_count": 145, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 145, "metadata": {}, "output_type": "execute_result" } ], "source": [ "individual_fnr(0.7, cal_all, 4.5, 2)" ] }, { "cell_type": "code", "execution_count": 146, "metadata": {}, "outputs": [], "source": [ "def compute_fnr_vs_prob_recid(cal, thresh, std_dev):\n", " \"\"\"Computes FNR as a function of probability of recidivism.\n", " \n", " cal: calibration curve, map from score to prob_recid\n", " thresh: threshold between low and not low risk\n", " std_dev: standard deviation of the error function\n", " \n", " returns: Series\n", " \"\"\"\n", " prob_recid_array = np.linspace(min(cal), max(cal), 21)\n", " prob_fnr_series = pd.Series(index=prob_recid_array)\n", " for prob_recid in prob_recid_array:\n", " fnr = individual_fnr(prob_recid, cal, thresh, std_dev)\n", " prob_fnr_series[prob_recid] = fnr\n", " return prob_fnr_series" ] }, { "cell_type": "code", "execution_count": 147, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xd4FlX2wPHvSYdAKCEIpNFL6BAIBAV1VVAEREEQUcGCIOiqW8RV113LLq7+1rKLbVVULICiiBUbRSnSO9JbqKGXQOr5/TFvMISUN5C3JDmf55nnzTszd+awLjnMnXvvEVXFGGOM8TcBvg7AGGOMKYglKGOMMX7JEpQxxhi/ZAnKGGOMX7IEZYwxxi9ZgjLGGOOXPJqgRKSXiKwXkU0iMraI8waIiIpIYp59D7varReRnp6M0xhjjP8J8tSFRSQQGA9cCaQAi0RkuqquzXdeVeA+4Jc8+xKAwUBLoB7wvYg0VdVsT8VrjDHGv3jyCaozsElVt6hqBjAJ6FfAeU8C/wJO59nXD5ikqumquhXY5LqeMcaYCsJjT1BANLAzz/cUICnvCSLSHohV1S9E5I/52i7I1zY6/w1EZAQwAiA8PLxj8+bNSyl0Y4wxpWXJkiUHVDWqpO08maCkgH1n1lUSkQDgeWBYSdue2aH6OvA6QGJioi5evPi8AjXGGOM5IrL9fNp5MkGlALF5vscAu/N8rwq0AmaJCEAdYLqI9HWjrTHGmHLOk++gFgFNRKSBiITgDHqYnntQVY+qai1Vra+q9XG69Pqq6mLXeYNFJFREGgBNgIUejNUYY4yf8dgTlKpmicgYYAYQCLylqmtE5AlgsapOL6LtGhGZAqwFsoDRNoLPGGMqFikv5TbsHZQxZVNmZiYpKSmcPn26+JONXwsLCyMmJobg4OCz9ovIElVNLKRZoTz5DsoYY4qVkpJC1apVqV+/Pq730aYMUlUOHjxISkoKDRo0KJVr2lJHxhifOn36NJGRkZacyjgRITIyslSfhC1BGWN8zpJT+VDa/x0tQZny5dge2LfG11EYY0qBvYMyZV/6Cfj1C1gxCbbOBgmA0QshspGvIzPGXAB7gjJlU042bPoBPhkBzzWFT++GQ5uh2+8hIBjmPOvrCE0ZEhgYSLt27c5s27ZtY9asWYgIn3/++Znzrr32WmbNmgXApZdeSrNmzWjbti2dOnVi+fLl53XvWbNmMW/evEKPV6lSxe1rDRs2jI8//vi84ijO+++/T5s2bWjTpg3JycmsWLHCI/fJy56gTNmyd5XzpLTqYzixF0KrQesB0HYwxHaBgADIzoQFL8Mlf4RajX0dsSmBv3++hrW7j5XqNRPqRfB4n5ZFnlOpUqVzEsy2bduIiYnh6aefpk+fPgW2e//990lMTGTChAn86U9/4rvvvitxfLNmzaJKlSokJyeXuK03NWjQgNmzZ1OjRg2+/vprRowYwS+//FJ8wwtgT1DG/x3bDXNfhJeT4dWL4ZdXIboDDHwH/rgB+r4E8clOcgLodj8EhcHsZ3wbtynz2rZtS7Vq1YpNPF27dmXXrl3FXu+ll14iISGBNm3aMHjwYLZt28arr77K888/T7t27fjpp5/YunUrXbt2pVOnTjz22GNFXk9VGTNmDAkJCfTu3Zv9+/efObZkyRJ69OhBx44d6dmzJ3v27GHdunV07vxbYYht27bRpk2bYuMGSE5OpkaNGgB06dKFlJQUt9pdCHuCMv4p/QSs+xxWToItswGF6ES45jloeT2ERxbetkoUdL4L5r4E3f8IUc28Fra5MMU96XjKqVOnaNeuHeA8KXz66adnjj366KM8+uijXHnllYW2/+abb7juuuuKvc+4cePYunUroaGhHDlyhOrVqzNy5EiqVKnCH//oFHTo27cvo0aN4tZbb2X8+PFFXu/TTz9l/fr1rFq1in379pGQkMDtt99OZmYm9957L5999hlRUVFMnjyZRx55hLfeeouMjAy2bNlCw4YNmTx5MjfeeCMADzzwADNnzjznHoMHD2bs2LPrzb755ptcffXVxf55L5QlKONfts+HxW85gx4y06B6PHT/E7QZVLLuuuTfw8I3nKeoAW95Ll5TLhTUxZfrkksuAeCnn34659jNN9/MyZMnyc7OZunSpcXep02bNtx8881cd911hSa0uXPnMnXqVABuueUWHnrooUKvN2fOHG666SYCAwOpV68el19+OQDr169n9erVZ5JqdnY2devWBeDGG29kypQpjB07lsmTJzN58mQAnn/++WLjB5g5cyZvvvkmP//8s1vnXwhLUMY/nDwA3z4KKz6EsGrQ5kZoMxjiusD5zK0Ij4Sku+Hn550EV7tF6cdsKoxHHnmEp59+mqCgs39lvv/+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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "s = compute_fnr_vs_prob_recid(cal_all, thresh=4.5, std_dev=2)\n", "s.plot(label='FNR, std_dev=2')\n", "\n", "s = compute_fnr_vs_prob_recid(cal_all, thresh=4.5, std_dev=1)\n", "s.plot(label='FNR, std_dev=1')\n", "\n", "decorate(xlabel='Actual probability of recidivism',\n", " ylabel='Probability of false negative')" ] }, { "cell_type": "code", "execution_count": 148, "metadata": {}, "outputs": [], "source": [ "def individual_fnr_given_score(actual_score, cal, thresh, std_dev):\n", " \"\"\"Compute an individual FNR.\n", " \n", " actual_score: score assigned\n", " cal: calibration curve, map from score to prob_recid\n", " thresh: threshold between low and high risk\n", " std_dev: standard deviation of the error function\n", " \n", " returns: individual FNR\n", " \"\"\"\n", " # make the error distribution\n", " error_dist = make_error_dist(std_dev)\n", "\n", " # loop through possible errors\n", " total_prob = 0\n", " for error, prob_error in error_dist.iteritems():\n", " # correct score\n", " correct_score = actual_score-error\n", " correct_score = max(correct_score, 1)\n", " correct_score = min(correct_score, 10)\n", " \n", " # map from correct score to probability of recidivism.\n", " # if calibration curves are different for different\n", " # groups, this one should be group specific.\n", " correct_prob_recid = interpolate(cal, correct_score)\n", " cond_ifnr = individual_fnr(correct_prob_recid,\n", " cal, thresh, std_dev)\n", " \n", " total_prob += prob_error * cond_ifnr\n", " return total_prob" ] }, { "cell_type": "code", "execution_count": 149, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.09711411113575788" ] }, "execution_count": 149, "metadata": {}, "output_type": "execute_result" } ], "source": [ "individual_fnr_given_score(6, cal_all, thresh=4.5, std_dev=2)" ] }, { "cell_type": "code", "execution_count": 150, "metadata": {}, "outputs": [], "source": [ "def make_ifnr_series(cal, thresh, std_dev):\n", "\n", " scores = np.arange(1, 11)\n", " t = [individual_fnr_given_score(score, cal, thresh, std_dev)\n", " for score in scores]\n", " \n", " ifnr_series = pd.Series(t, scores)\n", " return ifnr_series" ] }, { "cell_type": "code", "execution_count": 151, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xd4FlX2wPHvyZtKTYBQQ5feIXQFsQGiYKcooqiIgrqytl131/1Z2dW14OJiQbGggNiwIDaa9IQOEekQeu+Qdn5/zBsMEJIJyVuSnM/zzPOWuXfmEDGHO3PnHlFVjDHGmGATEugAjDHGmOxYgjLGGBOULEEZY4wJSpagjDHGBCVLUMYYY4KSJShjjDFByRKUMcaYoGQJyhhjTFCyBGWMMSYohfry4CLSA3gN8ADvqOrIs/YPBYYB6cBRYIiqrhaRWkASsMbbdL6qDs3pXBUqVNBatWoVaPzGGGMKXmJi4l5Vjc2tnfhqqSMR8QC/A1cCycAioL+qrs7SpoyqHva+7w3cr6o9vAnqG1Vt6vZ88fHxmpCQUIB/AmOMMb4gIomqGp9bO19e4msHrFPVDaqaAkwA+mRtkJmcvEoCtjCgMcYYwLcJqhqwNcvnZO93ZxCRYSKyHvg38GCWXbVFZImIzBSRS7I7gYgMEZEEEUnYs2dPQcZujDEmwHyZoCSb784ZIanqaFWtCzwO/M379Q6ghqq2AkYAH4tImWz6vqWq8aoaHxub6+VMY4wxhYgvJ0kkA9WzfI4DtufQfgLwPwBVPQWc8r5P9I6w6gN2k8mYIi41NZXk5GROnjwZ6FBMPkVGRhIXF0dYWNgF9fdlgloE1BOR2sA2oB8wIGsDEamnqmu9H3sBa73fxwL7VTVdROoA9YANPozVGBMkkpOTKV26NLVq1UIkuwsxpjBQVfbt20dycjK1a9e+oGP4LEGpapqIDAem4Uwzf1dVV4nI00CCqk4BhovIFUAqcAAY5O3eBXhaRNJwpqAPVdX9vorVGBM8Tp48acmpCBARypcvT37mB/j0OShV/Q747qzv/pHl/UPn6fcZ8JkvYzPGBC9LTkVDfv872koSxr20FNi6EHz07JwxxmRlCcq4s2EmjOkMY6+E7x6FjIxAR2SMKeIsQZmcHdkFn90DH/SG9BRo3g8WvQ3fPGRJyhRZHo+Hli1bnt42bdrEjBkzEBG+/vrr0+2uueYaZsyYAcCll15KgwYNaNGiBW3btmXp0qUXdO4ZM2Ywd+7c8+4vVaqU62PdcccdTJ48+YLiyM348eNp3rw5zZs3p1OnTixbtqzAz+HTe1CmEMtIh0Vj4ZdnIO0kdH0cLn4YQiOhbBzMfgnS06DPfyHEE+hoTRH1f1+vYvX2w7k3zIPGVcvw1LVNcmwTFRV1ToLZtGkTcXFxPPfcc1x77bXZ9hs/fjzx8fG89957PProo/z44495jm/GjBmUKlWKTp065bmvP9WuXZuZM2cSExPD1KlTGTJkCAsWLCjQc9gIypxrWyK83Q2mPgrVWsN986DbXyEsCkTg8r9Dtydh2cfwxb1OojKmGGjRogVly5bNNfF07NiRbdu25Xq8UaNG0bhxY5o3b06/fv3YtGkTY8aM4ZVXXqFly5bMnj2bjRs30rFjR9q2bcvf//73HI+nqgwfPpzGjRvTq1cvdu/efXpfYmIiXbt2pU2bNnTv3p0dO3aQlJREu3btTrfZtGkTzZs3zzVugE6dOhETEwNAhw4dSE5OdtUvL2wEZf5w4gD8/AwkvAulKsFN70GT652kdLauj4EnDH76p3Pp78axzmdjClBuIx1fOXHiBC1btgSckcIXX3xxet/f/vY3/va3v3HllVeet//333/Pddddl+t5Ro4cycaNG4mIiODgwYNER0czdOhQSpUqxSOPPAJA7969ue+++7j99tsZPXp0jsf74osvWLNmDStWrGDXrl00btyYwYMHk5qaygMPPMBXX31FbGwsEydO5Mknn+Tdd98lJSWFDRs2UKdOHSZOnMgtt9wCwMMPP8z06dPPOUe/fv144oknzvhu7Nix9OzZM9c/b15ZgjLOrLxlE+CHv8GJ/dDhPrj0LxB5zupSZ7r4YfCEw7S/Qnoq3DwOQiP8ErIxvpTdJb5Ml1ziLA06e/bsc/bdeuutHDt2jPT0dBYvXpzreZo3b86tt97Kddddd96ENmfOHD77zHnqZuDAgTz++OPnPd6sWbPo378/Ho+HqlWrctlllwGwZs0aVq5ceTqppqenU6VKFQBuueUWJk2axBNPPMHEiROZOHEiAK+88kqu8QNMnz6dsWPH8uuvv7pqnxeWoIq73Unw7Z9h8xyIawu9voAq7ob4AHQc5iSp7x6BCbdC348gLNJ38RoTBJ588kmee+45QkPP/BU6fvx4WrRowRNPPMGwYcP4/PPPczzOt99+y6xZs5gyZQrPPPMMq1atyrZdXp4nyq6tqtKkSRPmzZt3zr6+ffty8803c8MNNyAi1KtXD3A3glq+fDl33303U6dOpXz58q5jdMvuQRVXKcfgx6dgzMWwaxVc+xoM/iFvySlTu3uc/ut+gk/6Qsrxgo/XmCBy1VVXceDAgWxnroWFhfHss88yf/58kpKSALj99ttZuHDhGe0yMjLYunUr3bp149///jcHDx7k6NGjlC5dmiNHjpxu17lzZyZMmAA4CTAnXbp0YcKECaSnp7Njx47TCaZBgwbs2bPndIJKTU09nQzr1q2Lx+PhmWeeoW/fvqeP9corr7B06dJztszktGXLFm644QY+/PBD6tevn6efn1uWoIobVUj6Bka3hzmvQot+8EAitLkDQvLx16HNHXDdG7BxFnx8C5w6WlARGxOUnnzyyfNODIiKiuLPf/4zL730EuCMNDIvqWVKT0/ntttuo1mzZrRq1YqHH36Y6Ohorr32Wr744ovTkyRee+01Ro8eTdu2bTl06FCOMV1//fXUq1ePZs2acd9999G1a1cAwsPDmTx5Mo8//jgtWrSgZcuWZ0xl79u3Lx999NHp+09uPP300+zbt4/777+fli1bEh+fa/3BPPNZRV1/s4q6LhzYBFMfh9+/h4qNodfLULNjwZ5jxWT4fIhzufDWT3O/j2XMWZKSkmjUqFGgwygwhw8f5q677uLTTz8NdCgBkd1/T7cVde0eVHGQdgrmvg6zXgIJgauehfZDfTPrrtlNEBIKn90FH14Pt30GUdEFfx5jCokyZcoU2+SUX5agiroNM+DbR2DfWmjcB7q/AGXPKWxcsJpc5yS/SYOcFSgGfgklyvn2nMYUIytWrGDgwIFnfBcREVHgD8oGmiWoourITpj2JKycDDG14NbJUO/8z20UuIa9oP8nzsy+9691klQpq3psTEFo1qzZBS+lVJjYJImiJiMdFrwJ/20LSVOcJYrun+/f5JSp3pUwYCLsWw/vX+Os62eMMS5ZgipKkhPhrUth6mNQrY2TmDKXKAqUut3gtslwcCuMuxoObw9cLMaYQsUSVFFw4gB8/Sd453I4uttZomjgF1C+bqAjc9S6GAZ+7oyg3rvaSVbGGJMLS1CFmSos/Rhej4fF7ztLFA1fBE1vyH79vECq0QFu/xKO73eS1P6NgY7IGBPkLEEVVruTnF/0X94H5erAkJnQ44Xgfu4oLh4GTYGUIzCul3NvypggZPWgcvfbb7/RsWNHIiIiTj+QXNBsFl9hc+oozPwXzH8DIkrDtaOg1cD8rQLhT1VbwqBvnOnn713tJKzYBoGOygSrqU/AzhUFe8zKzaDnyBybWD2o3JUrV45Ro0bx5Zdf+uwcheS3mnGWKPraWaJo7ihniaLhidBmUOFJTpkqN4U7vgXNcEZSu1YHOiJjXLF6UH+oWLEibdu2JSzMd2V2bARVGOzf6CxRtHYaVGwCN4117ukUZhUbwZ3fOc9Ijevl3J+q0iLQUZlgk8tIx1esHlTe6kH5ik8TlIj0AF4DPMA7qjryrP1DgWFAOnAUGKKqq737/gLc5d33oKpO82WsQSntFMwZ5ZRXFw9c9Ry0v7foFAasUM+bpHp7H+b9wpkeb0yAWT0o9/WgfMln14ZExAOMBnoCjYH+ItL4rGYfq2ozVW0J/Bt42du3MdAPaAL0AN7wHq/4OLwD3uwC05+F+t2d2Xmdhhed5JSpXB3ncl9kNHxwHWxdmHsfYwIssx7U2caPH8/GjRsZMGAAw4YNy/U43377LcOGDSMxMZE2bdqQlpaWbbuCqgeVWTJjxYoV/PDDD4CzkvmkSZP4/fffz6kHlXWiSOY2cqT/RrW+vHnRDlinqhtUNQWYAPTJ2kBVD2f5WBLIXFq9DzBBVU+p6kZgnfd4xcOxffDhdXAoGQZMgls+8P36eYEUU9MZSZWMdRaY3TQn0BEZkyOrB+UfvkxQ1YCsT2Qme787g4gME5H1OCOoB/PYd4iIJIhIwp49ewos8IA6eRg+usEpjdF/gjN6Kg7KxjlJqkxVGH+Ts8itMUGsuNeD2rlzJ3Fxcbz88ss8++yzxMXFcfjw4dw75oHP6kGJyM1Ad1W92/t5INBOVR84T/sB3vaDRGQ0ME9VP/LuGwt8p6qfne98RaIeVMpx+OhGSF4I/T4uPskpq6O74YM+sH8D9BsPF10R6IiMn1k9qKIlP/WgfDmCSgaqZ/kcB+S0ENsEIPMuYV77Fn5pKTBpIGyZBze8VTyTE0Cpis5zUhXqwSf9Yc33gY7ImHyxelAXzpcJahFQT0Rqi0g4zqSHKVkbiEi9LB97AWu976cA/UQkQkRqA/WAonv3PD3NKfC37ifoPQqa3hjoiAKrZHm4fQpUagITb3Oe/zLGnLZixYpzJi+0b98+0GEVOJ9NM1fVNBEZDkzDmWb+rqquEpGngQRVnQIMF5ErgFTgADDI23eViEwCVgNpwDBVTfdVrAGVkQFfP+iUxuj+ArS+PdARBYcS5eD2r+Cjm5zChze+bYm7GFHVPM1cK24KSz2o/N5C8tk9KH8rlPegVJ0HcBe+CZf+BS713+yYQuPUEfi4r3Pp87ox0KJv7n1MobZx40ZKly5N+fLlLUkVYqrKvn37OHLkCLVr1z5jn9t7ULaSRCD98qyTnDoOdwoLmnNFlIZbP4VP+sEX90J6CrQemHs/U2jFxcWRnJxMkZmZW4xFRkYSFxd3wf0tQQXKr686K0S0vh2uejb4ymMEk/CSzvNgE26FKcOdJNX2rkBHZXwkLCzsnH9xm+KpkK0yWkQsGgs/PeXcU7nmVUtOboRFeafe94BvR8D8MYGOyBjjY5ag/G3ZRPj2z84v2uvfhJDitYJTvoRFwi0fQqNr4fvHnXUKjTFFliUof0r6xikwWOtiuHlc0VtXzx9Cw52S9k1ugB//DrNeDHRExhgfsXtQ/rL+F5h8J1RtBf0/cS5ZmQvjCYMb3gZPuDPRRBW6PhboqIwxBcxGUP6wZYFzg79CfWdGWkTpQEdU+HlC4bo3oNnNMOMFZ+1CY0yRYgnK13Ysg/E3Q+kqTr2jEuUCHVHREeKBK58GCYEFbwY6GmNMAXOVoESkpnfFB0QkSkRsCODGnjVO+YiI0s6qCKUqBjqioqdMVWc25OIP4GTOKz0bYwqXXBOUiNwDTAYy/4kaB3zpy6CKhAObnQJ84oFBUyC6eu59zpKanpHvpUKKhQ73Q8pRJ0kZY4oMN5MkhuEUC1wAoKprRcSGAjk5vAM+6A2px51qseXr5qn76u2HeX/uJr5cug0FqkVHUS06irgY57ValtfKZSIJ9RTzK7VVW0LNi53LfO3vc+5PGWMKPTf/J59S1ZTMNbFEJJQ/Kt+as2VWwz26xxk5VW7qqltaegY/Je3ivTmbWLBxP5FhIVzXshplS4Sx7cAJkg8c56ekw+w9mnJGP0+IULlMJNVioojzJi0nkZWgWkwUVaMjiQgtBs9adbwfJgxwFt1tekOgozHGFAA3CWqmiPwViBKRK4H7Aat/kJ3Marj7N8JtkyEu17UQOXg8hQmLtvLhvM1sO3iCatFR/KVnQ/q2rU50ifBzT5GazraDJ7xJ6wTbDh5n24ETbDt4gvkb9rHz8EkyzvrnQ2zpiD9GYFkSWWYSKxVRBEYc9XtAuTow/w1LUMYUEW5+Mz0B3AWsAO4FvgPe8WVQhVLKcWfV7V0roe94qN0lx+Zrdh5h3NxNfLEkmZOpGXSoU46/X9OYKxpVzPGSXWSYh7qxpagbWyrb/anpGew8dNKbvE54k9dxkg+cYMW2Q0xbtZPU9DMzWHSJsNOXEZ0RWIkzLilGlwgL/lWlQzzO5b2pj8LWhVC9XaAjMsbkk5sE1Qf4QFXf9nUwhVbWarg3jYUGPbJtlp6h/Jy0i3FzNzF3/T4iQkO4vlU1BnWqRaMqZQoklDBPCNXLlaB6uRLZ7s/IUPYcPUWy97LhH0nsBBv3HmP22r2cSD2z9FbJcM/p+161K5Tijk61qFE+++MHVMsBMP1ZmDfaEpQxRYCbBNUbeFVEZuGUZZ+mqmm+DasQyVoN99rsq+EeOpHKpEVbeX/eJpIPnKBK2Uge69GA/m1rEFPy3Mt4vhQSIlQqE0mlMpG0qRlzzn5V5cDx1DNGXtsOei8nHjjBnPX7+Gj+ZgZ1qsnwy+pRNiqIlmuKKAVt7oC5rzuzKGNqBjoiY0w+uCpYKCJhQE+gL3Ax8KOq3u3j2PIkIAULMzKc8g9Lx0P356HjsDN2r9vtXMb7LHEbJ1LTaVerHHd0rsVVjSsV2pl3Ow+d5D8/rGHy4mSio8J46PJ63NqhJmHB8uc5tA1eaw7th0L35wIdjTEmG24LFrquqOtNUj2AO4FLVDU2fyEWLL8nqPNUw83IUKav2c24uZuYvXYv4aEh9GlRlUGdatG0Wln/xedjq7Yf4vnvkpizbh91KpTkiZ4NubJxpeC4V/XZ3bDmexixGiIL5tKpMabgFFiCEpEeQD+gGzADmAj8EGyX+fyeoH551llJu+NwuOpZDp9K49OEZD6Yt4nN+45TuUwkAzvWpF/b6pQvFeG/uPxI1UnGz32bxPo9x2hfuxx/69WYZnEBTsTbFsPb3aD7C870c2NMUCnIBDUB597TVFU9VUDxFTi/JqhfX3UKDra+nfUdnueDeZuZnJjMsZR02tSM4c7OtejepHLwXPbysdT0DCYs3MIrP61l/7EUbmhVjUe6N6BqdABXbH+3JxxOhgeXWs0tY4JMgV/iC3Z+S1CLxsK3I9hVoxeP6wPMWLufcE8I17Sowh2datE8Ltr3MQSpwydTeWP6et6dsxEB7rmkDkMvrRuY56ySvoaJt8EtH0DjPv4/vzHmvPKdoETkV1W9WESOcObKEQKoqgbVxX1/JKiTiR8T8fX9zPPEc/uxB4gpXZKBHWrSv10NYksXzct4F2Lr/uO8OG0NU5Ztp0KpCEZcWZ9b4uP8OzEkIx1ebw2lKsFdP/jvvMaYXAXFCMp7/+o1wAO8o6ojz9o/ArgbSAP2AINVdbN3XzrOw8EAW1S1d07n8mWC2rT3GPOnfsBN6/7KwoyGvFrpOW69uAE9m1YhPLR4XMa7EEu2HOC5b5NI2HyABpVK89dejeha349za+aPcUrD3/2zq1U9jDH+UZD3oD5U1YG5fZdNPw/wO3AlkAwsAvqr6uosbboBC1T1uIjcB1yqqn29+46qavbLJWSjoBOUqjJ77V7Gzd1Eyu8/827Yi2yPqsehmz+lRd28r0xeXKkq36/cycjvf2PzvuN0qR/Lk1c3okFlP1RsOXUEXm4CF10ON7/n+/MZY1xxm6Dc3BxoctaBQ4E2Lvq1A9ap6gZvvwk4q1KcTlCqOj1L+/nAbS6O61PHTqXx+eJkxs3dxPo9x7is5Ebei3wFKVePWoO/s4KDeSQi9GxWhcsaVeTDeZsZ9fNaer42i75tq/PwlfWpWDrSdyePKA1tbod5b8DBrRdU8sQYEzjnvT4lIn/x3n9qLiKHvdsRYBfwlYtjVwO2Zvmc7P3ufO4Cpmb5HCkiCSIyX0Suc3G+fNmy7zjPfrOaDi/8zN+/WkXJiFDe7R7O2NB/ERZdjdBBX1lyyoeIUA93X1KHmY92Y1CnWnyakEy3F2fw+s9rOZGSnvsBLlS7e53XhVZx15jCxs0lvhdU9S95PrDIzUD3zBUnRGQg0E5VH8im7W3AcKBr5lR2EamqqttFpA7wC3C5qq4/q98QYAhAjRo12mzevDmvYQLOZaier81m3e6j9GxWhTs716JV1G7kvashNBIGf2//+i5gG/ceY+TUJKat2kXlMpE82r0B17eqRkiIDx70/fROZymqEaudUZUxJqAKdJKEiMQA9YDT12NUdVYufToC/1TV7t7Pf/H2e+GsdlcAr+Mkp93nOdY44BtVnXy+8+X3HtTSrQepXCaSymUjnXXc3u0BGalw5/dQ4aILPq7J2YIN+3juuySWJx+iabUyPHl1YzrWLV+wJ0lOhHcugx7/gg5DC/bYxpg8c5ug3JR8vxuYBUwD/s/7+k8XMSwC6olIbREJx1mNYspZx26FU0q+d9bkJCIxIhLhfV8B6EyWe1e+0LJ6tJOcTlfDPQYDv7Tk5GPt65Tny/s782rfluw/mkL/t+dz9/sJrN9ztOBOEtcGqrd3akVl+PByojGmQLmZI/0Q0BbYrKrdgFY4U8Jz5F0KaThOQksCJqnqKhF5WkQyp4y/CJQCPhWRpSKSmcAaAQkisgyYDozMOvvPZ47vhw+vd6rh3va562q4Jn9CQoTrWlXjl0cu5dHuDZi/YR/dX5nFU1+tZP+xlNwP4EbHYXBwM6z5rmCOZ4zxOTf3oBapalsRWQq0V9VTIrJUVVv6J0R38j3N/ORhZ+S0a7VTDTeXgoPGd/YePcUrP/7OJwu3UDIilOHdLuKOzrXyV7o+Ix1GtYQy1Zx7isaYgCmwS3xAsohEA18CP4rIV8D2/AYYVDIy4JP+sHOFszSOJaeAqlAqgueub8a0P3UhvmYML0z9jcv/M5Nvlm/ngh8sz6y4u2UebEss2ICNMT6Rp5UkRKQrUBb4XlUL6NpLwcj3CGrpJ+AJg2Y3FVxQpkD8unYvz367mt92HqF1jWie7NU422KLuTp5GF5pAvWuciofG2MCoiBXksju4Z8jqpp6ocH5QkAKFhq/Sc9QPktM5qUf1rD7yCl6Na/CEz0anre0/XlNexIWjIGHlkHZON8Ea4zJUUFe4luMMynid2Ct9/1GEVksIm5WlDAm3zwhwi1tqzP9kUt58PJ6/Jy0i8v/M5Pnv0vi0Ik8/Fup/b2gGbDwLd8Fa4wpEG4S1PfA1apaQVXL45R+nwTcD7zhy+CMOVvJiFBGXFmfGY90o3fLqrw9ewNXvTKTtbuOuDtAdA1o1BsSx8GpApzKbowpcG4SVLyqTsv8oKo/AF1UdT5gNSZMQFQuG8lLN7fgq2GdyVC45c15rNx2yF3njsPh5CFY+rFvgzTG5IubBLVfRB4XkZre7THggHe18gwfx2dMjprHRfPpvR0pER5K/7fmk7h5f+6dqreFuLaw4H/24K4xQcxNghoAxOFMM/8SqO79zgPc4rvQjHGnVoWSTBrakQqlI7jtnYXMWbc3904dh8H+DfC7PRNlTLDKNUGp6l7vAq+XqGorVX1AVfeoaoqqrvNDjMbkqlp0FBPv7UCNciW4c9wiflq9K+cODa+FsjVg3mj/BGiMyTM3a/F1EpHVeNfCE5EWImKTI0zQqVg6kglDOtCwcmmGfpTI18tyeJ7cE+rM6Ns8B7Yv8V+QxhjX3FziewXoDuwDUNVlgC21YIJSTMlwxt/dntY1YnhowhImJWw9f+PWAyG8lFPQ0BgTdNwkKFT17P/L7c6yCVqlI8N4f3A7Ol9UgccmL2fcnI3ZN4wsC61vh1Wfw+GitXqXMUWBmwS1VUQ6ASoi4SLyCM7q5MYErahwD+8MiueqxpX459erGT39PLdL7cFdY4KWmwQ1FBiGU649GWjp/WxMUIsI9TD61tb0aVmVF6et4d/f/3buYrMxtaDhNZDwHqQcC0icxpjshebWQFX3Arf6IRZjClyYJ4SXb2lJiXAPb8xYz/GUdP5xTeMzS8t3HAZJU5wHd9vdE7hgjTFnyDVBiUgscA9QK2t7VR3su7CMKTieEOH565tRIjyUsb9u5NipNEbe2BxPZpKq3h6qtYH5/4P4uyDE1a1ZY4yP5ZqggK+A2cBP2OQIU0iJCH/r1YiSEaGM+nktJ1LTeaVvS8I8ISDijKImD4a106BBz0CHa4zBXYIqoaqP+zwSY3xMRBhxZX1KRXh4/rvfOJmazn8HtCYyzAON+kCZOOfBXUtQxgQFN9cyvhGRq30eiTF+MqRLXZ65rik/Je3mrvcXcexU2h8P7m6aDTuWBzpEYwzuEtRDOEnqhIgcFpEjInLY14EZ40sDO9TkPze3YN76fQwcu8CpKdX6dggrCfPtwV1jgoGbtfhKq2qIqkapahnv5zL+CM4YX7qxTRyjB7RmxbZDDHh7PvvSo5zVJVZMhiM7Ax2eMcWeTVcyxVrPZlV46/Z41u0+St+35rO3yZ2QkQYL3w50aMYUe5agTLHXrUFF3h/cjh0HT3DDhB0cr9sDEsZCyvFAh2ZMsebTBCUiPURkjYisE5Enstk/QkRWi8hyEflZRGpm2TdIRNZ6t0G+jNOYDnXK89Hd7Tl4PIURWzrDiQOw7JNAh2VMseYqQYnIxSJyp/d9rIjUdtHHA4wGegKNgf4i0visZktwSso3ByYD//b2LQc8BbQH2gFPiUiMuz+SMRemVY0YJgzpyKL0BqyiLqfmjIYMKxptTKC4qQf1FPA48BfvV2HARy6O3Q5Yp6obVDUFmAD0ydpAVaerauZ1lPk4lXvBKe/xo6ruV9UDwI9ADxfnNCZfGlctw6T7OjHRcy0RB9ezYd4XgQ7JmGLLzQjqeqA3cAxAVbcDpV30qwZkLdOR7P3ufO4Cpualr4gMEZEEEUnYs2ePi5CMyV3d2FLcM3QEu6U8u354mfkb9gU6JGOKJTcJKkWdJaAVQERKujy2ZPOdZvMdInIbEA+8mJe+qvqWqsaranxsbKzLsIzJXfXYskR1vo+OspLn3/2UGWt2BzokY4odNwlqkoi8CUSLyD04a/K5mYObDFTP8jmvFiFbAAAgAElEQVQOOKcqnIhcATwJ9FbVU3npa4wvle58NxpaggdK/Mg9HyTw/codgQ7JmGLFzYO6L+FMYPgMaAD8Q1Vfd3HsRUA9EaktIuFAP2BK1gYi0gp4Eyc5Zf0n6jTgKhGJ8U6OuMr7nTH+ExWDtLqVK9JncUnldIZ9vIQvliQHOipjig03kyRKAr+o6qM4I6coEQnLrZ+qpgHDcRJLEjBJVVeJyNMi0tvb7EWgFPCpiCwVkSnevvuBZ3CS3CLgae93xvhXh/uQ9FTGNFxK+9rlGDFpGeMXbA50VMYUC3JOhdGzG4gkApcAMTgz7RKA46oaVEUM4+PjNSEhIdBhmKLokwGwdT4nhy/n/klJ/PLbbp68uhH3dKkT6MiMKZREJFFV43Nr5+YelHingt8AvK6q1+M812RM8dDxfji+j8ikyYy5rQ29mlfhue+SePWn388tIW+MKTCuEpSIdMQp+/6t9zs3daSMKRpqdoYqLWDeG4R7hFH9WnFzmzhe/Wktz3+XZEnKGB9xk6D+hPOQ7hfee0h1gOm+DcuYICICHYbB3jWw7mc8IcK/bmzOHZ1q8fbsjTz55UoyMixJGVPQch0JqepMYGaWzxuAB30ZlDFBp8n18NNTMO+/UO8KQkKEp65tTIlwD2/MWM+JlHRevKk5oR5bf9mYgnLeBCUiX3OeB2sBVLX3+fYZU+SEhkO7e+Dnp2HXaqjUGBHhsR4NKRkRyovT1nA8JY1R/VsREeoJdLTGFAk5jaBe8lsUxhQGbe6EWS/B/NHQZ/Tpr4d1u4gS4R7+7+vV3PNBIm/e1oaocEtSxuTXeROU99KeMSZTiXLQoj8s+RAufwpKVTy9687OtSkZHsrjny9n0HsLGTsontKRuT4uaIzJgZsHdeuJyGRv3aYNmZs/gjMm6HS4H9JTYNHYc3bd0rY6o/q1YvHmAwz9KJF0mzhhTL64uaP7HvA/IA3oBnwAfOjLoIwJWhUugvo9YNE7kHrynN3XtqjKs9c1Zc66fYyZuT4AARpTdLhJUFGq+jPOA7ubVfWfwGW+DcuYINZxGBzfCysmZbu7b9vqXNO8Ci//+DuJm22FLmMulJsEdVJEQoC1IjJcRK4HKubWyZgiq9YlUKkZzHsDsnlIV0R4/oZmVI2O5MFPlnLoeGoAgjSm8HP7oG4JnGef2gC3AYN8GZQxQU3EGUXtSYL1v2TbpExkGK/3b82uwyd54vPlttqEMRfgvAlKRDLvM3VS1aOqmqyqd6rqjao630/xGROcmt4IpSrBvNHnbdKyejSPdm/A1JU7Gb9gix+DM6ZoyGkE1UZEagKDvXWZymXd/BWgMUEp88Hd9T/D7qTzNrvnkjp0qR/LM9+s5redh/0YoDGFX04JagzwPdAQSDxrs7oWxrQZDKFRMP+N8zYJCRH+c3MLSkeGMfzjJZxISfdjgMYUbudNUKo6SlUbAe+qah1VrZ1ls0I4xpQsDy36wbKJcGzveZvFlo7glb4tWLf7KE9/s8qPARpTuLkp+X6fPwIxplDqcD+kn8r2wd2sLqkXy32X1uWThVv5etl2PwVnTOFmSy8bkx+x9aHeVbDo7Wwf3M1qxJX1aVUjmr9+voKt+4/7KUBjCq+cZvFF+DMQYwqtjsPg2B5YOTnHZmGeEEb1awUCD3yyhNT0DD8FaEzhlNMIah6cMd3cGJOd2l2hUtPzPribVfVyJRh5Q3OWbj3If3743U8BGlM45ZSgwkVkENBJRG44e/NXgMYEPRHnXtTuVbBhRq7NezWvQv92NRgzcz2zft/j+/iMKaRySlBDgQ5ANHDtWds1vg/NmEKk2U1QsmKOD+5m9Y9rGlO/UilGTFrK7iM537syprjKaZr5r94ZfI95V5DIug12c3AR6SEia0RknYg8kc3+LiKyWETSROSms/ali8hS7zYlz38yY/wpNMJ5cHfdj7BnTa7No8I9vN6/NUdOpvHnScvIsNIcxpzDzSy+D0XkQW9NqMki8oCI5FqJTUQ8wGigJ9AY6C8ijc9qtgW4A/g4m0OcUNWW3s3Ky5vgFz8YPBE5PribVYPKpfnHtY2ZvXYvb822EmvGnM1NgnoDZ5HYN7xba5z6ULlpB6xT1Q2qmgJMAPpkbaCqm1R1OWDTmUzhV7KC98HdCXBsn6suA9rV4OpmlXlp2hqWbDng4wCNKVzcJKi2qjpIVX/xbncCbV30qwZszfI52fudW5EikiAi80XkuuwaiMgQb5uEPXvsZrMJAh3uh7STkJDzg7uZRIQXbmhOpTKRPPDJEg6dsNIcxmRyk6DSRaRu5gcRqQO4WVBMsvkuLxfaa6hqPDAAeDVrDKcPpvqWqsaranxsbGweDm2Mj1Rs6Dy4u2AMnDrqqkvZqDBG9W/FjkMn+esXK6w0hzFebhLUo8B0EZkhIjOBX4A/u+iXDFTP8jkOcL3Gi6pu975uAGYArdz2NSagujwGx/dBwruuu7SpGcOIK+vz7fIdTFy0NfcOxhQDbtbi+xmoh1Ow8EGggapOd3HsRUA9EaktIuFAP8DVbDxveY8I7/sKQGdgtZu+xgRc9bZQpxvMHQUp7pc0uq9rXS6+qAL//HoVa3cd8WGAxhQOrtbiU9VTqrpcVZep6imXfdKA4cA0IAmYpKqrRORpEekNICJtRSQZuBl4U0Qyl3puBCSIyDJgOjBSVS1BmcKj6+PO8keJ41x3CQkRXr6lBSXDQxn+8RJOplppDlO8SVG53h0fH68JCVamygSRcdfA3t/hoWUQFuW624w1u7njvUXc2r4Gz13fzIcBGhMYIpLonWOQI1vN3Bhf6fo4HN0Fi/O2nOWlDSoypEsdxi/YwtQVO3wUnDHBL9cEJSKfiUgvEbFkZkxe1LoYanSCX1+BNFdXxk975KoGtIgry+OfLSf5gJXmMMWTm6TzP5yp3mtFZKSINPRxTMYUDSLQ9TE4sh2WfJSnruGhIbzevzUZCg9aaQ5TTLmZxfeTqt6Ks4LEJuBHEZkrIne6WfLImGKtzqUQ1847ikrJU9ca5Uvw/A3NWLzlIK/+ZKU5TPHj6rKdiJTHWTPvbmAJ8BpOwvrRZ5EZUxSIOPeiDm2F5RPy3L13i6rcEh/HGzPWM2fdXh8EaEzwcnMP6nNgNlACuFZVe6vqRFV9ACjl6wCNKfQuuhyqtoJZL0F63pcy+mfvJtSpUJI/TVzK3qN5u5dlTGHmZgT1jqo2VtUXVHUH/FEO3s00QWOKvcxR1MHNsOLTPHcvER7Kfwe05tCJVB751EpzmOLDTYJ6Npvv5hV0IMYUafV7QOVm3lFUWp67N6pShr/3asSMNXt4d85GHwRoTPA5b4ISkcoi0gaIEpFWItLau12Kc7nPGONW5ihq/3pY9fkFHeK2DjXp3qQS//r+N5YnHyzgAI0JPjmNoLoDL+Es8voy8B/vNgL4q+9DM6aIadALKjaBWS9CRt6XMRIR/nVjc2JLRfDAJ0s4ctJKc5iiLaeS7++rajfgDlXtlmXrraoX9k9AY4qzkBDo+qiz/NHqLy/oENElwnmtfyu27j/O375caaU5TJGW0yW+27xva4nIiLM3P8VnTNHSqA/ENnTuRWVc2MO3bWuV4+Er6vPV0u1MTkwu4ACNCR45XeIr6X0tBZTOZjPG5FVICFzyCOxeDb99c8GHub/bRXSoU45/fLWKdbvdFUY0prCx1cyN8beMdBjdDkKjYOhsZwLFBdh1+CQ9X5tNpTKRfHF/JyLDPAUcqDG+4XY189AcDjAqp46q+uCFBGZMsRficUZRXw6FNVOh4dUXdJhKZSJ56ebmDB6XwAvfJfF/fZoWcKDGBFZOl/gSc9mMMReq2c0QUwtm/gvycRXjsoaVuOvi2rw/bzM/rNpZcPEZEwTOO4JS1ff9GYgxxYon1BlFTRkOa3+E+ldd8KEe69GABRv38ejk5TStVpaq0e6LIxoTzHKaxfeq9/VrEZly9ua/EI0polr0g7I18j2Kigj18Hr/1qSlZ/CnCUtJs9Icpog47wgKyCwD+pI/AjGm2PGEwSUj4Js/wYbpUPeyCz5U7Qolefb6pjw8cRmjflnHiCvrF2CgxgRGTg/qJnpfZ+KsvXcA2A/M835njMmvlgOgTBzMyN8oCuD6VnHc2DqO//6ylnnr9xVQgMYEjptyG72A9cAo4L/AOhHp6evAjCkWQiPg4j/B1vmwaXa+D/d0nybUKl+SP01cwv5jeSuQaEywcbOa+X+Abqp6qap2BboBr/g2LGOKkVYDoVRlmPnvfB+qZEQoo/q34sCxVB79dJkthWQKNTcJareqrsvyeQOw283BRaSHiKwRkXUi8kQ2+7uIyGIRSRORm87aN0hE1nq3QW7OZ0yhFBbpjKI2zYZNc/J9uKbVyvKXqxvy82+7eW/OpvzHZ0yA5DSL7wYRuQFYJSLficgd3kTxNbAotwOLiAcYDfQEGgP9RaTxWc224JSS//isvuWAp4D2QDvgKRGJcf2nMqawaT0ISlaEWfkfRQHc0akWVzSqyMipv7Fy26ECOaYx/pbTCOpa7xYJ7AK6ApcCewA3yaIdsE5VN6hqCjAB6JO1gapuUtXlwNnzYrsDP6rqflU9APwI9HBxTmMKp/AS0PlB2DADtizI9+FEhBdvakG5kuE88MkSjp7Ke5FEYwItp1l8d+awDXZx7GrA1iyfk73fueGqr4gMEZEEEUnYs2ePy0MbE6TiB0OJ8gU2ioopGc6r/Vqyed8x/vHVygI5pjH+5GYWX6SIDBORN0Tk3czNxbGzWwHT7R1bV31V9S1VjVfV+NjYWJeHNiZIhZeETg/Aup9gW8GsJtahTnkeuKweny/expiZ6wvkmMb4i5tJEh8ClXEuu83EqbB7xEW/ZKB6ls9xwHaXceWnrzGFV9u7ISoGZr5YYId88PJ69GpWhZFTf+OF75JsZp8pNNwkqItU9e/AMe/6fL2AZi76LQLqiUhtEQkH+gFul0iaBlwlIjHeyRFXeb8zpmiLKA0dhsHvU2HHsgI5pCdEGNW/FQM71OTNWRt45NPlpNpySKYQcJOgUr2vB0WkKVAWqJVbJ1VNA4bjJJYkYJKqrhKRp0WkN4CItBWRZOBm4E0RWeXtux94BifJLQKe9n5nTNHXfghElC2Q56IyeUKEp/s04eEr6vPZ4mTu/TCREynpBXZ8Y3wh14KFInI38BnQHHgPp8Lu31X1Td+H554VLDRFyvQXYOZIGDoHKhdsnaeP5m/m71+tpFX1aN69oy3RJcIL9PjG5MZtwcJcR1Cq+o6qHlDVmapaR1UrBltyMqbI6TAUwkvDrIK7F5Xptg41eWNAa1ZuO8zNY+ax49CJAj+HMQXBzSy+8iLyunfFh0QReVVEyvsjOGOKragYaH8vrP4KdicV+OF7NqvCuMFt2XHoJDe+MZd1u93MezLGv9zcg5qAs7TRjcBNwF5goi+DMsYAHYdBWAmY5ZuKN53qVmDCkA6kpCs3jZnHki0HfHIeYy6UmwRVTlWfUdWN3u1ZINrXgRlT7JUoB+3ugVWfw961PjlF02pl+ey+jpSJDGPA2wuYscbVMpvG+IWbBDVdRPqJSIh3uwX41teBGWOAjsMhNBJm/8dnp6hZviSf3deJ2hVKcvf7CXy5ZJvPzmVMXuS0WOwRETkM3IuzmGuKd5sAPOyf8Iwp5krFOksgLZ8E+3y3EkRs6Qgm3NuB+Fox/GniUt6ZvcFn5zLGrZzW4iutqmW8ryGqGurdQlS1jD+DNKZY6/SAUx7+15d9epoykWGMu7MdPZtW5tlvkxg59TdbdcIElJtLfIhIbxF5ybtd4+ugjDFZlK4Mbe6AZRPgwCafnioyzMN/B7Tm1vY1GDNzPY9NXk6arTphAsTNNPORwEPAau/2kPc7Y4y/dH4IJAR+9X0xa0+I8Ox1TXno8np8mpjM0I9s1QkTGG5GUFcDV6rqu6r6Lk5dpqt9G5Yx5gxlqkLr22HJeDi4Nff2+SQiPHxlfZ7p04Sff9vNwLELOHQ8NfeOxhQgV5f4OHNaeVlfBGKMyUXnPzmvc17z2ykHdqzFf/u3ZnnyIW5+cy47D53027mNcZOgXgCWiMg4EXkfSASe921YxphzRFeHVrfC4vfhsP+qz/RqXoVxd7Zl24ET3Pi/uazfc9Rv5zbFW44JSkQE+BXoAHzu3Tqq6gQ/xGaMOdvFI0AzYM4ov56200UVmHhvR06lpXPT/+aydOtBv57fFE85Jih15ph+qao7VHWKqn6lqjv9FJsx5mwxNaF5P0h8D47s8uupm1Yry+ShnSgVGcqAt+cz6/c9fj2/KX7cXOKbLyJtfR6JMcadS0ZAegrM9e8oCqBWhZJ8NrQTNcuXZPC4RXy11FadML7jJkF1w0lS60VkuYisEJHlvg7MGHMe5etCs1sg4V046v9RTMUykUy8twNtasbw0ISlvPvrRr/HYIoHNwmqJ1AHuAy4FrjG+2qMCZQuj0DqCZj334CcvkxkGO8Pbkf3JpV4+pvV/Pt7W3XCFLyc1uKLFJE/AY/iPPu0TVU3Z25+i9AYc64K9aDpjbDwbTi+PyAhRIZ5eOPWNvRvV503Zqznic9W2KoTpkDlNIJ6H4gHVuCMony3nLIxJu+6PAKpx2H+GwELwRMiPH99Mx687CImJmzlvvGLOZlqq06YgpFTgmqsqrd5y7vfBFzip5iMMW5UbASN+8CCN+FE4IoNiggjrmrA//Vuwk9Ju7h97EIOnbBVJ0z+5ZSgTv8NU9U0P8RijMmrLo/CqcNOkgqwQZ1qMapfK5ZsPUDfN+ex67CtOmHyJ6cE1UJEDnu3I0DzzPfeOlHGmECr3BQaXuNc5jt5KNDRcG2Lqrx3Rzu27j/Ojf+bywZbdcLkQ071oDzeelCZNaFCs7x3VQ9KRHqIyBoRWSciT2SzP0JEJnr3LxCRWt7va4nICRFZ6t3GXOgf0Jgir8ujTnJa+FagIwHg4noV+GRIB06kpHPTmHksT7ZVJ8yFcbtYbJ6JiAcYjTPBojHQX0Qan9XsLuCAql4EvAL8K8u+9ara0rsN9VWcxhR6VVtC/R4wbzScOhLoaABoHhfNp0M7EhXmof9b85m91ladMHnnswQFtAPWqeoGVc0sFd/nrDZ9cGYLAkwGLveu/2eMyYsujzkTJRa9E+hITqsTW4rP7+9E9XIlGDxuEVOW+W+BW1M0+DJBVQOyFq5J9n6XbRvvRIxDQHnvvtoiskREZopItjMIRWSIiCSISMKePfYvNFOMxbWBi66Aua9DyrFAR3NapTKRTLy3I62qx/DQhCWMm2OrThj3fJmgshsJnf2o+fna7ABqqGorYATwsYicc99LVd9S1XhVjY+Njc13wMYUal0fh+P7IOG9QEdyhrJRYXxwVzuuaFSJf369mv/8sMZWnTCu+DJBJQPVs3yOA84e459uIyKhOMUQ96vqKVXdB6CqicB6oL4PYzWm8KveDupc6hQ0TD0R6GjOEBnm4X+3tqZvfHVe/2Udf/3CVp0wufNlgloE1BOR2iISDvQDppzVZgowyPv+JuAXVVURifVOskBE6gD1gA0+jNWYoqHLY3BsNyS+n3tbPwv1hDDyxmYM61aXTxZuZehHi0k+cDzQYZkg5rME5b2nNByYBiQBk1R1lYg8LSK9vc3GAuVFZB3OpbzMqehdgOUisgxn8sRQVQ3MgmPGFCa1OkPNi2HOq5AafA/KigiPdm/IU9c2Zsaa3XR9cQYPT1xK0g57tNKcS4rKteD4+HhNSEgIdBjGBN6GmfBBb7j6JWh3T6CjOa/tB08w9teNfLJwC8dT0rm0QSz3dqlLhzrlsMm8RZuIJKpqfK7tLEEZU8Sowrs94NBWeHAJhEYEOqIcHTqeyofzN/HenE3sO5ZCi+rRDO1Sh6uaVMYTYomqKHKboHx5D8oYEwgi0PUxOLwNln4c6GhyVbZEGMMvq8ecJy7j2euacvB4CveNX8wVL8/k4wVbbHX0YsxGUMYURarwzhXOhIkHFoMnLNARuZaeoXy/cidjZq5nxbZDVCgVwZ2da3Fbh5qUjSo8fw5zfjaCMqY4E3Geizq4BZZPDHQ0eeIJEXo1r8KU4Z35+O72NKpSmhenraHTCz/z3Ler2Xko+CZ/GN+wEZQxRZUqvHWps5Ds8ATwhAY6ogu2avsh3py5gW+Wb8cTIvRpWY17u9ShXqXSgQ7NXAAbQRlT3GXeizqwEVZODnQ0+dKkallG9W/FzEe7MaBdDb5Zvp0rX5nF3e8vImGTPYFSVNkIypiiTBXGXAJpJ2DYQgjxBDqiArH/WArvz93E+/M2cfB4KvE1Y7i3a10ub1iREJv5F/RsmrkxxrH6K5h0O9S7CjoOh9pdnNFVEXA8JY1Ji7by9uyNbDt4gosqlmJIlzpc17Ia4aF2gShYWYIyxjgyMmD2f2DBGDi+F2IbQft7oXlfCC8R6OgKRGp6Bt+t2MGYmRtI2nGYymUiGXxxLfq3q0HpSJv5F2wsQRljzpR6ElZ9DvP/BzuXQ2Q0tL7dWW0iukagoysQqsqstXsZM2M98zbso3RkKLd1qMmdnWtRsXRkoMMzXpagjDHZU4WtC5xElfQ1oNDgauhwH9TsXGQu/y3bepA3Z61n6sqdhIWEcGObatxzSR3qxJYKdGjFniUoY0zuDiXDorGQOA5O7IdKTZ3Lf81uhrCoQEdXIDbuPcbbszcwOTGZ1PQMujeuzNBL69KyenSgQyu2LEEZY9xLPQErJjv3qXathKgYaHMHtL0bysYFOroCsfvISd6fu4kP523m8Mk0OtQpx71d63Jp/VhbnNbPLEEZY/JOFTbPhQX/g9++BQQaXQPth0KNjkXi8t/RU2lMWLiFd2ZvZOfhkzSsXJp7u9bhmuZVCfPYzD9/sARljMmfg1tg0TtO8cOTB6FyMydRNb0Jwgr/hIOUtAymLNvOmzPXs3b3UapFR9GvbXXa1ylP87iyRIYVjWfGgpElKGNMwUg5DismwYI3YfdqKFEe2twJbe+CMlUDHV2+ZWQo09fs5s2ZG1joXZUizCM0qVqW+JoxxNeKoU3NcsSWDu6yJYWJJShjTMFShU2znUT127fOqhSNejujqurtisTlv/3HUkjcfICEzftZvPkAy5IPkZKWAUCNciWIrxlDm1oxxNcsR72KpWzVigtkCcoY4zsHNjmX/xZ/4CxGW6Wl9/LfDUFfIDEvTqWls3LbYRI37ydx8wESNx9g79EUAMpEhtK6ZgxtajhJq2X1aEqEF94Fef3JEpQxxvdSjsGyCc6oau8aKBkL8YOdrXTlQEdX4FSVzfuOk+BNVomb9/P7rqOAUyakSdUytK7hXBaMr1mOymUL/706X7AEZYzxH1XYMMNJVL9/71z+a3K9M6qKy/X3UKF26Hgqi7c4lwUTNx9g6daDnEx1LgtWi47y3sNytoaVy1gZeyxBGWMCZf8GWPgOLPkQTh2Gam2g/X3QuA+Ehgc6Op9LTc9g9fbDJGw+wGLv/axdh08BUCoilFY1ok8nrFY1YigVUfwuC1qCMsYE1qmjsOwTZ1S1by2UqgTxd0H8nVCqYqCj8xtVJfnAidOTLxI3H+S3nYdRhRCBhpXLnDHKqhYdVeQfHA6KBCUiPYDXAA/wjqqOPGt/BPAB0AbYB/RV1U3efX8B7gLSgQdVdVpO57IEZUyQysiADb84iWrtDxASBk1vhNYDoXQVCCvhrKoeVrJQV/3NiyMnU1my5eDpUdaSLQc4lpIOQOUykd6Zgk7CiospQYlwDxGhIUUmcQU8QYmIB/gduBJIBhYB/VV1dZY29wPNVXWoiPQDrlfVviLSGPgEaAdUBX4C6qtq+vnOZwnKmEJg33pY+BYsGQ8pR87d74n4I1mFl4Dwkn+8D/N+Di/5x/vM5BZe6sxEl13fIC7WmJaewW87j3hHWU7S2nbwxDntosI8lAj3EBnmISo8y3vv91FhHiLDPZTw7o/M8n1UDq8lwkKJDA8h3OOfJBgMCaoj8E9V7e79/BcAVX0hS5tp3jbzRCQU2AnEAk9kbZu13fnOZwnKmELk5GHY9CucOgKpx5yHgVOO/fE+1fs55dgf71OPe9sddd6np+TtnKGRuSS8Ek6CFAG8v6TPeY/zOdv3nKeP2/5n9jlyKpUdh05x7FQ6qRlKWnoGqekZpGUoqenqvE/PyLJPScvwvqZlkJKhkMdf7yIQ5gkh1COEeYSwkBBCT38OISzEea3VZQANmrXN28HPOI+7BOXL8XQ1YGuWz8lA+/O1UdU0ETkElPd+P/+svtXOPoGIDAGGANSoUTTq2RhTLESWgYZX5+8Y6WnehJaZ1LK+nv2dN7FlTX6Zr4e3/5H80k85MxIB0DPfn37JfK9nvc+mzzn9z+6TTX+v0t7tgoR4twuV4d3OY+Wu1pCPBOWWLxNUduPEs/P5+dq46YuqvgW8Bc4IKq8BGmMKMU8oeMpCZNlAR+IbmjXBBZemfroX5ssElQxUz/I5Dth+njbJ3kt8ZYH9LvsaY0zRJdlcPixmfLm2/CKgnojUFpFwoB8w5aw2U4BB3vc3Ab+oc1NsCtBPRCJEpDZQD1jow1iNMcYEGZ+NoLz3lIYD03Cmmb+rqqtE5GkgQVWnAGOBD0VkHc7IqZ+37yoRmQSsBtKAYTnN4DPGGFP02IO6xhhj/MrtLD4rH2mMMSYoWYIyxhgTlCxBGWOMCUqWoIwxxgQlS1DGGGOCUpGZxScie4DNgY7DByoAewMdRJCzn5E79nPKnf2M3Mnvz6mmqsbm1qjIJKiiSkQS3EzHLM7sZ+SO/ZxyZz8jd/z1c7JLfMYYY4KSJShjjDFByRJU8Hsr0AEUAvYzcsd+Trmzn5E7fvk52T0oY4wxQclGUMYYY4KSJShjjDFByRJUEBKR6iIyXUSSRGSViDwU6JiClYh4RGSJiHwT6FiClYhEi8hkEfnN+3eqY6BjCkYi8rD3/7eV/9/evYVoVYVhHONhR0wAAAQtSURBVP8/MIl5iAopPBAWeIpOWpZlSKVIkGQ3UZChFdSFdIAoOkDRVV1EFEEHkExKzDIhg6gxQ7xITFLLyE50MHNKJcqUsKyni70ENetGv2+vgecHw7dnzWbvZwZm3m/tvWe9kpZIGth2prZJekHSDkmfHDR2sqSVkr4sryd16vwpUHXaD9xtewIwBZgv6cyWM9XqTmBL2yEq9xTwtu3xwLnk5/UvkkYCdwAX2D6Lpofd9e2mqsKLwJWHjd0HrLI9BlhVPu+IFKgK2e6zvaFs/0bzB2Vku6nqI2kUcBWwoO0stZJ0AjCNpjkotv+w/Uu7qarVAxwvqQcYBGxvOU/rbK+haSZ7sNnAorK9CLimU+dPgaqcpNHARGBdu0mq9CRwL/B320EqdgawE1hYLoUukDS47VC1sf0D8DiwFegDfrXd226qap1quw+aN9PAKZ06UQpUxSQNAV4H7rK9u+08NZE0C9hh+8O2s1SuB5gEPGt7IrCXDl6S6a/KfZTZwOnACGCwpDntpooUqEpJOo6mOC22vbztPBWaClwt6VvgFeAKSS+3G6lK24Bttg/MwJfRFKw41AzgG9s7bf8JLAcuaTlTrX6SNBygvO7o1IlSoCokSTT3DLbYfqLtPDWyfb/tUbZH09zMfs923vEexvaPwPeSxpWh6cCnLUaq1VZgiqRB5fdvOnmY5L+sAOaW7bnAG506UU+nDhxHZSpwI7BZ0qYy9oDtt1rMFP3X7cBiSQOAr4GbWs5THdvrJC0DNtA8RbuRLHuEpCXAZcAwSduAh4HHgFcl3UJT2K/t2Pmz1FFERNQol/giIqJKKVAREVGlFKiIiKhSClRERFQpBSoiIqqUAhXRRZIeLCtmfyxpk6SL2s4UUav8H1REl5Q2F7OASbb3SRoGDDiK4/XY3n/MAkZUJjOoiO4ZDuyyvQ/A9i7b2yVNlvS+pI8kfSBpqKSBkhZK2lwWeb0cQNI8Sa9JehPoLWP3SFpfZmWPtPftRRxbmUFFdE8v8JCkL4B3gaXA2vJ6ne31pT3G7zR9rrB9tqTxQK+kseU4FwPn2P5Z0kxgDHAhIGCFpGmlTUJEv5YZVESX2N4DnA/cStMCYylwG9Bne33ZZ3e5bHcp8FIZ+wz4DjhQoFbaPtCjZ2b52EizTM94moIV0e9lBhXRRbb/AlYDqyVtBuYDR1pvTP9zmL2H7feo7eePWciISmQGFdElksZJOnh2cx7NitkjJE0u+wwtHV3XADeUsbHAacDnRzjsO8DNpXcYkkZK6lgDuYhuygwqonuGAE9LOpFmxeyvaC73LSzjx9Pcf5oBPAM8V2ZZ+4F55cm/Qw5ou1fSBGBt+doeYA4d7NET0S1ZzTwiIqqUS3wREVGlFKiIiKhSClRERFQpBSoiIqqUAhUREVVKgYqIiCqlQEVERJX+ATVHI8k9s8kpAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thresh = 4.5\n", "\n", "s = make_ifnr_series(cal_all, thresh, std_dev=2)\n", "s.plot(label='FNR, std_dev=2')\n", "\n", "s = make_ifnr_series(cal_all, thresh, std_dev=1)\n", "s.plot(label='FNR, std_dev=1')\n", "\n", "decorate(xlabel='Score',\n", " ylabel='Probability of false negative')" ] }, { "cell_type": "code", "execution_count": 152, "metadata": {}, "outputs": [], "source": [ "def assign_individual_fnr(df, cal, thresh, std_dev):\n", " \"\"\"Assign individual FNRs to defendants.\n", " \n", " df: DataFrame\n", " cal: calibration curve, map from score to prob_recid\n", " thresh: threshold between low and high risk\n", " std_dev: standard deviation of the error function\n", " \"\"\"\n", " # compute the map from score to FPR\n", " ifnr_series = make_ifnr_series(cal, thresh, std_dev)\n", " \n", " # assign FPR to each defendant\n", " df['ifnr'] = [ifnr_series[score] for score in df.decile_score]" ] }, { "cell_type": "code", "execution_count": 153, "metadata": {}, "outputs": [], "source": [ "assign_individual_fnr(cp, cal_all, thresh=4.5, std_dev=2)" ] }, { "cell_type": "code", "execution_count": 154, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.000205 0.053091\n", "0.002586 0.123510\n", "0.016131 0.194483\n", "0.043440 0.276546\n", "0.097114 0.365401\n", "0.177649 0.459800\n", "0.233751 0.566399\n", "0.248533 0.766011\n", "0.266719 0.869559\n", "0.273906 1.000000\n", "Name: ifnr, dtype: float64" ] }, "execution_count": 154, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cdf_ifnr = make_cdf(cp.ifnr)" ] }, { "cell_type": "code", "execution_count": 155, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_cdf(cdf_ifnr, label='All')\n", "\n", "decorate(xlabel='Individual probability of false negative', \n", " ylabel='CDF',\n", " ylim=[0,1])" ] }, { "cell_type": "code", "execution_count": 159, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xd4FOUWwOHfSS+QQi+h99AhdBRQqiAoFkS92BHBdu29e0XEXq6iYgNFLzYUBOlFaujSO4TeQ0s/949ZMLRkA9nsJjnv88yT7Mx8s2dX4TAzZ84nqooxxhjja/y8HYAxxhhzLpagjDHG+CRLUMYYY3ySJShjjDE+yRKUMcYYn2QJyhhjjE+yBGWMMcYneTRBiUhXEVkjIutF5IlzbB8gIstFZImIzBKR2EzbnnSNWyMiXTwZpzHGGN8jnnpQV0T8gbVAJyABWAD0VdWVmfaJUNVE1+89gYGq2tWVqL4DmgPlgElATVVN90iwxhhjfE6AB4/dHFivqhsBRGQU0As4laBOJieXcOBktuwFjFLVZGCTiKx3HW/O+d6sRIkSWrly5Vz9AMYYY3LfwoUL96lqyez282SCKg9sy/Q6AWhx5k4iMgh4CAgCLss0du4ZY8ufY2x/oD9AxYoViY+Pz5XAjTHGeI6IbHFnP0/eg5JzrDvreqKqfqiq1YDHgWdyOHaYqsapalzJktkmY2OMMfmIJxNUAlAh0+sYYEcW+48CrrrAscYYYwoYTyaoBUANEakiIkHADcCYzDuISI1ML7sD61y/jwFuEJFgEakC1ADmezBWY4wxPsZj96BUNU1E7gUmAP7AcFVdISIvAfGqOga4V0Q6AqnAQeAW19gVIvIDTkFFGjDIKviMMbkpNTWVhIQEkpKSvB1KgRUSEkJMTAyBgYEXNN5jZeZ5LS4uTq1Iwhjjrk2bNlG0aFGKFy+OyLlue5uLoars37+fI0eOUKVKldO2ichCVY3L7hjWScIYUyglJSVZcvIgEaF48eIXdYZqCcoYU2hZcvKsi/1+LUH5KFVl0daDrN6VSGp6hrfDMcaYPGcJygfN2bCfa/47m94fzabrOzOp+/wEen4wiyd/WsY3czazcMtBjqekeTtMY8xF8vf3p1GjRqeWzZs3M23aNESE33777dR+PXr0YNq0aQC0b9+eWrVq0bBhQ5o1a8aSJUuyfZ/27dufs5HBl19+yb333ntBsRcpUuSCxuWEJztJmBxasu0QQyesYdb6fZSJCOHlq+pRNDiAFTsOs2JHIuOW7+K7+U5zDj+BKiXCqVsukrrlIk79jA4P8vKnMMa4KzQ09KwEs3nzZmJiYnj11Ve58sorzzlu5MiRxMXF8cUXX/Doo48yceLEvAg3z1mC8gFrdh3hzT/X8OfK3RQLD+KZ7nW4uWUlQgL9AbiqsdPlSVXZcTiJFdudhLViRyLxmw8wZuk/zzCXiwwhtlwEsacSVwTlo0LtWrsxWXjxtxWs3JGY/Y45EFsuguevrHtBYxs2bEhqaioTJ06kU6dO592vVatWvPHGG24dc8SIEdx///0kJiYyfPhwmjdvftr23377jVdeeYWUlBSKFy/OyJEjKV26NEePHuW+++4jPj4eEeH555/nmmuuOTVu3759XHnllTzzzDN07979gj7v+ViC8qIt+4/xzqR1/LJkO0WCAni4U01ua1uFIsHn/s8iIpSPCqV8VCid65Y5tf7AsRRW7khkxY7DrNzpJK4pq/eQ4XqCICoskNiyEaedaVUpEU6Av13hNcabTpw4QaNGjQCoUqUKP//886ltzzzzDM8880yWCWr8+PFcddVV592e2bFjx5g9ezYzZszg9ttv5++//z5te9u2bZk7dy4iwmeffcaQIUN48803efnll4mMjGT58uUAHDx48NSY3bt307NnT1555ZUs47xQlqC8YNfhJN6bso4fFmwjwF+4+9JqDGhXlaiwC7s8Vyw8iLY1StC2RolT646npLF61xFW7EhkpesS4VdztpCS5hRchAT6UatMxKmzrLrlIqldpuipszZjCpMLPdO5WOe6xHfSJZdcAsDMmTPP2nbTTTdx7Ngx0tPTWbRokVvv1bdvXwAuvfRSEhMTOXTo0GnbExIS6NOnDzt37iQlJeXUs0uTJk1i1KhRp/aLjo4GnAedL7/8cj788EPatWvnVgw5ZQkqDx04lsJ/p63n6zlbyFDlxhYVubdDdUpFhOT6e4UFBdCkYjRNKkafWpeansHGvcdO3dNaseMwvy3dwbfztgLg7ydUK/nPfS3nrCuSyLALewrcGHNxnn76aV599VUCAk7/q3rkyJE0bNiQJ554gkGDBvHTTz9le6wzL/Of+fq+++7joYceomfPnkybNo0XXngBcG4tnOsWQUBAAE2bNmXChAmWoPKzI0mpfDZzE5/P2sTxlDR6N4nhgctrUKFYWJ7GEejvR60yRalVpii9mzjrVJWEgydOJa2VOxKZs2E/Py/efmpc+ajQU2dZDStEcmmNkvj52T0tYzytc+fOPPvss+zYcXav7MDAQF555RWqVavGqlWrqFOnDv369ePee+896/4SwPfff0+HDh2YNWsWkZGRREZGnrb98OHDlC/v3O/+6quvTovhgw8+4J133gGcS3zR0dGICMOHD+e6665j8ODBPPHEWZOmXzRLUB50IiWdr+ds5r/TN3DoeCpX1C/DQ51qUr1UUW+HdoqIUKFYGBWKhdG1XtlT6/cdTXbd13Ld29qRyMRVu1GFZpWjea13fZ/6HMYUVE8//TS9evU657bQ0FAefvhhhg4dyueff86yZcsoW7bsOfeNjo6mdevWp4okzvTCCy9w3XXXUb58eVq2bMmmTZsA517YoEGDqFevHv7+/jz//PP07t0bcMrkR40axZVXXklERAQDBw7MpU/tsF58HpCSlsH38dt4f/I69hxJpl3NkjzSuRb1YyKzH+zDjiWnMXbZTv7zxyqOJadxT/vqDGxfze5bmXzp5FlHQZGYmMgdd9zB//73P2+Hcppzfc/u9uKzM6hclJ6h/LpkO29PWsu2AydoVjma9/s2pkXV4t4OLVeEBwdwfbMKXF6nFK+MXcV7k9fx+9Id/Kd3fVoWkM9oTH4VERHhc8npYlmCygWqyoQVu3jzz7Ws23OUuuUi+PK2erSrWbJAPn9UvEgwb/dpxNWNy/P0L8u5Ydhcro+L4akr6lxwJaIxxpzJEtRFUFVmrtvH0D/XsCzhMNVKhvPRTU3oWrdMoSgiuLRmSf58sB3vTl7HpzM3MmX1Hp7tEUvPhuUKZGI2xuQtS1AXKH7zAd6YsIZ5mw5QPiqUN65twNWNyxe6h19Dg/x5olttejYsx5M/L+eBUUv4cdF2Xr2qXp5XKRpjChZLUDm0Ysdh3vxzLVNW76FEkWBe6lWXPs0qEBxQuAsFYstF8NM9rflmzmbemLCGTm9P56FONbm9TZVCl7SNMbnDEpSbNuw9ylsT1zJ22U4iQwN5vGttbmldibAg+wpP8vcTbm1Thc51y/Dcryv4z7jV/LJ4B6/1rk/DClHeDs8Yk8/YP22zkXDwOI+NXkqnt6YzdfUe7rusOjMe68A97atZcjqPclGhfNqvKR/f3IR9R5O5+qO/eOm3lRxLtilCjMksr6bbyM6tt97K6NGjz1q/Y8cOrr32WgCWLFnCuHHjLvq9csL+hj2PvUeS+XDqeqcNkMBtbapwT/tqlCgS7O3Q8gURoWu9srSuXoI3xq/hi9mbGP/3Tl7qVY+OsaW9HZ4xPsHXp9soV67cqcS1ZMkS4uPjueKKKzzyXudiCeoMh4+nMmzmBobP2kxKegbXx8Vw32U1KBcVmreBZKTDtnkQVgJK1IB8WhUXERLIy1fV46rG5Xnqp+Xc+XU8V9QvwwtX1vVID0JjLsgfT8Cu5bl7zDL1odvgCxqam9Nt7Nmzh27durFw4UKWLl1Ko0aN2LJlCxUrVqRatWqnupTPmDGDt956i127djFkyBCuvfZaNm/eTI8ePVi0aBHPPfccJ06cYNasWTz55JP06NGD++67j+XLl5OWlsYLL7xw3o4XF8oSlMux5DS+nL2ZT6ZvIDEpjZ4Ny/HvTjWpUiI8bwM5cRAWj4D5n8KhLc66sBJQsSVUau0speuDf/76T9e0UjS/3deWT2du5N3J65i5bh+Pd63Njc0rFoqSfGPOJS+m2yhVqhRJSUkkJiYyc+ZM4uLimDlzJm3btqVUqVKEhTnVtjt37mTWrFmsXr2anj17nrq0BxAUFMRLL71EfHw8H3zwAQBPPfUUl112GcOHD+fQoUM0b96cjh07Eh6ee39n5q+/5TxEVbn24zms2plIxzqleKhTLWLLReRtELtXwvxhsOx7SD0OFVvDZc9C2gnYMge2/AWrf3f2DSoCFZo7+1RqBeWbQmAen+FdgKAAPwZ1qM4V9cvy9M/LeeaXv/l58XZe612fmqWtr5/xogs807lYeTXdRuvWrfnrr7+YMWMGTz31FOPHj0dVT70HwFVXXYWfnx+xsbHs3r0722P++eefjBkzhqFDhwKQlJTE1q1bc7V9lCUonPslD3WqSfEiQadNT+FxGemwZhzM+wQ2z4SAEKh/HTTvD2Ub/LNfk37Oz8QdsGU2bJ3jJK2przjr/YOgXBMnWVVsDRVbQIjv9v2rUiKckXe24KdF23ll7Eq6vzeTAe2qMahDdevrZ0wmuTXdxiWXXMLMmTPZsmULvXr14vXXX0dE6NGjx6l9goP/ub/uTo9WVeXHH3+kVq1aOfxU7rMqPpdOsaXzLjkdPwCz3oF3G8H3N8PBzdDxBXhoFfT64PTklFlEOah/LXR/EwbOhsc2Qd9R0GIAaDrMfh++vQ4GV4KP28K4x2DFz3Ak+38N5TUR4ZqmMUx6qB1XNijH+1PW0+3dmczesM/boRnjMzp37szBgwdZunTpWdtOTrcxd+5cVq1aBUC/fv2YP3/+WfteeumljBgxgho1auDn50exYsUYN24cbdq0cTuWokWLcuTIkVOvu3Tpwvvvv38qmS1evDinHy9bdgaVl3Ytd86Wlv8P0pKg8iXQ9T9Qs9uF3VMKKwa1ujkLQMoxSIh3nWHNhsXfwPxPnG3Fqjr3r05eFoyu4hOFF8WLBPNWn0b0bhLDUz8v58ZP53FdU6evX3S49fUzJjem26hcuTLgJCpwpndPSEg4NTuuOzp06MDgwYNp1KgRTz75JM8++ywPPvggDRo0QFWpXLkyv//+e84/YBZsug1PS09z7h3NH+bcRwoIhYZ9nMt4pT08zXR6Kuxc5rzv1jnOcuKgs61IGSdRVWoDFVtBqVjw8+4J9YmUdN6bso5PZ2wkMjSQZ3vE0quR9fUznmHTbeSNi5luw6MJSkS6Au8C/sBnqjr4jO0PAXcCacBe4HZV3eLalg6crPvcqqo9s3ovn0tQx/bBwi8hfjgkboeoitDsLmh8s3Pm4w0ZGbBvjXN2dfJeVqJr5tyQSKjQ8p+kVbYRBHjnDGbVzkSe/Gk5S7Yd4pIaJXj1qvpULG59/UzuKmgJylf5ZIISEX9gLdAJSAAWAH1VdWWmfToA81T1uIjcA7RX1T6ubUdVtYi77+czCWrHEudsafloSE+Gqu2h+d1Qswv4+VgBgCoc2vrPJcEts2H/OmdbQCjExDlnV5VaQUxzCHb7P8dFS89QRs7bwpDxa0jLyODBjjW5o20VAq2vn8kllqDyhq9OWNgcWK+qG10BjQJ6AacSlKpOzbT/XOBmD8bjOempsGqMc39p2zwIDHfOlJr3h1K1vR3d+YlAdCVnaXiDs+7o3n8uB26ZDTOHwowMEH8o2xCqXAKt7oMiJT0amr+f0K9VZTrFluaFMSsY/Mdqflm8ncHXNKCR9fUzuURV7RKyB13sCZAnE1R5YFum1wlAiyz2vwP4I9PrEBGJx7n8N1hVf8n9EC/S0T3/XMY7stMpPOjyGjS6EULz6V+iRUpCbE9nAUhKhIT5Tln71jkw50PnM3d6CRr38/h9q7KRoXzyrzjG/72L58f8zdUf/cUtrSrzSJdaFAm2Gh9z4UJCQti/fz/Fixe3JOUBqsr+/fsJCbnwjjGe/BN+rv/i50ynInIzEAe0y7S6oqruEJGqwBQRWa6qG84Y1x/oD1CxYsXcidod2xc6Z0srfob0FKh2OVz5LlTv5PVCg1wXEgHVOzoLwN618Pu/4bcHYMl30ONtKB3r8TC61itDm+rFGTphDV/N2cyEFbt4qVc9OllfP3OBYmJiSEhIYO/evd4OpcAKCQkhJibmgsd78h5UK+AFVe3iev0kgKq+dsZ+HYH3gXaquuc8x/oS+F1Vz2636+Lxe1BpKbDyFycxbY+HoKLOmVLzu5xeeYWJKiz5Fv58BpITofV9cOljEJQ3hQyLth7kyR+Xs2b3EbrWLcOLvepS2vr6GZNv+EKRRABOkcTlwHacIokbVXVFpn0aA6OBrqq6LtP6aOC4qiaLSAlgDtArc4HFmTyWoI7sgvgvnMt4x/ZA8erOvaWGfZ2zi8Ls2H6Y+CwsGQlRlaD7W1CjY568dWp6htPXb9I6ioYE8MugNsREW6WfMfmB1xOUK4grgHdwysyHq+qrIvISEK+qY0RkElAf2OkaslVVe4pIa+ATIAOn28U7qvp5Vu+VqwlKFRIWOGdLK39xWhLV6Awt+kPVywreZbyLtWmmc9lv/zqo2xu6vgZFy+TJW6/dfYRr/jubmOgwRg9oRbjdlzLG5/lEgspLuZKgUpNgxU9OYtq5BIIjnGq8ZndC8Wq5E2hBlZYMf70LM4ZCQDB0fB6a3p4nyXz62r3c9sV8OseW4aObmlh3dGN8nLsJyk4FwDljmvoavF0XfrkHUk84/e4eWuWcDVhyyl5AMLR7DAbOgXKNYezD8Hmn3J9j5xza1SzJU1fUYfyKXbwzeV32A4wx+YJdDwHneaB9a50pLJr3dx6utbLTC1O8GvT71ek3OP5J+KQdtBoI7Z+EIM/NrXVH2yqs2XWE9yavo1bponRvcHY/MmNM/mKX+E7KSPe9Tg/53fEDMOkFWPQVRFaAK4ZCra4ee7vktHRu+nQef+84zOgBralX3nenHDGmMLNLfDllySn3hRWDnu/BbeOdSRa/6+NML5K4wyNvFxzgz8f/akrx8GDu+jqePUeSPPI+xpi8YQnKeF6lVnD3DLj8OVg3ET5oDnM/ds5ac1mJIsEM69eUQ8dTufubhSSl5v57GGPyhlsJSkQquR6oRURCRcTm5zY5ExAElzzsFFFUaA7jH4fPLnea6+ayuuUiebtPQxZvPcRTPy+/6H5gxhjvyDZBichdOA/Tuma+Iwbwvb54Jn8oVhVu/hGu+RwOb4dPOzjFFMlHsh+bA13rleXfHWvy06LtfDpzY64e2xiTN9w5gxoEtAESAVwdH0p5MihTwIk4U9ffuwCa3gpz/wsftoBVuTsb5/2XV6d7/bK89sdqpq4+ZxctY4wPcydBJatqyskXrhZGds3EXLzQKKfZ7B0TITQavr8JvusLh7ZlP9YNIsLQ6xoSWzaC+79bzPo9uXuWZozxLHcS1HQReQoIFZFOwP+A3zwblilUKjSD/tOcKTw2TnPOpmZ/AOlpF33o0CB/Pu0XR3CgP3d8Fc+h4ynZDzLG+AR3EtQTONOxLwfuBsYBz3gyKFMI+QdCmwdg4Fyo3Bb+fBo+bQ8JCy/60OWiQvnkX03ZeSiJQd8uIjU94+LjNcZ4nDsJqhfwtapep6rXquqnamVRxlOiK8GN38P1X8OxfU6l39hHIOnwRR22aaVo/tO7Pn+t38/Lv5+3Kb4xxoe4k6B6AmtF5BsR6e66B2WM54hAbC8YNN9pPbXgM+fZqRU/O30TL9C1TWPof2lVvp6zhZHztuRiwMYYT8g2QanqbUB1nHtPNwIbROQzTwdmDCERcMUQuGsyFCkF/7sVvr0eDl54cnm8a2061CrJ87+uYM6G/bkXqzEm17n1oK6qpgJ/AKOAhTiX/YzJG+Wbwl1Toct/YPNfThHFrHcgPTXHh/L3E97t25jKJcIZOHIhW/cf90DAxpjc4M6Dul1dU66vB64FPgOsVbTJW/4B0GoQDJoH1S6DSc87ndK3zc/xoSJCAvmsXxwZCnd9Hc/R5IuvFjTG5D53zqBuxekcUVNVb1HVcapqf6KNd0RVgL7fQp+RkHTImXNq3GM57utXuUQ4H93UhPV7j/LgqCVkZFjdjzG+xp17UDeo6i+qmpwXARnjljo9nLOp5v1h/ifw2wOQkbPy8TbVS/Bcj1gmrdrN0D/XeChQY8yFOm9FnojMUtW2InKE0ztHCKCqGuHx6IzJSnBRuOINCI6AmUMhMBS6DcnRZJP9WlVi9a4jfDRtA7XKFKVXo/IeDNgYkxPnTVCq2tb10zqXG9922TOQlgRzPoCAEKcjhZtJSkR4sWddNuw9yqOjl1GpeDiNKkR5OGBjjDvcKZL4xp11xniNCHR+BeLugNnvwbTBORoeFODHxzc3pVTRYPp/Hc+uwzbRoTG+wJ0iibqZX7ge1G3qmXCMuUAizpTyjW6C6YNh1ts5Gl4sPIjPbonjWHIa/b+Jt4kOjfEB501QIvKk6/5TAxFJdC1HgN3Ar3kWoTHu8vODnu9DvWtg0gvOrL05ULtMBO/c0Jjl2w/z2OhlNtGhMV523gSlqq+57j+9oaoRrqWoqhZX1SfzMEZj3OfnD1d/ArV7OLP2LvwyR8M7xZbmkc61GLN0Bx9N2+CZGI0xbsm2r56qPiki0UANICTT+hmeDMyYC+YfCNcOh1E3wm8PQkAoNOzj9vCB7auxdvcRhv65hpqli9IptrQHgzXGnI87RRJ3AjOACcCLrp8veDYsYy5SQDD0GeFM3fHLAKfRrJtEhNevaUCD8pE8OGoxq3clejBQY8z5uFMk8QDQDNiiqh2AxjjzQxnj2wJDoe8oiGkOP94Ja/5we2hIoD+f/CuO8OAA7vwqnv1H7Tl1Y/KaOwkqSVWTAEQkWFVXA7U8G5YxuSS4CNz0A5SpDz/0gw1T3B5aJjKEYf3i2HMkmXtGLiIlzSY6NCYvuZOgEkQkCqcf30QR+RXY4c7BXY1m14jIehF54hzbHxKRlSKyTEQmi0ilTNtuEZF1ruUWdz+QMWcJiYSbf4ISNeG7G2HzLLeHNqoQxRvXNmD+pgM8P2aFVfYZk4fc6cV3taoeUtUXgGeBz4GrshsnIv7Ah0A3IBboKyKxZ+y2GIhT1QbAaGCIa2wx4HmgBdAceN5VqGHMhQkrBv/6xWk2+20f2LbA7aG9GpXnnvbV+G7+Vr6eYxMdGpNX3CmSKHZyAZYDszi9N9/5NAfWq+pGVU3BmUvqtHmkVHWqqp6ckGcuEOP6vQswUVUPqOpBYCLQ1a1PZMz5FCkJ/cZAeEkYcQ3sWOL20Ec716JjnVK89PtK/lq/z4NBGmNOcucS3yKcooi1wDrX75tEZJGIZNVRojywLdPrBNe687kDZ1JEt8eKSH8RiReR+L17rW7DuCGiLNwyxpmt95urYfdKt4b5+Qnv3NCY6iWLMHDkIjbtO+bhQI0x7iSo8cAVqlpCVYvjXLL7ARgIfJTFuHN16zznmZeI3AzEAW/kZKyqDlPVOFWNK1myZBahGJNJVEXo9yv4B8HXvWDfereGFQkO4LNb4vATuPOrBSQm5XxGX2OM+9xJUHGqOuHkC1X9E7hUVecCwVmMSwAqZHodwzmKK0SkI/A00DPTnFNujTXmghWv5pxJaQZ83RMObnZrWIViYfz35qZs2X+c+79bTLpNdGiMx7iToA6IyOMiUsm1PAYcdBVBZFV3uwCoISJVRCQIuAEYk3kHEWkMfIKTnPZk2jQB6Cwi0a7iiM6udcbknpK1oN8vkHIMvroSDm93a1jLqsV5sVddpq3Zy+vjV3s4SGMKL3cS1I04ZzC/uJYKrnX+wPXnG+SaFv5enMSyCvhBVVeIyEsi0tO12xtAEeB/IrJERMa4xh4AXsZJcguAl1zrjMldZerDv36GE4ecM6kju90adlOLSvRrVYlhMzYyemGCh4M0pnASd5/rEJEiqnrUw/FcsLi4OI2Pj/d2GCa/2joXvunt3J+6dSyEF892SGp6BrcMn0/85oN8178FTSsVy4NAjcn/RGShqsZlt587ZeatRWQlsNL1uqGIZFUcYUz+U7El9P0ODm6Cb66CEwezHRLo78dHNzWhbFQId3+ziB2HTuRBoMYUHu5c4nsb57mk/QCquhS41JNBGeMVVdtBn5GwZxWMuBaSj2Q7JCosiM/6xZGUms5dX8dzPCUtDwI1pnBwJ0GhqtvOWGXTjZqCqUZHuO5L2LHY6TiRcjz7IaWL8n7fxqzcmcij/7OJDo3JLe4kqG0i0hpQEQkSkUdwih6MKZjq9IDew2DrHGdOqdSkbId0qF2KJ7vVZuzynbw32b3nqowxWXMnQQ0ABuF0ckgAGrleG1Nw1b8Wen4AG6fC/26BtJRsh9x1SVV6NynP25PWMv7vXXkQpDEFmzvNYvep6k2qWlpVS6nqzaq6Py+CM8arGt8E3d+EtePhpzshPev7SyLCf66uT/3ykTw/5m9OpNiVcGMuhjtVfCVF5CkRGSYiw08ueRGcMV7X7E7o/Cqs/BV+HQgZWc8JFRLoz7M9YtmdmMwXszflUZDGFEwBbuzzKzATmIQVR5jCqPW9kHYCprwCASFw5bsg52oX6WhepRgd65Tiv9M20LdZRaLDg/IwWGMKDnfuQYWp6uOq+oOq/nhy8XhkxviSSx+FSx6GRV/B+Ccgm0q9R7vU5lhyGh9Ns4IJYy6UOwnqdxG5wuORGOPrLnsWWg6CeR/DpBeyTFK1yhTlmiYxfDV7CwkHsy9VN8aczZ0E9QBOkjohIokickREEj0dmDE+RwS6vApxt8Nf78D0IVnu/u9ONUHg7Ynr8ihAYwoWd6r4iqqqn6qGqmqE63VEXgRnjM8RgSvehIY3wrT/wF/vnnfXclGh3Na6Mj8tTmD1Lvs3nTE55VYnCWNMJn5+0OsDqNsbJj4H84add9d72lejaHAAQ8avycMAjSkYLEEZcyH8/J1uE7W6wx+PwqKvz7lbVFgQAztUZ8rqPczdaI8PGpMTlqCMuVD+gXAcif5wAAAgAElEQVTdF1C9I4y5H5b9cM7dbm1dmTIRIQz+Y7X16TMmB9xKUCLSVkRuc/1eUkSqeDYsY/KJgGDoMwIqt4WfBzgP9J4hJNCff3eqwZJth5iwwlogGeMudzpJPA88DjzpWhUIjPBkUMbkK4Gh0HcUxMTB6Dtg7YSzdrmmSQzVSxVhyPg1pKVn3Y3CGONw5wzqaqAncAxAVXcART0ZlDH5TnARuOl/ULoufP8v2Dj9tM0B/n481qUWG/cd44d4myLeGHe4k6BS1LlwrgAiEu7ZkIzJp0Ii4V8/Q3Rl+PnusyY87BRbmqaVonln0lqb2NAYN7iToH4QkU+AKBG5C6cn36eeDcuYfCqsGFz1ERzZBVNfO22TiPBEt9rsOZLMF39t9k58xuQj7jyoOxQYDfwI1AKeU9X3PR2YMflWTBw0vdVpibRr+WmbmlUuRsc6pfl42gYOHst+jiljCjN3iiTCgSmq+ijOmVOoiAR6PDJj8rPLn4PQKBj78FlTdDzWtRbHUtL4cKo1kjUmK+5c4psBBItIeZzLe7cBX3oyKGPyvbBi0Oll2DYPlow8bVPN0kW5tmkMX8+xRrLGZMWdBCWqehzoDbyvqlcDsZ4Ny5gCoGFfqNjKaYd0/MBpmx7sWBMReGviWi8FZ4zvcytBiUgr4CZgrGudOxMdGlO4+flB97cg6TBMev60TeWiQrm1TWV+XrydVTutkawx5+JOgnoQ5yHdn1V1hYhUBaZ6NixjCojSsdBqoNOrb9v80zYNbFfd1Uh2tZeCM8a3uVPFN11Ve6rq667XG1X1fs+HZkwB0e4JiCgPvz8E6f88/xQZFsigDtWZumYvczZYI1ljznTeBCUiv4nImPMteRmkMflacBHoOhh2L4f5p0/NcUvrypSNDGHweGska8yZsrqXNPRiDy4iXYF3AX/gM1UdfMb2S4F3gAbADao6OtO2dODkQyRbVbXnxcZjjNfUuRKqd4Kpr0LdqyCiHHCykWxNHhu9jPF/76Jb/bJeDtQY3yGe+lebiPgDa4FOQAKwAOirqisz7VMZiAAeAcackaCOqmoRd98vLi5O4+Pjcyd4YzzhwEb4sCXU7u5M0+GSnqF0e3cGaenKhH9fSqC/zYJjCjYRWaiqcdnt586DujVEZLSIrBSRjScXN2JoDqx33bNKAUYBvTLvoKqbVXUZYO2dTcFXrCpc8jCs+Ak2TDm12t9PeKxLbVcj2W1eDNAY3+LOP9W+AP4LpAEdgK+Bb9wYVx7I/KctwbXOXSEiEi8ic0XkqnPtICL9XfvE7927NweHNsZL2jwAxao5HSZSk06tvrxOKZpVjuadSeuskawxLu4kqFBVnYxzOXCLqr4AXObGODnHupxcT6zoOgW8EXhHRKqddTDVYaoap6pxJUuWzMGhjfGSwBC44g3nct/s906tPtlIdu+RZIbP2uTFAI3xHe4kqCQR8QPWici9InI1UMqNcQlAhUyvY4Ad7gbmmncKVd0ITAMauzvWGJ9W/XKoezXMGOokKpemlYrRKbY0H0/fyAFrJGuM2w/qhgH3A02Bm4Fb3Bi3AKghIlVEJAi4AXCrPF1EokUk2PV7CaANsDLrUcbkI13+A/6BMO5RyFSo9FiXWhxPSeODKdZI1pisnoM6eZ+ptaoeVdUEVb1NVa9R1bnZHVhV04B7gQnAKuAHVyeKl0Skp+s9molIAnAd8ImIrHANrwPEi8hSnK4VgzNX/xmT70WUgw5Pw/pJsOq3U6trlC7KdU0r8M3czWw7YI1kTeF23jJzEVkJdMM562nPGfeUVPXAOYZ5jZWZm3wnPQ2GtYMTB2HQfOeBXmDn4RO0f2MaV9Qvy9t9Gnk5SGNyX26UmX8MjAdqAwvPWCwTGHOx/AOcZrKJ22H6P8+wl40M5bY2VfhlyXZW7DjsxQCN8a7zJihVfU9V6wDDVbWqqlbJtFTNwxiNKbgqtoAm/WDOR7D7n6vY97SrRkRIIEPGr/FicMZ4lzvNYu/Ji0CMKbQ6vgghkTD2oVMFE04j2WpMX7uX2ev3eTlAY7zDeqoY421hxaDTi7B1Diz97tTqfq0qU84ayZpCLKsqvuC8DMSYQq3RzRDTHP585tTsuycbyS5LOMy45bu8HKAxeS+rM6g5cFq5uTHGU/z8oMfbcOIQTH7p1OreTWKoWboIb0xYTWq6taw0hUtWCSpIRG4BWotI7zOXvArQmEKjTD1oMQAWfgkJTqGsv5/weNfabN5/nO8XWCNZU7hklaAGAC2BKODKM5Yeng/NmEKow5NQtAz8/u9Ts+9eVrsUzSsX451J6ziWbI1kTeGRVZn5LFcF32OuDhKZl9vzMEZjCo/gotD1Ndi1DOI/B5xGso93q82+o9ZI1hQu7lTxfSMi97vmhBotIveJSKDHIzOmsIq9CqpdBlNegSNOcUTTStF0qVuaT2ZsZP/RZC8HaEzecCdBfYTTJPYj19IEZ34oY4wniMAVQyEtyanqc3m0S22nkexUayRrCgd3ElQzVb1FVae4ltuAZp4OzJhCrXg1aPtvWP4/2DgNgOqlitCnWQVGzN1ijWRNoeBOgkrPPFmgiFQF0j0XkjEGcBJUdBUY+wikOZf1Hri8Jv5+wpt/WgskU/C5k6AeBaaKyDQRmQ5MAR72bFjGGAJDndl396+D2e8DUCYyhNvbVOGXJTv4e7s1kjUFmzu9+CYDNXAmLLwfqKWqUz0dmDEGqNEJ6vSEGW/Awc0A3N2uGlFhgQyZYGdRpmBzqxefqiar6jJVXaqqVkJkTF7q+hqIP4x7DFSJDA3k3g7VmbF2L39ZI1lTgFmzWGN8XWSM8wDvugmwZhwAN7es5DSS/WM1GRnWSNYUTJagjMkPWgyAUrHwx+OQcoyQQH8e6lyL5dsPM+7vnd6OzhiPyDZBiciPItJdRCyZGeMt/oHO7LuHt8H0IQBc3bg8tUoX5Y0Ja6yRrCmQ3Ek6/wVuBNaJyGARqe3hmIwx51KplTMtx5wPYM9qp5Fst1ps2X+cUfO3ejs6Y3KdO1V8k1T1JpwOEpuBiSIyW0Rus5ZHxuSxTi9CUBEY+zCo0qFWKZpXKca7k62RrCl43LpsJyLFgVuBO4HFwLs4CWuixyIzxpwtvAR0fAG2zIJlPyAiPNGtNvuOpvDZTGskawoWd+5B/QTMBMKAK1W1p6p+r6r3AUU8HaAx5gxNboHycfDn03DiIE0qRtO1bhmGzdjAPmskawoQd86gPlPVWFV9TVV3wj/TwatqnEejM8aczc8PerwFx/c7Hc+BR7vWIiktgw+mWCNZU3C4k6BeOce6ObkdiDEmB8o2hOb9YcHnsH0R1UoW4fq4Coyct4Ut+495OzpjcsV5E5SIlBGRpkCoiDQWkSaupT3O5T5jjDd1eAqKlHJm381I58GONVyNZNd6OzJjckVWZ1BdgKFADPAW8KZreQh4yvOhGWOyFBIJXf4DO5dA/HBKR4RwR9sqjFlqjWRNwZDVlO9fqWoH4FZV7ZBp6amqP+VhjMaY86l3DVRpB5NfhqN7TjWSfX38am9HZsxFy+oS382uXyuLyENnLu4cXES6isgaEVkvIk+cY/ulIrJIRNJE5Noztt0iIutcyy05+lTGFBYi0P1NSD0Ofz5LRIjTSHbmun3MWmeNZE3+ltUlvnDXzyJA0XMsWRIRf+BDoBsQC/QVkdgzdtuK83zVt2eMLQY8D7QAmgPPi0h0du9pTKFUoga0eQCWjYJNM/lXq0qUjwrl9fHWSNbkbwHn26Cqn7h+vniBx24OrFfVjQAiMgroBazM9B6bXdvObCTWBZioqgdc2ycCXYHvLjAWYwq2Sx9xpocf+zDBA2bxcOeaPPTDUsYu38mVDct5OzpjLsh5E5SIvJfVQFW9P5tjlwe2ZXqdgHNG5I5zjS1/jhj7A/0BKlas6OahjSmAAkOh2xD4rg/M/ZBerR9k2IyNDP1zDV3qliEowHo9m/wnq/9rF2azZEfOsc7d6w1ujVXVYaoap6pxJUuWdPPQxhRQtbpC7R4wfQj+idt4vFttp5HsAmska/KnrC7xfXWRx04AKmR6HQPsyMHY9meMnXaR8RhT8HUdDB82hz+eoP0NI2lZtRjvTV5H7yYxFAk+7x93Y3xSVlV877h+/iYiY85c3Dj2AqCGiFQRkSDgBsCdcQATgM4iEu0qjujsWmeMyUpUBWj3OKwZi6wdzxPd6rgayW70dmTG5FhW/6T6xvVz6IUcWFXTRORenMTiDwxX1RUi8hIQr6pjRKQZ8DMQDVwpIi+qal1VPSAiL+MkOYCXThZMGGOy0XIgLP0O/niMRgPncUX9MgybsZEbW1SkVNEQb0dnjNtENfvbQq4zoNo494HWqGqKpwPLqbi4OI2Pj/d2GMb4hs2z4MvucMnDbGzwEF3fmUmN0kUYcUcLosODvB2dKeREZKE7zcbdmW6jO7ABeA/4AFgvIt0uPkRjjMdUbgsN+8Jf71GVHXzSrynr9hyl76dz2XvEpuQw+YM7tadvAh1Utb2qtgM6AG97NixjzEXr9BIEhcG4h+lQsyRf3NqMzfuPccOwOexOTPJ2dMZky50EtUdVM08ysxHY46F4jDG5pUgpuPw52DQD/v6RNtVL8NVtzdl1OIk+n8xhx6ET3o7QmCxlVcXXW0R6AytEZJyI3Orqifcb/xQvGGN8WdPboFxjmPAUnDhEi6rF+fqOFuw/msL1n8xh24Hj3o7QmPPK6gzqStcSAuwG2uE8m7QXp+rOGOPr/Pyhx9twbB983QuO7KZppWhG3tWCI0lpXP/JHDbtswkOjW9yq4ovP7AqPmOysOYPGH07hJWAm36AUnVYuSORmz+fR4Cf8O1dLaheKtse0Mbkitys4gsRkUEi8pGIDD+55E6Yxpg8Uasb3DYO0pPh8y6wcTqx5SIY1b8lGQp9PpnL6l2J3o7SmNO4UyTxDVAGp8P4dJy2Q0c8GZQxxgPKNYY7J0FEORhxDSz5jpqli/LD3S0J9PfjhmFzbSZe41PcSVDVVfVZ4JirP193oL5nwzLGeERURbh9PFRqBb8MgGmDqVoinO/vbkl4UAA3fjqXxVsPejtKYwD3ElSq6+chEakHRAKVPRaRMcazQqPgph+h0U0w7TX45R4qRQby/d0tiQoL4l+fz2fBZussZrzPnQQ1zNWw9VmcZq8rgdc9GpUxxrMCgqDXh9Dhaadv34jexIQk88PdrShVNJhbhs9n9gabMt54V7YJSlU/U9WDqjpdVauqaqmTs+0aY/IxEWj3GFw9DLbOhc+7UCZjN6Pubkn5qFBu+2IB09fu9XaUphBzp4qvuIi8LyKLRGShiLwjIsXzIjhjTB5o2Af+9TMc3QWfdaRU4kpG9W9J1ZJFuOureCav2u3tCE0h5c4lvlE4rY2uAa4F9gHfezIoY0weq3IJ3DERAkPgy+4UT5jMd3e1oHbZogwYsZDxf+/0doSmEHInQRVT1ZdVdZNreQWI8nRgxpg8VrIW3DkZStaGUTcStfwLRtzZgvrlIxn07WLGLHV3Qmxjcoc7CWqqiNwgIn6u5XpgrKcDM8Z4QZFScOtYqN0d/niMiGnP8fVtcTStFM2Doxbz48IEb0doCpGsmsUeEZFE4G7gWyDFtYwC/p034Rlj8lxQGFz/tTMz79yPKPLr7Xx1cz1aVyvBI6OX8t38rd6O0BQS553yXVWtMZcxhZWfP3R9DaIqwfgnCE3syWfXfcuAX4Qnf1pOanoG/VpV9naUpoA7b4LKTER6Ape6Xk5T1d89F5Ixxme0HABRFWD0HYR81ZlhN3zPIH8/nvt1BSlpGdx5SVVvR2gKMHfKzAcDD+A8oLsSeMC1zhhTGNTuDreNhdQkgr7syn/bHKd7/bK8MnYVH05dn/14Yy6QO0USVwCdVHW4qg4HurrWGWMKi/JNnUazRcoQMLI378Wu4apG5XhjwhremriWgjJtj/Et7iQoOL2sPNITgRhjfFx0JbjjT6jYEv9fB/BW6Qlc37Q8701ex+vj11iSMrnOnXtQrwGLRWQqIDj3op70aFTGGN8UGgU3/wS/3Y/f9Nd4veEWQpvfxcfTN5Ccls5zPWIREW9HaQqILBOUOP+nzQJaAs1wEtTjqrorD2IzxviigCC46r8QXRmZ9hovVNlOaIun+PivzaSmZ/BSz3r4+VmSMhcvywSlqioiv6hqU5xO5sYY4zSabf8ERFVExtzH48UfJKLlawyZu5WUtAxe690Af0tS5iK5cw9qrog083gkxpj8p9GNcPNPSOIO7ll/N6+2SOOH+AQe/mEJaekZ3o7O5HPuJKgOOElqg4gsE5HlIrLM04EZY/KJqu3gjj8R/2BuWjmAD5vu5pclO3hg1BJSLUmZi+BOguoGVAUuA64Eerh+ZktEuorIGhFZLyJPnGN7sIh879o+T0Qqu9ZXFpETIrLEtXzs7gcyxnhBqdpOGXrJWnRf+TAjGyxj7PKdDBy5iOS0dG9HZ/KprHrxhYjIg8CjOM8+bVfVLSeX7A4sIv7AhzgJLhboKyKxZ+x2B3BQVasDb3P6TL0bVLWRaxmQs49ljMlzRUs7jWZrdqXN2sGMrfUHk1bu5O5vFpKUaknK5FxWZ1BfAXHAcpwk82YOj90cWK+qG1X1ZJPZXmfs08v1PgCjgcvFalSNyb+CwqHPCGh+N3W3fMOMSl8yb20Cd34Vz/GUNG9HZ/KZrBJUrKre7Jre/VrgkhweuzywLdPrBNe6c+6jqmnAYeDkbL1VRGSxiEwXkZy+tzHGW/z84Yoh0HUwFXZPZlbpt1mzYQO3frGAo8mWpIz7skpQqSd/cSWPnDrXmdCZj5qfb5+dQEVVbQw8BHwrIhFnvYFIfxGJF5H4vXv3XkCIxhiPaXkP9BlB8aPrmBb9Kge2rKDf5/NITErNfqwxZJ2gGopIoms5AjQ4+btrnqjsJAAVMr2OAc6ckvPUPiISgNNG6YCqJqvqfgBVXQhsAGqe+QaqOkxV41Q1rmTJkm6EZIzJU3V6wK1jCZdkxoW/RMiOudz82TwOHU/xdmQmHzhvglJVf1WNcC1FVTUg0+9nnc2cwwKghohUEZEg4AbOfth3DHCL6/drgSmuh4NLuoosEJGqQA1gY04/nDHGB8Q4jWaDIkszIug1qu/+g76fzmP/0WRvR2Z8nLvNYnPMdVnwXmACsAr4QVVXiMhLrvmlAD4HiovIepxLeSdL0S8FlonIUpziiQGqesBTsRpjPCy6MtzxJ34VW/KW/wd03vcNfT6Zw8ItB70dmfFhUlA6EMfFxWl8fLy3wzDGZCUtGcbcB8u+Z4xcxlMnbqRd/Wo83rU2FYuHeTs6k0dEZKGqxmW3n8fOoIwx5iwBwXD1J9DucXrqFOYXeYTya76k21sTeeX3lRw+bgUU5h+WoIwxeUsEOjwF/acRVqEhT/l9xYywx9k7ZwTthkzm81mbSEmzFknGEpQxxlvKNYZ+v8LNP1G8eAneDfyQnwOfZsq47+n09nT+WL7TJkEs5OwelDHG+zIy4O/R6JSXkUNbWRjQiOeOXU9oxcY83b0OjStGeztCk4vcvQdlCcoY4zvSkmHB5+iMN5ATB/hDLuHVpGto3KARj3WpRYViVkhREFiCMsbkX0mH4a930TkfkZGeyoj0TnyUfjVXtWnAwA7ViQwN9HaE5iJYFZ8xJv8KiYTLn0PuX4R/4xvp5z+BacH/JnD2W3Qd8gdf/rXJ5poqBCxBGWN8V0Q56Pk+MnAuoTXa80jAD4yTB1g97gO6vjWVCSt2WSFFAWaX+Iwx+cfWuejE55Bt89jiF8OrSddxqGJnnu4eS8MKUd6OzrjJ7kEZYwomVVg9Fp30IrJ/LUupxUvJNxDTsAOPdqlFTLQVUvg6S1DGmIItPQ2WjCBj6n/wO7qbyRlNGZrRl3ZtLmFgh2pEhFghha+yIgljTMHmHwBNb8Xv/sVw2bN0CFnL2IDHqPzX41w35Ee+nrPZCinyOUtQxpj8LSgcLn0EvweW4tdyANcH/cUYvZ8jY5+l99vjmLhytxVS5FN2ic8YU7Ac3IxOeRVZ/gOHKcp7qb1YU/F6Hu/eiPoxkd6OzmD3oIwxhd3OpWRMfAG/jVPYQUmGpFyHX4PreKRrHcpFhXo7ukLNEpQxxgBsmEr6n8/iv3s5q7QSQzNupFbrXtzToTpFrZDCK6xIwhhjAKp1wP/uGXDN59SIVD73f402s+9gwJDP+WbuFtKskMJnWYIyxhR8fn5Q/1oC7o+Hrq/TInwnIzMeJ3Ls3dz61vdMXmWFFL7ILvEZYwqfpET0r3fJmP2h04w27XLmxdzO7V2a07RSNP5+4u0ICzS7B2WMMdk5sov0qa8hi7/hhAYyIu1y4gOaElK1Na1qleeSGiVsig8PsARljDHu2ruW1Ikv4r/uD/w0nWQCWZBek9kZ9dhYtCmlarWkbc3StKpW3AorcoElKGOMyamkRNgyG904jZR1Uwk+sBqARA1jTkYsc7QeB0u3omrtJrStWZKGMZEE+Nut/JyyBGWMMRfr6B7YNIP0DdNJXT+FkKMJAOzSaGZn1GWRfwPSK11K3TqxXFqjJBWL2+VAd1iCMsaY3HZgE2yaTsq6qeimGQQnHwBgQ0ZZZmfUZW14E4KrtyeuTjVaVStuM/+ehyUoY4zxpIwM2LMC3TiN42umEJQwh8D0E2So8LdWZk5GPXYVb0GxOu1oVTuGRhWi7HKgiyUoY4zJS+mpsH0haeuncnz1ZML3LsZf00jWABZrDRZIA46Vb0NM3Ta0rVWWSsXDECmc5eyWoIwxxptSjsGWOSStnULy2ilEHl4FwBENZV5GbVaGNCajSntq1WtG6+oliQwrPJcDLUEZY4wvObYf3TSDI6smw6bpRBzfCsBejWRORl22RjYjpGYHGjZoSKMKUQQW4MuBPpGgRKQr8C7gD3ymqoPP2B4MfA00BfYDfVR1s2vbk8AdQDpwv6pOyOq9LEEZY/KVQ1tJ2zCNwysmEbJtJuGpTsHF5ozSzJf6HCjViqi6l1G+fAXCggIID/YnPCiA8OAAwoL8CQ7wy7eXCL2eoETEH1gLdAISgAVAX1VdmWmfgUADVR0gIjcAV6tqHxGJBb4DmgPlgElATVVNP9/7WYIyxuRbqrB3NSfWTOHIyolE7J5PSMYxAA5rGCcI5oQGcYIQThDECQ0iSYJJ9QshzS+UNP8QMgJCyAgIRQPDICAMCQrFLygMv+BwAoLDCQgJJzAknMCQIoSEFSU4LJzQsKKEhQRTJDiAsGB/gvzzJum5m6ACPBhDc2C9qm50BTQK6AWszLRPL+AF1++jgQ/E+XZ6AaNUNRnYJCLrXceb48F4jTHGO0SgVB1CS9Uh9JJBkJ4GOxZzaOVkkg/tQFOOE5xynKCUE0SlHkfSTuCXdhT/9H0EpJ8gMD2JoNQkAknN8VunqD9JBHOQYJIIJlmCSTmZ/PydBHha8gsMI6ZtX6rFZptfLponE1R5YFum1wlAi/Pto6ppInIYKO5aP/eMseXPfAMR6Q/0B6hYsWKuBW6MMV7lHwAVmhFVoVnOxmWkQ+oJSD3uWk6QkXyclKSjJB8/6vw8cZS0pOOkJR8jI/kY6cnH0JTjaOoJJPU4fmknCE47QVh6Ev4ZBwhKPUFgSjJBGckEk0wIKSzZ3hjyeYI613nimdcTz7ePO2NR1WHAMHAu8eU0QGOMKVD8/CG4iLOcXAWEuJZckZFOo9w6VjY8WSaSAFTI9DoG2HG+fUQkAIgEDrg51hhjTF7z83eWvHgrDx57AVBDRKqISBBwAzDmjH3GALe4fr8WmKJO1cYY4AYRCRaRKkANYL4HYzXGGONjPHaJz3VP6V5gAk6Z+XBVXSEiLwHxqjoG+Bz4xlUEcQAnieHa7wecgoo0YFBWFXzGGGMKHntQ1xhjTJ5yt8y84D6qbIwxJl+zBGWMMcYnWYIyxhjjkyxBGWOM8UmWoIwxxvikAlPFJyJ7gS3ejsMDSgD7vB2Ej7PvyD32PWXPviP3XOz3VElVS2a3U4FJUAWViMS7U45ZmNl35B77nrJn35F78up7skt8xhhjfJIlKGOMMT7JEpTvG+btAPIB+47cY99T9uw7ck+efE92D8oYY4xPsjMoY4wxPskSlDHGGJ9kCcoHiUgFEZkqIqtEZIWIPODtmHyViPiLyGIR+d3bsfgqEYkSkdEistr1/1Qrb8fki0Tk364/b3+LyHcikmuT0OZXIjJcRPaIyN+Z1hUTkYkiss71M9pT728JyjelAQ+rah2gJTBIRGK9HJOvegBY5e0gfNy7wHhVrQ00xL6vs8j/27u3EK2qMIzj/wcmyVN0IYmOhAUegoq07GRIpUiQZDdRkKEV1EUU3RQdoOiqLiKCoAMIk5SUZUIGQVOGeJHYkFoDZREdbHJKJcqUsKyni70GdLBunO/ba+D5wfDtWbNZ+52Lmfd7197feqVe4D7gEtvn0/Swu6XdqKrwMnDdqLGHgC225wBbyvcdkQRVIdvDtneW499p/qH0thtVfSTNAq4H1rYdS60knQEsoWkOiu0/bf/ablTV6gEmSuoBJgH7Wo6ndba30TSTPd5KYF05Xgfc2KnrJ0FVTtJsYAGwo91IqvQs8CDwT9uBVOxc4ADQV5ZC10qa3HZQtbH9I/A0sBcYBn6z3d9uVNWabnsYmjfTwFmdulASVMUkTQHeAu63fajteGoiaQWw3/YnbcdSuR5gIfCC7QXAETq4JDNelfsoK4FzgJnAZEmr2o0qkqAqJek0muS03vamtuOp0GLgBknfAa8D10p6td2QqjQEDNkeqcA30iSsONEy4FvbB2z/BWwCrmw5plr9LGkGQHnd36kLJUFVSJJo7hl8YfuZtuOpke2Hbc+yPZvmZvaHtvOOdxTbPwE/SJpXhpYCn7cYUq32ApdLmlT+/paSh0n+y2ZgdTleDbzdqQv1dGriOCWLgduAQUm7y9gjtt9tMTRtbEAAAAIGSURBVKYYv+4F1kuaAHwD3N5yPNWxvUPSRmAnzVO0u8i2R0h6DbgamCZpCHgceAp4Q9KdNIn9po5dP1sdRUREjbLEFxERVUqCioiIKiVBRURElZKgIiKiSklQERFRpSSoiC6S9GjZMfszSbslXdZ2TBG1yuegIrqktLlYASy0fVTSNGDCKczXY/vYmAUYUZlUUBHdMwM4aPsogO2DtvdJWiTpI0mfSvpY0lRJp0vqkzRYNnm9BkDSGklvSnoH6C9jD0gaKFXZE+39ehFjKxVURPf0A49J+gr4ANgAbC+vN9seKO0x/qDpc4XtCyTNB/olzS3zXAFcaPsXScuBOcClgIDNkpaUNgkR41oqqIgusX0YuBi4i6YFxgbgbmDY9kA551BZtrsKeKWM7QG+B0YS1Pu2R3r0LC9fu2i26ZlPk7Aixr1UUBFdZPtvYCuwVdIgcA9wsv3G9D/THBl13pO2XxqzICMqkQoqokskzZN0fHVzEc2O2TMlLSrnTC0dXbcBt5axucDZwJcnmfY94I7SOwxJvZI61kAuoptSQUV0zxTgOUln0uyY/TXNcl9fGZ9Ic/9pGfA88GKpso4Ba8qTfydMaLtf0nnA9vKzw8AqOtijJ6Jbspt5RERUKUt8ERFRpSSoiIioUhJURERUKQkqIiKqlAQVERFVSoKKiIgqJUFFRESV/gUbVvEV0fBvSwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thresh = 4.5\n", "std_dev = 2\n", "\n", "cal_black = calibration_curve(black)\n", "s = make_ifnr_series(cal_black, thresh, std_dev)\n", "s.plot(label='FNR, black')\n", "\n", "cal_white = calibration_curve(white)\n", "s = make_ifnr_series(cal_white, thresh, std_dev)\n", "s.plot(label='FNR, white')\n", "\n", "decorate(xlabel='Score',\n", " ylabel='Probability of false negative')" ] }, { "cell_type": "code", "execution_count": 160, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thresh = 4.5\n", "std_dev = 2\n", "\n", "cal_male = calibration_curve(male)\n", "s = make_ifnr_series(cal_male, thresh, std_dev)\n", "s.plot(label='FNR, male')\n", "\n", "cal_female = calibration_curve(female)\n", "s = make_ifnr_series(cal_female, thresh, std_dev)\n", "s.plot(label='FNR, female')\n", "\n", "decorate(xlabel='Score',\n", " ylabel='Probability of false negative')" ] }, { "cell_type": "code", "execution_count": 182, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.1681762611669047" ] }, "execution_count": 182, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assign_individual_fnr(cp, cal_all, thresh=4.5, std_dev=2)\n", "cp.ifnr.mean()" ] }, { "cell_type": "code", "execution_count": 183, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "race\n", "African-American 0.139389\n", "Asian 0.209441\n", "Caucasian 0.194595\n", "Hispanic 0.203360\n", "Native American 0.110333\n", "Other 0.218244\n", "Name: ifnr, dtype: float64" ] }, "execution_count": 183, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cp.groupby('race').ifnr.mean()" ] }, { "cell_type": "code", "execution_count": 184, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.1690990899101053" ] }, "execution_count": 184, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assign_individual_fnr(cp, cal_all, thresh=4.5, std_dev=1)\n", "cp.ifnr.mean()" ] }, { "cell_type": "code", "execution_count": 185, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "race\n", "African-American 0.136836\n", "Asian 0.210584\n", "Caucasian 0.198345\n", "Hispanic 0.210041\n", "Native American 0.105383\n", "Other 0.225368\n", "Name: ifnr, dtype: float64" ] }, "execution_count": 185, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cp.groupby('race').ifnr.mean()" ] }, { "cell_type": "code", "execution_count": 186, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.1685611311339046" ] }, "execution_count": 186, "metadata": {}, "output_type": "execute_result" } ], "source": [ "assign_individual_fnr(cp, cal_all, thresh=4.5, std_dev=0.01)\n", "cp.ifnr.mean()" ] }, { "cell_type": "code", "execution_count": 187, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "race\n", "African-American 0.136599\n", "Asian 0.197959\n", "Caucasian 0.197450\n", "Hispanic 0.207289\n", "Native American 0.114221\n", "Other 0.228528\n", "Name: ifnr, dtype: float64" ] }, "execution_count": 187, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cp.groupby('race').ifnr.mean()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### What would it take?\n", "\n", "In this section I explore what it would take to make a test with the same false positive rate for all groups." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def fpr_thresh(df, thresh):\n", " df = df.copy()\n", " df['high'] = df.decile_score >= thresh\n", " matrix_all = crosstab(df, 'two_year_recid', 'high')\n", " fpr, fnr = error_rates(matrix_all)\n", " return fpr" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fpr_thresh(cp, 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fpr_thresh(black, 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fpr_thresh(white, 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def sweep_thresh(df):\n", " threshes = range(2,10)\n", " sweep = pd.Series(index=threshes)\n", " for thresh in threshes:\n", " sweep[thresh] = fpr_thresh(df, thresh)\n", " \n", " return sweep" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.axhline(32.25, color='gray')\n", "sweep_thresh(cp).plot(label='All')\n", "sweep_thresh(black).plot(label='Black')\n", "sweep_thresh(white).plot(label='White')\n", "decorate(xlabel='Threshold',\n", " ylabel='False positive rate')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def find_threshold(group, fpr):\n", " series = sweep_thresh(group)\n", " xs = crossing(series.dropna(), fpr)\n", " return xs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "all_thresh = find_threshold(cp, 32.35)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "black_thresh = find_threshold(black, 32.35)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "white_thresh = find_threshold(white, 32.35)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "interpolate(calibration_curve(cp), all_thresh)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "interpolate(calibration_curve(cp), black_thresh)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "interpolate(calibration_curve(black), black_thresh)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "interpolate(calibration_curve(cp), white_thresh)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "interpolate(calibration_curve(white), white_thresh)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "black_male = black[black.sex=='Male']\n", "black_male.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "black_female = black[black.sex=='Female']\n", "black_female.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "old_black_female = black_female[black_female.age_cat=='Greater than 45']\n", "old_black_female.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "old_white_female = cp[(cp.age_cat=='Greater than 45') &\n", " (cp.sex=='Female') &\n", " (cp.race=='Caucasian')]\n", "old_white_female.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "young_black_male = cp[(cp.age_cat=='Less than 25') &\n", " (cp.sex=='Male') &\n", " (cp.race=='African-American')]\n", "young_black_male.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fpr_thresh(cp, 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fpr_thresh(black, 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fpr_thresh(black_female, 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fpr_thresh(old_black_female, 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fpr_thresh(black_male, 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fpr_thresh(young_black_male, 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.axhline(32.25, color='gray')\n", "sweep_thresh(black).plot(label='Black', color='gray')\n", "sweep_thresh(black_male).plot(label='Black male')\n", "sweep_thresh(young_black_male).plot(label='Young black male')\n", "\n", "decorate(xlabel='Threshold',\n", " ylabel='False positive rate')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.axhline(32.25, color='gray')\n", "sweep_thresh(black).plot(label='Black', color='gray')\n", "sweep_thresh(black_female).plot(label='Black female')\n", "sweep_thresh(old_black_female).plot(label='Old black female')\n", "\n", "decorate(xlabel='Threshold',\n", " ylabel='False positive rate')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "ybm_thresh = find_threshold(young_black_male, 32.35)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "obf_thresh = find_threshold(old_black_female, 32.35)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "interpolate(calibration_curve(cp), ybm_thresh)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "interpolate(calibration_curve(cp), obf_thresh)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }