diff --git a/docs/examples/regression_on_workers_compensation.ipynb b/docs/examples/regression_on_workers_compensation.ipynb
new file mode 100644
index 0000000..0d2156c
--- /dev/null
+++ b/docs/examples/regression_on_workers_compensation.ipynb
@@ -0,0 +1,1267 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "0635403e-5936-4c7f-ad25-3a52670a1a10",
+ "metadata": {},
+ "source": [
+ "# Regression on Workers' Compensation Dataset\n",
+ "This notebook demonstrates model diagnostics on the workers' compensation dataset https://www.openml.org/d/42876.\n",
+ "For details, see https://arxiv.org/abs/2202.12780.\n",
+ "\n",
+ "The modelling goal is to predict the expectation $E(Y|X)$ of $Y=\\text{UltimateIncurredClaimCost}$ conditional on the features $X$."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "476f0984-84d4-493e-85c1-9823f2a47491",
+ "metadata": {},
+ "source": [
+ "## 1. Load and prepare data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "bdf0fa3a-650d-4ea4-a189-e81e4457fd08",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import calendar\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "from sklearn import set_config\n",
+ "from sklearn.datasets import fetch_openml\n",
+ "\n",
+ "\n",
+ "set_config(transform_output=\"pandas\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "2dcf7ba7-61c1-4ae4-97c7-4968bfc99ee0",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df_original = fetch_openml(data_id=42876, parser=\"auto\").frame"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "afe4ccd8-178e-494b-8404-5091ec470fce",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The prepared dataset contains 82017 rows.\n"
+ ]
+ }
+ ],
+ "source": [
+ "df = df_original.query(\"WeeklyPay >= 200 and HoursWorkedPerWeek >= 20\")\n",
+ "df = df.assign(\n",
+ " DateTimeOfAccident=lambda x: pd.to_datetime(x[\"DateTimeOfAccident\"]),\n",
+ " DateOfAccident=lambda x: x.DateTimeOfAccident.dt.date,\n",
+ " DateReported=lambda x: pd.to_datetime(x.DateReported).dt.date,\n",
+ " LogDelay=lambda x: np.log1p((x.DateReported - x.DateOfAccident).dt.days),\n",
+ " HourOfAccident=lambda x: x.DateTimeOfAccident.dt.hour,\n",
+ " WeekDayOfAccident=lambda x: pd.Categorical.from_codes(\n",
+ " codes=x.DateTimeOfAccident.dt.weekday,\n",
+ " dtype=pd.CategoricalDtype(list(calendar.day_name), ordered=True),\n",
+ " ),\n",
+ " LogWeeklyPay=lambda x: np.log1p(x.WeeklyPay),\n",
+ " LogInitial=lambda x: np.log(x.InitialCaseEstimate),\n",
+ " DependentChildren=lambda x: np.fmin(4, x.DependentChildren),\n",
+ " HoursWorkedPerWeek=lambda x: np.fmin(60, x.HoursWorkedPerWeek),\n",
+ " Gender=lambda x: x.Gender.astype(\"category\"),\n",
+ " MaritalStatus=lambda x: x.MaritalStatus.astype(\"category\"),\n",
+ " PartTimeFullTime=lambda x: x.PartTimeFullTime.astype(\"category\"),\n",
+ ").rename(columns={\"HoursWorkedPerWeek\": \"HoursPerWeek\"})\n",
+ "\n",
+ "x_continuous = [\n",
+ " \"Age\",\n",
+ " \"LogWeeklyPay\",\n",
+ " \"LogInitial\",\n",
+ " \"HourOfAccident\",\n",
+ " \"HoursPerWeek\",\n",
+ " \"LogDelay\",\n",
+ "]\n",
+ "x_discrete = [\n",
+ " \"Gender\",\n",
+ " \"MaritalStatus\",\n",
+ " \"PartTimeFullTime\",\n",
+ " \"DependentChildren\",\n",
+ " \"DaysWorkedPerWeek\",\n",
+ " \"WeekDayOfAccident\",\n",
+ "]\n",
+ "x_vars = x_continuous + x_discrete\n",
+ "y_var = \"UltimateIncurredClaimCost\"\n",
+ "\n",
+ "print(f\"The prepared dataset contains {df.shape[0]} rows.\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "c23fe013-56a4-4616-b344-8af461593b12",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " DateTimeOfAccident | \n",
+ " DateReported | \n",
+ " Age | \n",
+ " Gender | \n",
+ " MaritalStatus | \n",
+ " DependentChildren | \n",
+ " DependentsOther | \n",
+ " WeeklyPay | \n",
+ " PartTimeFullTime | \n",
+ " HoursPerWeek | \n",
+ " DaysWorkedPerWeek | \n",
+ " ClaimDescription | \n",
+ " InitialCaseEstimate | \n",
+ " UltimateIncurredClaimCost | \n",
+ " DateOfAccident | \n",
+ " LogDelay | \n",
+ " HourOfAccident | \n",
+ " WeekDayOfAccident | \n",
+ " LogWeeklyPay | \n",
+ " LogInitial | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 2005-01-13 09:00:00 | \n",
+ " 2005-01-24 | \n",
+ " 45 | \n",
+ " M | \n",
+ " S | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 500 | \n",
+ " F | \n",
+ " 38 | \n",
+ " 5 | \n",
+ " MOVING DISC STRAINED RIGHT SHOULDER | \n",
+ " 9500.0 | \n",
+ " 102.39 | \n",
+ " 2005-01-13 | \n",
+ " 2.484907 | \n",
+ " 9 | \n",
+ " Thursday | \n",
+ " 6.216606 | \n",
+ " 9.159047 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 1994-09-28 15:00:00 | \n",
+ " 1994-10-17 | \n",
+ " 40 | \n",
+ " M | \n",
+ " M | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 283 | \n",
+ " F | \n",
+ " 38 | \n",
+ " 5 | \n",
+ " BOILING WATER CAME FROM TRUCK STRAIN RIGHT WRIST | \n",
+ " 3000.0 | \n",
+ " 1451.00 | \n",
+ " 1994-09-28 | \n",
+ " 2.995732 | \n",
+ " 15 | \n",
+ " Wednesday | \n",
+ " 5.648974 | \n",
+ " 8.006368 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 2002-02-28 07:00:00 | \n",
+ " 2002-04-08 | \n",
+ " 50 | \n",
+ " F | \n",
+ " S | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 517 | \n",
+ " F | \n",
+ " 38 | \n",
+ " 5 | \n",
+ " SPILLED CHEMICAL WELDING IRRITATION LEFT CORNEA | \n",
+ " 1000.0 | \n",
+ " 320.28 | \n",
+ " 2002-02-28 | \n",
+ " 3.688879 | \n",
+ " 7 | \n",
+ " Thursday | \n",
+ " 6.249975 | \n",
+ " 6.907755 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 1995-04-20 14:00:00 | \n",
+ " 1995-05-08 | \n",
+ " 19 | \n",
+ " M | \n",
+ " S | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 200 | \n",
+ " F | \n",
+ " 38 | \n",
+ " 5 | \n",
+ " ENTERED GRINDER FOREIGN BODY RIGHT EYE | \n",
+ " 110.0 | \n",
+ " 108.00 | \n",
+ " 1995-04-20 | \n",
+ " 2.944439 | \n",
+ " 14 | \n",
+ " Thursday | \n",
+ " 5.303305 | \n",
+ " 4.700480 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 2005-01-07 14:00:00 | \n",
+ " 2005-01-31 | \n",
+ " 19 | \n",
+ " M | \n",
+ " S | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 767 | \n",
+ " F | \n",
+ " 40 | \n",
+ " 5 | \n",
+ " LIFTING STRAIN LOWER BACK AND | \n",
+ " 9700.0 | \n",
+ " 7110.90 | \n",
+ " 2005-01-07 | \n",
+ " 3.218876 | \n",
+ " 14 | \n",
+ " Friday | \n",
+ " 6.643790 | \n",
+ " 9.179881 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " DateTimeOfAccident DateReported Age Gender MaritalStatus \\\n",
+ "0 2005-01-13 09:00:00 2005-01-24 45 M S \n",
+ "1 1994-09-28 15:00:00 1994-10-17 40 M M \n",
+ "5 2002-02-28 07:00:00 2002-04-08 50 F S \n",
+ "7 1995-04-20 14:00:00 1995-05-08 19 M S \n",
+ "8 2005-01-07 14:00:00 2005-01-31 19 M S \n",
+ "\n",
+ " DependentChildren DependentsOther WeeklyPay PartTimeFullTime \\\n",
+ "0 0 0 500 F \n",
+ "1 0 0 283 F \n",
+ "5 0 0 517 F \n",
+ "7 0 0 200 F \n",
+ "8 0 0 767 F \n",
+ "\n",
+ " HoursPerWeek DaysWorkedPerWeek \\\n",
+ "0 38 5 \n",
+ "1 38 5 \n",
+ "5 38 5 \n",
+ "7 38 5 \n",
+ "8 40 5 \n",
+ "\n",
+ " ClaimDescription InitialCaseEstimate \\\n",
+ "0 MOVING DISC STRAINED RIGHT SHOULDER 9500.0 \n",
+ "1 BOILING WATER CAME FROM TRUCK STRAIN RIGHT WRIST 3000.0 \n",
+ "5 SPILLED CHEMICAL WELDING IRRITATION LEFT CORNEA 1000.0 \n",
+ "7 ENTERED GRINDER FOREIGN BODY RIGHT EYE 110.0 \n",
+ "8 LIFTING STRAIN LOWER BACK AND 9700.0 \n",
+ "\n",
+ " UltimateIncurredClaimCost DateOfAccident LogDelay HourOfAccident \\\n",
+ "0 102.39 2005-01-13 2.484907 9 \n",
+ "1 1451.00 1994-09-28 2.995732 15 \n",
+ "5 320.28 2002-02-28 3.688879 7 \n",
+ "7 108.00 1995-04-20 2.944439 14 \n",
+ "8 7110.90 2005-01-07 3.218876 14 \n",
+ "\n",
+ " WeekDayOfAccident LogWeeklyPay LogInitial \n",
+ "0 Thursday 6.216606 9.159047 \n",
+ "1 Wednesday 5.648974 8.006368 \n",
+ "5 Thursday 6.249975 6.907755 \n",
+ "7 Thursday 5.303305 4.700480 \n",
+ "8 Friday 6.643790 9.179881 "
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1ddf4302-7c1a-4a90-88b6-a00866ce036a",
+ "metadata": {},
+ "source": [
+ "## 2. Data split"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "a541e9f7-e68b-45f6-9b59-96db11c17915",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "700e6bbb-0641-4141-9d62-b51c78e4427e",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df_train, df_test = train_test_split(df, train_size=0.75, random_state=1234321)\n",
+ "df = pd.concat((df_train, df_test), axis=0, keys=(\"train\", \"test\")).reset_index(level=0).rename(columns={\"level_0\": \"split\"})\n",
+ "\n",
+ "y_train, y_test = df_train[y_var], df_test[y_var]\n",
+ "X_train, X_test = df_train[x_vars], df_test[x_vars]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8c773b7c-f1cd-4deb-ae19-a0a57e1bc30f",
+ "metadata": {},
+ "source": [
+ "We check whether the split results in two about identically distributed samples."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "2c740f0f-a580-4a51-b993-30f78cac2fbc",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " mean | \n",
+ " q20 | \n",
+ " q40 | \n",
+ " q50 | \n",
+ " q60 | \n",
+ " q80 | \n",
+ " q90 | \n",
+ "
\n",
+ " \n",
+ " split | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " test | \n",
+ " 13300.958856 | \n",
+ " 205.0 | \n",
+ " 464.714 | \n",
+ " 707.500 | \n",
+ " 1135.984 | \n",
+ " 4716.426 | \n",
+ " 18979.432 | \n",
+ "
\n",
+ " \n",
+ " train | \n",
+ " 12909.500160 | \n",
+ " 203.0 | \n",
+ " 459.000 | \n",
+ " 691.185 | \n",
+ " 1096.230 | \n",
+ " 4596.730 | \n",
+ " 19030.384 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " mean q20 q40 q50 q60 q80 q90\n",
+ "split \n",
+ "test 13300.958856 205.0 464.714 707.500 1135.984 4716.426 18979.432\n",
+ "train 12909.500160 203.0 459.000 691.185 1096.230 4596.730 19030.384"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.groupby(\"split\").agg(\n",
+ " mean=pd.NamedAgg(column=y_var, aggfunc=\"mean\"),\n",
+ " q20=pd.NamedAgg(column=y_var, aggfunc=lambda x: np.quantile(x, 0.2)),\n",
+ " q40=pd.NamedAgg(column=y_var, aggfunc=lambda x: np.quantile(x, 0.4)),\n",
+ " q50=pd.NamedAgg(column=y_var, aggfunc=lambda x: np.quantile(x, 0.5)),\n",
+ " q60=pd.NamedAgg(column=y_var, aggfunc=lambda x: np.quantile(x, 0.6)),\n",
+ " q80=pd.NamedAgg(column=y_var, aggfunc=lambda x: np.quantile(x, 0.8)),\n",
+ " q90=pd.NamedAgg(column=y_var, aggfunc=lambda x: np.quantile(x, 0.9)),\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1e32a519-7ac8-4e94-99a6-f451dc2190ff",
+ "metadata": {},
+ "source": [
+ "## 3. Models\n",
+ "We aim at predicting the conditional expectation $E(Y|X)$ and will finally evaluate the models with the Gamma deviance $S(z, y) = 2 \\left(log(\\frac{z}{y}) + \\frac{y}{z} - 1\\right)$.\n",
+ "### 3.1 The trivial model"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "ad0611d6-3f25-4fdd-9ae4-f6f3161233cb",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.dummy import DummyRegressor\n",
+ "\n",
+ "\n",
+ "m_trivial = DummyRegressor(strategy=\"mean\").fit(X_train, y_train)"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "9a176508-87d9-4b45-b9c1-436becc205f3",
+ "metadata": {},
+ "source": [
+ "## 3.2 OLS\n",
+ "\n",
+ "Here, we train a Ordinary Least Squares (OLS) model, but on the log transformed target.\n",
+ "`TransformedTargetRegressor` takes care of this transformation and also of the back transformation such that predictions are on the original target UltimateIncurredClaimCost."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "70f55852-de16-4dc6-b35e-ad3dfef93b3e",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.compose import ColumnTransformer, TransformedTargetRegressor\n",
+ "from sklearn.linear_model import LinearRegression\n",
+ "from sklearn.pipeline import Pipeline\n",
+ "from sklearn.preprocessing import OneHotEncoder\n",
+ "\n",
+ "\n",
+ "# ColumnTransformer for linear models\n",
+ "col_trans_linear = ColumnTransformer(\n",
+ " [\n",
+ " (\"numeric_features\", \"passthrough\", x_continuous),\n",
+ " (\"categorical_features\", OneHotEncoder(drop=\"first\", sparse_output=False), x_discrete),\n",
+ " ]\n",
+ ")\n",
+ "\n",
+ "m_ols = Pipeline(\n",
+ " [\n",
+ " (\"column_transformer\", col_trans_linear),\n",
+ " (\n",
+ " \"model\",\n",
+ " TransformedTargetRegressor(\n",
+ " regressor=LinearRegression(),\n",
+ " func=np.log,\n",
+ " inverse_func=np.exp,\n",
+ " )\n",
+ " ),\n",
+ " ]\n",
+ ").fit(X_train, y_train)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "39651cc8-ae00-4699-9c77-3846e1658c16",
+ "metadata": {},
+ "source": [
+ "We expect a high bias due to the transformation. We correct for this bias by a multiplicative constant such that on the training set: $\\sum_i m(x_i) = \\sum_i y_i$."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "b76d3139-c4bd-44ad-ac64-42b8323f51fc",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The correction factor is 6.6446580674943165\n"
+ ]
+ }
+ ],
+ "source": [
+ "ols_corr_factor = np.sum(y_train) / np.sum(m_ols.predict(X_train))\n",
+ "print(f\"The correction factor is {ols_corr_factor}\")\n",
+ "m_ols[-1].regressor_.intercept_ += np.log(ols_corr_factor)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "658210ee-ddca-4017-9572-a0c5797321d1",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1.0000000000000002"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "np.sum(y_train) / np.sum(m_ols.predict(X_train))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "27244ec1-67ca-47f4-9820-2caade7386ce",
+ "metadata": {},
+ "source": [
+ "### 3.3 Poisson GLM"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "66149c6d-8760-4769-8201-020df64ee75b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.linear_model import PoissonRegressor\n",
+ "\n",
+ "\n",
+ "m_glm_poisson = Pipeline(\n",
+ " [\n",
+ " (\"column_transformer\", col_trans_linear),\n",
+ " (\"model\", PoissonRegressor(max_iter=10_000, alpha=1e-15, solver=\"newton-cholesky\")),\n",
+ " ]\n",
+ ").fit(X_train, y_train)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "82daee1e-b891-4589-8d62-7895d0aa2d8c",
+ "metadata": {},
+ "source": [
+ "### 3.4 Gradient Boosted Decision Trees\n",
+ "TODO: We would like to use Gamma deviance as loss, but scikit-learn does not (yet) support it. We could use XGBoost or LightGBM instead, but are content with the Poisson loss at the moment."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "c791a0b8-2218-4c4f-98dc-7e048b3ff76e",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "CPU times: user 13min 36s, sys: 27.6 s, total: 14min 3s\n",
+ "Wall time: 2min 2s\n"
+ ]
+ }
+ ],
+ "source": [
+ "%%time\n",
+ "# Note that this cell might take a little while ~ 2 minutes on my laptop.\n",
+ "from sklearn.ensemble import HistGradientBoostingRegressor\n",
+ "from sklearn.experimental import enable_halving_search_cv\n",
+ "from sklearn.model_selection import HalvingGridSearchCV\n",
+ "from sklearn.preprocessing import OrdinalEncoder\n",
+ "\n",
+ "\n",
+ "# ColumnTransformer for boosted trees\n",
+ "col_trans_bt = ColumnTransformer(\n",
+ " [\n",
+ " (\"categorical_features\", OrdinalEncoder(), x_discrete),\n",
+ " (\"numeric_features\", \"passthrough\", x_continuous),\n",
+ " ]\n",
+ ")\n",
+ "m_hgbt_poisson_base = Pipeline(\n",
+ " [\n",
+ " (\"column_transformer\", col_trans_bt),\n",
+ " (\n",
+ " \"model\", HistGradientBoostingRegressor(\n",
+ " loss=\"poisson\",\n",
+ " categorical_features=list(range(len(x_discrete))),\n",
+ " monotonic_cst={\"numeric_features__LogWeeklyPay\": 1}, # set_output API, YES!\n",
+ " max_iter=200,\n",
+ " random_state=33,\n",
+ " )\n",
+ " ),\n",
+ " ]\n",
+ ")\n",
+ "\n",
+ "param_grid = {\n",
+ " \"model__learning_rate\": [0.02, 0.05],\n",
+ " \"model__min_samples_leaf\": [20, 30, 40],\n",
+ " \"model__l2_regularization\": [0.1, 1],\n",
+ " \"model__max_depth\": [None, 3],\n",
+ "}\n",
+ "\n",
+ "\n",
+ "# successive halfing grid search (CV) on the training data\n",
+ "shgs = HalvingGridSearchCV(\n",
+ " m_hgbt_poisson_base,\n",
+ " param_grid=param_grid,\n",
+ " cv=5,\n",
+ " scoring=\"neg_mean_gamma_deviance\",\n",
+ " random_state=321,\n",
+ ").fit(X_train, y_train)\n",
+ "m_hgbt_poisson = shgs.best_estimator_"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "3ee2c06c-8e85-40f6-9133-727e2af81cab",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "({'model__l2_regularization': 1,\n",
+ " 'model__learning_rate': 0.05,\n",
+ " 'model__max_depth': 3,\n",
+ " 'model__min_samples_leaf': 40},\n",
+ " -3.547907637012485)"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "shgs.best_params_, shgs.best_score_"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "6dacffc8-9fd8-4b56-bd4e-9a9b71dbbdcb",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "130"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "m_hgbt_poisson[-1].n_iter_"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1a5f12d6-966d-45cc-ac1e-cfd43595a081",
+ "metadata": {},
+ "source": [
+ "## 4. Calibration Assessment\n",
+ "To make the code easier, we put together the predictions of our models on the test set in a single dataframe."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "4bd40f96-2581-499e-8bc6-2a3bb019de7b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df_pred_test = pd.DataFrame(\n",
+ " {\n",
+ " \"Trivial\": m_trivial.predict(X_test),\n",
+ " \"OLS\": m_ols.predict(X_test),\n",
+ " \"GLM_Poisson\": m_glm_poisson.predict(X_test),\n",
+ " \"HGBT_Poisson\": m_hgbt_poisson.predict(X_test),\n",
+ " }\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "631c120d-c991-4c51-9a49-0282c21afbf4",
+ "metadata": {},
+ "source": [
+ "## 4.1. Reliability Diagrams\n",
+ "A reliability diagram plots an estimation of $E(Y|m(X))$ versus $m(X)$.\n",
+ "A good way to estimate $E(Y|m(X))$ and thereby avoiding manual binning is by isotonic regression.\n",
+ "This is implemented in `plot_reliability_diagram`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "70fa98bf-2ab2-40fe-a1ca-ce3af33ea261",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "from model_diagnostics.calibration import compute_bias, plot_bias, plot_reliability_diagram"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "id": "f58490f0-9cae-4f2d-bf89-7f7a501d9995",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Text(0.5, 1.0, 'Reliability Diagram HGBT_Poisson Poisson HGBT')"
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, axes = plt.subplots(ncols=3, figsize=(12, 4), sharex=True, sharey=True)\n",
+ "\n",
+ "plot_reliability_diagram(\n",
+ " y_obs=y_test,\n",
+ " y_pred=df_pred_test[\"OLS\"],\n",
+ " ax=axes[0],\n",
+ ")\n",
+ "axes[0].set_title(axes[0].get_title() + \" OLS\")\n",
+ "\n",
+ "plot_reliability_diagram(\n",
+ " y_obs=y_test,\n",
+ " y_pred=df_pred_test[\"GLM_Poisson\"],\n",
+ " ax=axes[1]\n",
+ ")\n",
+ "axes[1].set_title(axes[1].get_title() + \" Poisson GLM\")\n",
+ "\n",
+ "plot_reliability_diagram(\n",
+ " y_obs=y_test,\n",
+ " y_pred=df_pred_test[\"HGBT_Poisson\"],\n",
+ " ax=axes[2]\n",
+ ")\n",
+ "axes[2].set_title(axes[2].get_title() + \" Poisson HGBT\")\n",
+ "#fig.set_layout_engine(layout=\"tight\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6e1789fb-b36c-4e37-b764-29ca5e031bee",
+ "metadata": {},
+ "source": [
+ "### 4.2 Conditional Bias"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a77ba53f-dea6-4b54-afd2-2d5fcd39ac77",
+ "metadata": {},
+ "source": [
+ "### Unconditional Bias"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "966a21af-8b3e-4d60-a25e-4e1334afeadc",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " model | \n",
+ " bias_mean | \n",
+ " bias_count | \n",
+ " bias_stddev | \n",
+ " p_value | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " Trivial | \n",
+ " -391.458696 | \n",
+ " 20505 | \n",
+ " 56480.368800 | \n",
+ " 0.320979 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " OLS | \n",
+ " -158.226277 | \n",
+ " 20505 | \n",
+ " 53049.749161 | \n",
+ " 0.669314 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " GLM_Poisson | \n",
+ " -142.672362 | \n",
+ " 20505 | \n",
+ " 53048.066624 | \n",
+ " 0.700150 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " HGBT_Poisson | \n",
+ " -94.439905 | \n",
+ " 20505 | \n",
+ " 53100.300161 | \n",
+ " 0.798976 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " model bias_mean bias_count bias_stddev p_value\n",
+ "0 Trivial -391.458696 20505 56480.368800 0.320979\n",
+ "1 OLS -158.226277 20505 53049.749161 0.669314\n",
+ "2 GLM_Poisson -142.672362 20505 53048.066624 0.700150\n",
+ "3 HGBT_Poisson -94.439905 20505 53100.300161 0.798976"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "compute_bias(\n",
+ " y_obs=y_test,\n",
+ " y_pred=df_pred_test,\n",
+ " feature=None,\n",
+ ").to_pandas()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c828b8d2-1b80-4561-8d1d-0e24e5f6f85c",
+ "metadata": {},
+ "source": [
+ "#### Bias Conditional on Gender"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "id": "bcc0aaf6-8653-4a7d-8c66-c0a4713e700f",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " model | \n",
+ " Gender | \n",
+ " bias_mean | \n",
+ " bias_count | \n",
+ " bias_stddev | \n",
+ " p_value | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " Trivial | \n",
+ " F | \n",
+ " -4693.414762 | \n",
+ " 4441 | \n",
+ " 61676.821475 | \n",
+ " 4.115092e-07 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " Trivial | \n",
+ " M | \n",
+ " 797.845767 | \n",
+ " 16064 | \n",
+ " 54899.756026 | \n",
+ " 6.550241e-02 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " OLS | \n",
+ " F | \n",
+ " -1212.773117 | \n",
+ " 4441 | \n",
+ " 58523.230496 | \n",
+ " 1.673504e-01 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " OLS | \n",
+ " M | \n",
+ " 133.310235 | \n",
+ " 16064 | \n",
+ " 51432.053128 | \n",
+ " 7.425259e-01 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " GLM_Poisson | \n",
+ " F | \n",
+ " -184.995122 | \n",
+ " 4441 | \n",
+ " 58572.701607 | \n",
+ " 8.333048e-01 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " GLM_Poisson | \n",
+ " M | \n",
+ " -130.971952 | \n",
+ " 16064 | \n",
+ " 51418.078829 | \n",
+ " 7.468195e-01 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " HGBT_Poisson | \n",
+ " F | \n",
+ " -303.384575 | \n",
+ " 4441 | \n",
+ " 58351.353739 | \n",
+ " 7.289956e-01 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " HGBT_Poisson | \n",
+ " M | \n",
+ " -36.675756 | \n",
+ " 16064 | \n",
+ " 51556.136879 | \n",
+ " 9.281593e-01 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " model Gender bias_mean bias_count bias_stddev p_value\n",
+ "0 Trivial F -4693.414762 4441 61676.821475 4.115092e-07\n",
+ "1 Trivial M 797.845767 16064 54899.756026 6.550241e-02\n",
+ "2 OLS F -1212.773117 4441 58523.230496 1.673504e-01\n",
+ "3 OLS M 133.310235 16064 51432.053128 7.425259e-01\n",
+ "4 GLM_Poisson F -184.995122 4441 58572.701607 8.333048e-01\n",
+ "5 GLM_Poisson M -130.971952 16064 51418.078829 7.468195e-01\n",
+ "6 HGBT_Poisson F -303.384575 4441 58351.353739 7.289956e-01\n",
+ "7 HGBT_Poisson M -36.675756 16064 51556.136879 9.281593e-01"
+ ]
+ },
+ "execution_count": 20,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "compute_bias(\n",
+ " y_obs=y_test,\n",
+ " y_pred=df_pred_test,\n",
+ " feature=X_test[\"Gender\"],\n",
+ ").to_pandas()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "a57d6452-5f93-409b-82e2-36350fa86545",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAHHCAYAAABjvibXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABC30lEQVR4nO3deXhTZf7+8TtJ23SBthRoC7IVWTuAbFKrojJUi9aFn7gjCgJuoCwOKOoUXEYURhlRBBlG4DuuMJuySgXFUSpIAWUXtQoDtFWBBEqbLnl+f2APRAoWPKUE3q/rymXynM8553MS7HP35CR1GGOMAAAAYBtnTTcAAABwpiFgAQAA2IyABQAAYDMCFgAAgM0IWAAAADYjYAEAANiMgAUAAGAzAhYAAIDNCFgAAAA2I2ABOGs5HA6NGzeupts4ynfffSeHw6FZs2bVdCsAThIBC8AZY9asWXI4HAG3+Ph49ejRQ4sWLarp9vTRRx8F9BYaGqrmzZvrjjvu0LfffmvLPlasWKFx48Zp3759tmwPwMkJqekGAMBuTz75pJKSkmSMUX5+vmbNmqWrrrpK8+bN09VXX23VFRUVKSTk1P8YfPDBB3X++eertLRUa9as0fTp07VgwQKtX79eDRs2/E3bXrFihZ544gn1799fsbGx9jQM4IQRsACcca688kp17drVejxw4EAlJCTorbfeCghY4eHhNdGeunfvrhtuuEGSNGDAALVq1UoPPvigZs+erTFjxtRITwDsxVuEAM54sbGxioiIOOps1S+vwfr+++91//33q3Xr1oqIiFDdunV144036rvvvgtYr7S0VE888YRatmyp8PBw1a1bVxdffLGysrJOqr/f//73kqTc3Nzj1i1btkzdu3dXVFSUYmNjdd1112nz5s3W8nHjxmnUqFGSpKSkJOutyF/2D6D6cQYLwBnH4/Hoxx9/lDFGBQUFeumll3TgwAHdfvvtx13v888/14oVK3TLLbeoUaNG+u677zR16lRddtll2rRpkyIjIyUdCjLjx4/XoEGD1K1bN3m9Xq1evVpr1qzR5ZdffsL9fvPNN5KkunXrHrPmgw8+0JVXXqnmzZtr3LhxKioq0ksvvaSLLrpIa9asUbNmzXT99dfrq6++0ltvvaVJkyapXr16kqT69eufcE8AfhsCFoAzTlpaWsBjt9ut11577VfDT0ZGhvXWXYVrrrlGqamp+uc//6l+/fpJkhYsWKCrrrpK06dPP6n+9u/frx9//FGlpaVau3athg0bJofDoT59+hxznVGjRikuLk7Z2dmKi4uTJPXu3VudOnXS2LFjNXv2bHXo0EGdO3fWW2+9pd69e6tZs2Yn1R+A346ABeCMM2XKFLVq1UqSlJ+fr9dff12DBg1S7dq1df311x9zvYiICOt+aWmpvF6vWrRoodjYWK1Zs8YKWLGxsdq4caO2bdumli1bnnB/d911V8Dj+vXra/bs2QHXjR1p9+7dWrdunUaPHm2FK0nq0KGDLr/8ci1cuPCEewBQvQhYAM443bp1Cwgrt956qzp16qShQ4fq6quvVlhYWKXrFRUVafz48Zo5c6Z27twpY4y1zOPxWPeffPJJXXfddWrVqpXatWunXr16qV+/furQoUOV+svMzFT37t3lcrlUr149tW3b9rifZvz+++8lSa1btz5qWdu2bfX++++rsLBQUVFRVdo/gOrHRe4AznhOp1M9evTQ7t27tW3btmPWPfDAA/rTn/6km266SXPmzNGSJUuUlZWlunXryu/3W3WXXHKJvvnmG7322mtq166dZsyYoc6dO2vGjBlV6qd9+/ZKS0tTjx491L59+xr5qggA1Yv/qwGcFcrKyiRJBw4cOGbNP/7xD9155516/vnnrbHi4uJKv7QzLi5OAwYM0IABA3TgwAFdcsklGjdunAYNGmR7702bNpUkbd269ahlW7ZsUb169ayzVw6Hw/b9AzhxnMECcMYrLS3VkiVLFBYWprZt2x6zzuVyBbwtKEkvvfSSysvLA8Z++umngMe1atVSixYt5PP57Gv6CA0aNFDHjh01e/bsgLC3YcMGLVmyRFdddZU1VhG0+CZ3oGZxBgvAGWfRokXasmWLJKmgoEBvvvmmtm3bpkceeUTR0dHHXO/qq6/W3//+d8XExCg5OVnZ2dn64IMPjvr6hOTkZF122WXq0qWL4uLitHr1av3jH//Q0KFDq+2YJk6cqCuvvFKpqakaOHCg9TUNMTExAd/l1aVLF0nSY489pltuuUWhoaG65ppruD4LOMUIWADOOJmZmdb98PBwtWnTRlOnTtU999xz3PVefPFFuVwuvfHGGyouLtZFF12kDz74QOnp6QF1Dz74oN577z0tWbJEPp9PTZs21dNPP219yWd1SEtL0+LFizV27FhlZmYqNDRUl156qZ577jklJSVZdeeff76eeuopTZs2TYsXL5bf71dubi4BCzjFHOaX58MBAADwm3ANFgAAgM0IWAAAADYjYAEAANiMgAUAAGAzAhYAAIDNCFgAAAA243uwaojf79euXbtUu3Zt/rQFAABBwhij/fv3q2HDhnI6j32eioBVQ3bt2qXGjRvXdBsAAOAk7NixQ40aNTrmcgJWDaldu7akQy/Q8f50BwAAOH14vV41btzYmsePhYBVQyreFoyOjiZgAQAQZH7t8h4ucgcAALAZAQsAAMBmQRWwdu7cqdtvv11169ZVRESE2rdvr9WrV1vLjTHKzMxUgwYNFBERobS0NG3bti1gG3v27FHfvn0VHR2t2NhYDRw4UAcOHAio+fLLL9W9e3eFh4ercePGmjBhwlG9zJ07V23atFF4eLjat2+vhQsXVs9BAwCAoBM0AWvv3r266KKLFBoaqkWLFmnTpk16/vnnVadOHatmwoQJmjx5sqZNm6aVK1cqKipK6enpKi4utmr69u2rjRs3KisrS/Pnz9fHH3+su+++21ru9Xp1xRVXqGnTpsrJydHEiRM1btw4TZ8+3apZsWKFbr31Vg0cOFBr165V79691bt3b23YsOHUPBkAAOD0ZoLEww8/bC6++OJjLvf7/SYxMdFMnDjRGtu3b59xu93mrbfeMsYYs2nTJiPJfP7551bNokWLjMPhMDt37jTGGPPKK6+YOnXqGJ/PF7Dv1q1bW49vuukmk5GREbD/lJQUc88991T5eDwej5FkPB5PldcBAAA1q6rzd9CcwXrvvffUtWtX3XjjjYqPj1enTp3017/+1Vqem5urvLw8paWlWWMxMTFKSUlRdna2JCk7O1uxsbHq2rWrVZOWlian06mVK1daNZdcconCwsKsmvT0dG3dulV79+61ao7cT0VNxX4q4/P55PV6A24AAODMFDQB69tvv9XUqVPVsmVLvf/++7rvvvv04IMPavbs2ZKkvLw8SVJCQkLAegkJCdayvLw8xcfHBywPCQlRXFxcQE1l2zhyH8eqqVhemfHjxysmJsa68SWjAACcuYImYPn9fnXu3FnPPPOMOnXqpLvvvluDBw/WtGnTarq1KhkzZow8Ho9127FjR023BAAAqknQBKwGDRooOTk5YKxt27bavn27JCkxMVGSlJ+fH1CTn59v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rlBycrL69eunCRMmKC8vT48//riGDBkit9stSbr33nv18ssva/To0brrrru0bNkyzZkzRwsWLLD2O3LkSN15553q2rWrunXrpr/85S8qLCzUgAEDTtGzAQAATmdBE7CqYtKkSXI6nerTp498Pp/S09P1yiuvWMtdLpfmz5+v++67T6mpqYqKitKdd96pJ5980qpJSkrSggULNGLECL344otq1KiRZsyYofT0dKvm5ptv1g8//KDMzEzl5eWpY8eOWrx48VEXvgMAgLOTwxhjarqJs5HX61VMTIw8Ho9tbxceLClTcuahL0Td9GS6IsPOqPwMAMCvqu65sKrzd9BcgwUAABAsCFgAAAA2I2ABAADYjIAFAABgMwIWAACAzQhYAAAANiNgAQAA2IyABQAAYDMCFgAAgM0IWAAAADYjYAEAANiMgAUAAGAzAhYAAIDNCFgAAAA2I2ABAADYjIAFAABgMwIWAACAzQhYAAAANiNgAQAA2IyABQAAYDMCFgAAgM0IWAAAADYjYAEAANiMgAUAAGAzAhYAAIDNCFgAAAA2I2ABAADYjIAFAABgMwIWAACAzQhYAAAANiNgAQAA2IyABQAAYDMCFgAAgM0IWAAAADYjYAEAANiMgAUAAGAzAhYAAIDNCFgAAAA2I2ABAADYjIAFAABgMwIWAACAzQhYAAAANiNgAQAA2IyABQAAYDMCFgAAgM0IWAAAADYjYAEAANgsaALW+PHjdf7556t27dqKj49X7969tXXr1oCa4uJiDRkyRHXr1lWtWrXUp08f5efnB9Rs375dGRkZioyMVHx8vEaNGqWysrKAmo8++kidO3eW2+1WixYtNGvWrKP6mTJlipo1a6bw8HClpKRo1apVth8zAAAITkETsJYvX64hQ4bos88+U1ZWlkpLS3XFFVeosLDQqhkxYoTmzZunuXPnavny5dq1a5euv/56a3l5ebkyMjJUUlKiFStWaPbs2Zo1a5YyMzOtmtzcXGVkZKhHjx5at26dhg8frkGDBun999+3at555x2NHDlSY8eO1Zo1a3TeeecpPT1dBQUFp+bJAAAApzcTpAoKCowks3z5cmOMMfv27TOhoaFm7ty5Vs3mzZuNJJOdnW2MMWbhwoXG6XSavLw8q2bq1KkmOjra+Hw+Y4wxo0ePNr/73e8C9nXzzTeb9PR063G3bt3MkCFD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ysfk8XiMJOPxeKq8zq8p9JWapg/PN00fnm8KfaW2bRcAABxS1fk7KM5grVmzRjt37pTT6VSnTp3UoEEDXXnlldqwYYNVk52drfbt2yshIcEaS09Pl9fr1caNG62atLS0gG2np6crOztbklRSUqKcnJyAGqfTqbS0NKsmJydHpaWlATVt2rRRkyZNrJpTpcBbrA07PdZt0y6vtWzTLm/Asg07PSrwFp/S/gAAOFuF1HQDVfHtt99KksaNG6cXXnhBzZo10/PPP6/LLrtMX331leLi4pSXlxcQriRZj/Py8qz/Vlbj9XpVVFSkvXv3qry8vNKaLVu2WNsICwtTbGzsUTUV+6mMz+eTz+ezHnu93mPWVtUbK7frxaXbKl12w7Sjw96wni014vJWv3m/AADg+Go0YD3yyCN67rnnjluzefNm+f1+SdJjjz2mPn36SJJmzpypRo0aae7cubrnnnuqvdffavz48XriiSds3WbflCa6PDnh1wt/Fl/bbev+AQBA5Wo0YD300EPq37//cWuaN2+u3bt3S5KSk5OtcbfbrebNm2v79u2SpMTExKM+7Vfxyb7ExETrv7/8tF9+fr6io6MVEREhl8sll8tVac2R2ygpKdG+ffsCzmIdWVOZMWPGaOTIkdZjr9erxo0bH/fYf018dLjio8N/0zYAAID9avQarPr166tNmzbHvYWFhalLly5yu93aunWrtW5paam+++47NW3aVJKUmpqq9evXB3zaLysrS9HR0VYwS01N1dKlSwN6yMrKUmpqqiRZ+zqyxu/3a+nSpVZNly5dFBoaGlCzdetWbd++3aqpjNvtVnR0dMANAACcoU7RRfe/2bBhw8w555xj3n//fbNlyxYzcOBAEx8fb/bs2WOMMaasrMy0a9fOXHHFFWbdunVm8eLFpn79+mbMmDHWNr799lsTGRlpRo0aZTZv3mymTJliXC6XWbx4sVXz9ttvG7fbbWbNmmU2bdpk7r77bhMbGxvw6cR7773XNGnSxCxbtsysXr3apKammtTU1BM6nur4FCEAAKheVZ2/gyZglZSUmIceesjEx8eb2rVrm7S0NLNhw4aAmu+++85ceeWVJiIiwtSrV8889NBDprQ08OsKPvzwQ9OxY0cTFhZmmjdvbmbOnHnUvl566SXTpEkTExYWZrp162Y+++yzgOVFRUXm/vvvN3Xq1DGR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",
+ "text/plain": [
+ "