{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Hosmer-Lemeshow test (HL test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Theoretical Background\n", "The Hosmer-Lemeshow test (HL Test) is a statistical test that can be used to assess the calibration of a probabilistic model. The test works by dividing the predicted probabilities into groups (typically deciles) and comparing the observed and expected frequencies of events in each group. A non-significant p-value (usually greater than 0.05) indicates we cannot reject the hypothesis that the model is well-calibrated, while a significant p-value suggests the opposite. The Hosmer-Lemeshow test is widely used in the literature and industry since it is simple to implement and interpret.\n", "\n", "In order to calculate the Hosmer-Lemeshow test statistic, we need to first determine the binning scheme used to divide the predicted probabilities into groups. Conventionally, the predicted probabilities are divided into 10 equal-width bins. We will label the equal-width binning Hosmer-Lemeshow test as HL-H and equal-count binning Hosmer-Lemeshow test as HL-C. The Hosmer-Lemeshow test statistic is then calculated as follows:\n", "\n", "$$\n", "\\text{HL} = \\sum_{m=1}^{M} \\left[\\frac{(O_{1,m}-E_{1,m})^2}{E_{1,m}} + \\frac{(O_{0,m}-E_{0,m})^2}{E_{0,m}}\\right] = \\sum_{m=1}^{M} \\frac{(O_{1,m}-E_{1,m})^2}{E_{1,m}(1-\\frac{E_{1,m}}{N_m})} \\sim \\chi^2_{M-2}\n", "$$\n", "\n", "where $E_{1,m}$ is the expected number of class 1 events in the $\\text{m}^{th}$ bin, $O_{1,m}$ is the observed number of class 1 events in the $\\text{m}^{th}$ bin, $N_m$ is the total number of observations in the $\\text{m}^{th}$ bin, and $M$ is the number of bins. The HL test statistic is distributed as a chi-squared distribution with $M-2$ degrees of freedom. We can then use this test statistic to calculate the p-value for the test and determine whether we can reject the null hypothesis that the model is well-calibrated. Notice that the degree of freedom of HL test is $M-2$ by default but the degree of freedom should be $M$ when the samples is not used for training (Hosmer Jr et. al., 2013). We provides the option to specify the degree of freedom in the `calzone`. The default value is still $M-2$." ] }, { "cell_type": "markdown", "metadata": { "vscode": { "languageId": "plaintext" } }, "source": [ "## Pros of HL test\n", "\n", "The Hosmer-Lemeshow test offers several advantages in assessing calibration. It is a non-parametric test, meaning it does not require any assumptions about the distribution of the predicted probabilities, and it provides statistical meaning to the resulting test statistic. It is also very intuitive and easy to understand since it is just a chi-square based test. It can be calculated from the result of the reliability diagram. The HL test is widely used in the literature as a validation method for model calibration." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cons of HL Test\n", "\n", "Many studies have shown that the HL test is not an ideal way to examine the calibration of a model. The biggest problem is that the HL test depends on the binning scheme used. Whether equal-width or equal-count binning and the number of bins used can affect the results of the HL test. It is shown that the standard 10 equal-width bins often have the wrong size and low statistical power. Therefore, it is recommended not to use the HL test to examine the calibration of a model (Hosmer et. al., 1997). However, the HL test is still a useful tool to quickly check the calibration of a model and provide a reference for the calibration of a model." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Calculating HL test statistics and p-value with calzone\n", "\n", "There are again two ways to calculate the HL test statistics and p-value with calzone. One is to call the function explicitly, and the other is to use the calzone.metrics.CalibrationMetrics class." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "HL-H Test Statistic: 8.884991559088098\n", "HL-H p-value: 0.5430520576015005\n" ] } ], "source": [ "from calzone.utils import reliability_diagram,data_loader\n", "from calzone.metrics import hosmer_lemeshow_test\n", "import numpy as np\n", "\n", "### loading the data\n", "wellcal_dataloader = data_loader(data_path=\"../../../example_data/simulated_welldata.csv\")\n", "\n", "### calculating the HL-H TS\n", "reliability,confindence,bin_edges,bin_counts = reliability_diagram(wellcal_dataloader.labels,wellcal_dataloader.probs,num_bins=10, class_to_plot=1, is_equal_freq=False)\n", "\n", "#df = 10 instead 8 since it is validation data\n", "HL_H_ts,HL_H_p,df = hosmer_lemeshow_test(reliability,confindence,bin_count=bin_counts, df=10)\n", "print(\"HL-H Test Statistic: \",HL_H_ts)\n", "print(\"HL-H p-value: \",HL_H_p)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "HL-C Test Statistic: 3.694947603203135\n", "HL-C p-value: 0.9600610057855211\n" ] } ], "source": [ "### similar for HL-C model\n", "reliability,confindence,bin_edges,bin_counts = reliability_diagram(wellcal_dataloader.labels,wellcal_dataloader.probs,num_bins=10, class_to_plot=1, is_equal_freq=True)\n", "\n", "HL_C_ts,HL_C_p,df = hosmer_lemeshow_test(reliability,confindence,bin_count=bin_counts, df=10)\n", "print(\"HL-C Test Statistic: \",HL_C_ts)\n", "print(\"HL-C p-value: \",HL_C_p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see the result from equal-width binning and equal-count binning are different. We will demostrate how to use the calzone.metrics.CalibrationMetrics class." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'HL-H score': 8.884991559088098,\n", " 'HL-H p-value': 0.5430520576015005,\n", " 'HL-C score': 3.694947603203135,\n", " 'HL-C p-value': 0.9600610057855211}" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "### using the CalibrationMetrics class\n", "from calzone.metrics import CalibrationMetrics\n", "calmetrics = CalibrationMetrics(class_to_calculate=1)\n", "calmetrics.calculate_metrics(wellcal_dataloader.labels, wellcal_dataloader.probs, metrics=['HL-H', 'HL-C'],df=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## P-value of HL test" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will show the statistical size of HL test. The statistical size refer to the type 1 error rate of a statistical test and idealy should match the p-value . Notice that the size of HL test had been shown to depend on sample size, number of bin and binning scheme (Hosmer et. al. 1997). We will generate fake data to show the size of HL test." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "### The size of HL Test\n", "from calzone.utils import fake_binary_data_generator\n", "np.random.seed(123)\n", "fakedata_generator = fake_binary_data_generator(alpha_val=0.5, beta_val=0.5)\n", "cal_metrics = CalibrationMetrics()\n", "sample_size = 1000\n", "simulation_size = 10000\n", "results = []\n", "# generate data\n", "for i in range(simulation_size):\n", " X, y = fakedata_generator.generate_data(sample_size)\n", " if i == 0:\n", " tempresult = cal_metrics.calculate_metrics(y, X, ['HL-H', 'HL-C'],return_numpy=False, df=10)\n", " keys = list(tempresult.keys())\n", " results.append(np.array(list(tempresult.values())))\n", " else:\n", " tempresult = cal_metrics.calculate_metrics(y, X, ['HL-H', 'HL-C'],return_numpy=True, df=10)\n", " results.append(tempresult)\n", "results = np.array(results)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The size of HL-H is : 0.047\n", "The size of HL-C is : 0.055\n" ] } ], "source": [ "### Showing the size of the model\n", "import matplotlib.pyplot as plt\n", "hl_h_pvalue = results[:,1]\n", "hl_c_pvalue = results[:,3]\n", "size_h = np.mean(hl_h_pvalue < 0.05)\n", "size_c = np.mean(hl_c_pvalue < 0.05)\n", "print(\"The size of HL-H is :\", round(size_h,3))\n", "print(\"The size of HL-C is :\", round(size_c,3))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'P-value distribution of the HL test')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "value,_,_=plt.hist(hl_h_pvalue, bins=20, density=True, alpha=0.5, label='Equal-width binning',histtype='step')\n", "plt.vlines(size_h,ymin=0,ymax=np.max(value),linestyle='--',label=r'Size of equal-width bin ($\\alpha=0.05$) = '+str(round(size_h,3)),colors='r')\n", "plt.legend(loc='upper right')\n", "plt.xlabel('p-value')\n", "plt.ylabel('Density')\n", "plt.title('P-value distribution of the HL test')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'P-value distribution of the HL test')" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABZ+UlEQVR4nO3dd1gUV9sG8Hspy9IVRIoiYC/YglHBGCwRW2zRaNQIGE3kVWOUYIyvsRs1Ro0tmKaiXxCJNUU0EqPG3o0xmMQoigVEUOl193x/8LK67oIs7rLsev+ua65rdubMmWeGhXk4Z86MRAghQERERGQizAwdABEREZEuMbkhIiIik8LkhoiIiEwKkxsiIiIyKUxuiIiIyKQwuSEiIiKTwuSGiIiITAqTGyIiIjIpTG6IiIjIpDC5IaMQFRUFiUSinCwsLFC3bl2MHj0at2/frvJ4vL29ERoaWuX7LcvBgwchkUhw8OBB5bLQ0FB4e3trVc+dO3cwZ84cXLhwQavtNO1LIpFg4sSJWtXzNJGRkYiKilJbfv36dUgkEo3rqpPY2Fi0aNEC1tbWkEgkZZ7nhIQEzJkzB9evX1db16VLF/j6+uo3UJT8TO3s7Mpcb2dnp/I7UPozWLp0qdb72rx5M1asWFGJKCsuNzcXc+bMUfkdIdPF5IaMyoYNG3D8+HHEx8fj7bffRkxMDDp37oycnBxDh1btzJw5Ezt37tRqmzt37mDu3LlaJzeV2VdllJXcuLu74/jx4+jbt6/eY6ise/fuYdSoUWjQoAH27t2L48ePo3HjxhrLJiQkYO7cuRqTG1NUVcnN3Llzmdw8JywMHQCRNnx9fdGuXTsAQNeuXSGXyzF//nzs2rULI0eONHB01UuDBg30vo/c3FzY2NhUyb7KY2VlhY4dOxo0hqf5559/UFRUhDfffBOBgYGGDofIpLHlhoxa6QXtxo0bGtcXFRWhdu3aGDVqlNq6hw8fwtraGuHh4QCA/Px8vP/++2jTpg0cHR3h5OQEf39/fP/990+No7Tb7Mn/tDV1FwHAL7/8gu7du8PBwQE2Njbo1KkT9u/fX4EjBv766y/06tULNjY2qFWrFsLCwpCVlaVWTlNX0datW9GhQwc4OjrCxsYG9evXx1tvvaWM9cUXXwQAjB49WtkFOGfOHGV9dnZ2+OOPPxAUFAR7e3t07969zH2V+vLLL9G4cWNYWVmhefPm2LJli8r6OXPmQCKRqG335Dn19vbGn3/+iUOHDiljK91nWd1SR44cQffu3WFvbw8bGxsEBARg9+7dGvdz4MAB/Oc//0GtWrXg7OyM1157DXfu3NF4TE/64Ycf4O/vDxsbG9jb26NHjx44fvy4cn1oaCheeuklAMCwYcMgkUjQpUsXjXVFRUXh9ddfB1CSwJce65PHdvr0aXTu3Fn5c1y8eDEUCoVKmczMTERERMDHxwdSqRR16tTB5MmTq1VLZ5cuXbB7927cuHFDpeu5VGFhIRYsWICmTZvCysoKLi4uGD16NO7du6dSz6+//oouXbrA2dkZ1tbWqFevHgYPHozc3Fxcv34dLi4uAIC5c+cq91GdupZJt5jckFH7999/AUD5h+tJlpaWePPNN7F9+3ZkZmaqrIuJiUF+fj5Gjx4NACgoKMD9+/cRERGBXbt2ISYmBi+99BJee+01bNq0SWcxf/vttwgKCoKDgwM2btyI7777Dk5OTujZs+dTE5y7d+8iMDAQly5dQmRkJP7v//4P2dnZFbq35fjx4xg2bBjq16+PLVu2YPfu3Zg1axaKi4sBAC+88AI2bNgAAPjoo49w/PhxHD9+HGPHjlXWUVhYiP79+6Nbt274/vvvMXfu3HL3+cMPP2DVqlWYN28etm3bBi8vLwwfPhzbtm17arxP2rlzJ+rXr4+2bdsqYyuvK+zQoUPo1q0bMjIysG7dOsTExMDe3h79+vVDbGysWvmxY8fC0tISmzdvxpIlS3Dw4EG8+eabT41r8+bNGDBgABwcHBATE4N169bhwYMH6NKlC44cOQKgpNvu888/BwAsXLgQx48fR2RkpMb6+vbti4ULFwIAPv/8c+WxPt7llpKSgpEjR+LNN9/EDz/8gN69e2P69On49ttvlWVyc3MRGBiIjRs3YtKkSdizZw+mTZuGqKgo9O/fH0KIpx4bABQXF2ucdCUyMhKdOnWCm5ub8lhLE0OFQoEBAwZg8eLFGDFiBHbv3o3FixcjPj4eXbp0QV5eHoCS5LZv376QSqVYv3499u7di8WLF8PW1haFhYVwd3fH3r17AQBjxoxR7mPmzJk6Ow6qZgSREdiwYYMAIE6cOCGKiopEVlaW+Omnn4SLi4uwt7cXKSkpZW578eJFAUB89dVXKsvbt28v/Pz8ytyuuLhYFBUViTFjxoi2bduqrPPy8hIhISFq8SUmJqqUO3DggAAgDhw4IIQQIicnRzg5OYl+/fqplJPL5aJ169aiffv25ZwFIaZNmyYkEom4cOGCyvIePXqo7EcIIUJCQoSXl5fy89KlSwUA8fDhwzLrP336tAAgNmzYoLYuJCREABDr16/XuO7xfQkhBABhbW2t8rMpLi4WTZs2FQ0bNlQumz17ttD0p0jTOW3RooUIDAxUK5uYmKgWd8eOHUXt2rVFVlaWyv59fX1F3bp1hUKhUNnP+PHjVepcsmSJACCSk5PV9ldKLpcLDw8P0bJlSyGXy5XLs7KyRO3atUVAQIByWel3YevWrWXWV2rr1q1qP89SgYGBAoA4efKkyvLmzZuLnj17Kj8vWrRImJmZidOnT6uU27ZtmwAg4uLiyo2h9Odd3vT470Dpz+DTTz996vE9qW/fvmrfHyGEiImJEQDE9u3bVZaXfk8jIyNVjunJ34vH3bt3TwAQs2fP1jo+Mj5suSGj0rFjR1haWsLe3h6vvvoq3NzcsGfPHri6ukIIofG/y5YtW8LPz0/ZKgEAly9fxqlTp5RdMqW2bt2KTp06wc7ODhYWFrC0tMS6detw+fJlncR/7Ngx3L9/HyEhISpxKhQK9OrVC6dPny63y+DAgQNo0aIFWrdurbJ8xIgRT913aZfT0KFD8d1331V6lNngwYMrXLZ79+5wdXVVfjY3N8ewYcPw77//4tatW5Xaf0Xk5OTg5MmTGDJkiMqIH3Nzc4waNQq3bt3C33//rbJN//79VT63atUKQNldngDw999/486dOxg1ahTMzB79ObWzs8PgwYNx4sQJ5Obm6uKQVLi5uaF9+/Zq8T4e608//QRfX1+0adNG5bvWs2dPjV2lmlhbW+P06dMaJ2tra10flpqffvoJNWrUQL9+/VSOoU2bNnBzc1MeQ5s2bSCVSvHOO+9g48aNuHbtmt5jo+qNyQ0ZlU2bNuH06dM4f/487ty5g4sXL6JTp04AgI0bN8LS0lJlKvXWW2/h+PHj+OuvvwCUjLqysrLC8OHDlWV27NiBoUOHok6dOvj2229x/PhxnD59Gm+99Rby8/N1Ev/du3cBAEOGDFGL9ZNPPoEQAvfv3y9z+/T0dLi5uakt17TsSS+//DJ27dqF4uJiBAcHo27duvD19UVMTEyF47exsYGDg0OFy5cXa3p6eoXr0daDBw8ghIC7u7vaOg8PD437d3Z2VvlsZWUFAMquD01K6yhrPwqFAg8ePNAu+Ap4MlagJN7HY7179y4uXryo9j2zt7eHEAJpaWlP3Y+ZmRnatWuncXo8mdOXu3fv4uHDh5BKpWrHkZKSojyGBg0a4JdffkHt2rUxYcIENGjQAA0aNMDKlSv1HiNVTxwtRUalWbNmytFST+rXrx9Onz6tcd3w4cMRHh6OqKgofPzxx/i///s/DBw4EDVr1lSW+fbbb+Hj44PY2FiVGxoLCgqeGpdMJtNY9skLSK1atQAAq1evLnN0z+MtHU9ydnZGSkqK2nJNyzQZMGAABgwYgIKCApw4cQKLFi3CiBEj4O3tDX9//6dur+nG3/KUF2vpBfrxc1eaUADq504bNWvWhJmZGZKTk9XWld4kXPqzeBalx1DWfszMzFS+Y1WpVq1asLa2xvr168tcX92V3txder/Mk+zt7ZXznTt3RufOnSGXy3HmzBmsXr0akydPhqurK954442qCpmqCSY3ZDKcnZ01/kcLlFzsBg4ciE2bNsHf3x8pKSlqXVISiQRSqVTlAp6SklKh0VKlo3YuXryIJk2aKJf/8MMPKuU6deqEGjVqICEhoVIPuOvatSuWLFmC33//XaVravPmzVrVY2VlhcDAQNSoUQM///wzzp8/D39//wq1Vmhj//79uHv3rjJhk8vliI2NRYMGDVC3bl0AqueutOsMAH788UeNcVckNltbW3To0AE7duzA0qVLlV0oCoUC3377LerWrVvmM2a00aRJE9SpUwebN29GRESE8ruTk5OD7du3K0dQaUsXP4dXX30VCxcuhLOzM3x8fCpdT1Uo6+f66quvYsuWLZDL5ejQoUOF6jI3N0eHDh3QtGlTREdH49y5c3jjjTd0/t2m6o3JDT033nrrLcTGxmLixImoW7cuXnnlFZX1r776Knbs2IHx48djyJAhuHnzJubPnw93d3dcuXKl3LpffPFFNGnSBBERESguLkbNmjWxc+dO5WiZUnZ2dli9ejVCQkJw//59DBkyBLVr18a9e/fw+++/4969e1i7dm2Z+5k8eTLWr1+Pvn37YsGCBXB1dUV0dLSyu608s2bNwq1bt9C9e3fUrVsXDx8+xMqVK2Fpaal87kqDBg1gbW2N6OhoNGvWDHZ2dvDw8FB25WirVq1a6NatG2bOnAlbW1tERkbir7/+UhkO3qdPHzg5OWHMmDGYN28eLCwsEBUVhZs3b6rV17JlS2zZsgWxsbGoX78+ZDIZWrZsqXHfixYtQo8ePdC1a1dERERAKpUiMjISly5dQkxMjNatUJqYmZlhyZIlGDlyJF599VWMGzcOBQUF+PTTT/Hw4UMsXry4UvWWPoH4q6++gr29PWQyGXx8fMpM3jWZPHkytm/fjpdffhlTpkxBq1atoFAokJSUhH379uH999+vcMKgjT/++EPjaLgXX3wRXl5eGrdp2bIlduzYgbVr18LPz0/ZHfbGG28gOjoaffr0wXvvvYf27dvD0tISt27dwoEDBzBgwAAMGjQIX3zxBX799Vf07dsX9erVQ35+vrLFqvT33N7eHl5eXvj+++/RvXt3ODk5oVatWlo/xZuMhGHvZyaqmNIRLU+O/NCGXC4Xnp6eAoCYMWOGxjKLFy8W3t7ewsrKSjRr1kx8/fXXGkfzPDlaSggh/vnnHxEUFCQcHByEi4uLePfdd8Xu3bs1jno5dOiQ6Nu3r3BychKWlpaiTp06om/fvhUaSZOQkCB69OghZDKZcHJyEmPGjBHff//9U0dL/fTTT6J3796iTp06QiqVitq1a4s+ffqIw4cPq9QfExMjmjZtKiwtLVVGl4SEhAhbW1uNMZU1WmrChAkiMjJSNGjQQFhaWoqmTZuK6Ohote1PnTolAgIChK2trahTp46YPXu2+Oabb9RGS12/fl0EBQUJe3t7AUC5T02jpYQQ4vDhw6Jbt27C1tZWWFtbi44dO4off/xRpUxZ360nR7qVZ9euXaJDhw5CJpMJW1tb0b17d3H06FGN9VXkZyyEECtWrBA+Pj7C3Nxc5dgCAwNFixYt1Mpr+hlkZ2eLjz76SDRp0kRIpVLh6OgoWrZsKaZMmVLuCMPS+sr6eQshhK2trcbRUmVNmkbglbp//74YMmSIqFGjhpBIJCq/b0VFRWLp0qWidevWQiaTCTs7O9G0aVMxbtw4ceXKFSGEEMePHxeDBg0SXl5ewsrKSjg7O4vAwEDxww8/qOznl19+EW3bthVWVlZqo73ItEiEqODDDoiIiIiMAEdLERERkUlhckNEREQmhckNERERmRQmN0RERGRSmNwQERGRSWFyQ0RERCbluXuIn0KhwJ07d2Bvb6+Th3gRERGR/gkhkJWVBQ8Pj6e+2+y5S27u3LkDT09PQ4dBRERElXDz5k3l61vK8twlN6UvWrt586ZWbzcmIiIiw8nMzISnp6fKC1PL8twlN6VdUQ4ODkxuiIiIjExFbinhDcVERERkUpjcEBERkUlhckNEREQm5bm754ZI1xQKBQoLCw0dBhGR0ZNKpU8d5l0RTG6InkFhYSESExOhUCgMHQoRkdEzMzODj48PpFLpM9XD5IaokoQQSE5Ohrm5OTw9PXXy3wYR0fOq9CG7ycnJqFev3jM9aJfJDVElFRcXIzc3Fx4eHrCxsTF0OERERs/FxQV37txBcXExLC0tK12PQf/V/O2339CvXz94eHhAIpFg165d5ZbfsWMHevToARcXFzg4OMDf3x8///xz1QRL9AS5XA4Az9x8SkREJUr/npb+fa0sgyY3OTk5aN26NdasWVOh8r/99ht69OiBuLg4nD17Fl27dkW/fv1w/vx5PUdKVDa+o4yISDd09ffUoN1SvXv3Ru/evStcfsWKFSqfFy5ciO+//x4//vgj2rZtq+PoiIiIyBgZ9T03CoUCWVlZcHJyKrNMQUEBCgoKlJ8zMzOrIjR6jmXmFyG/8NmaVLUhk5rDQVb5vmlD6tKlC9q0aaP2j4uxmjNnDnbt2oULFy6UWSY0NBQPHz58aje8Ng4ePIiuXbviwYMHqFGjhs7qJTJWRp3cLFu2DDk5ORg6dGiZZRYtWoS5c+dWYVT0PMvML8KmY9dRJBdVtk9LcwmCA7wrnOCEhoZi48aNast79uyJvXv36jo8kxAVFYXJkyfj4cOHz1zXypUrIYRuvx8BAQFITk6Go6OjTuslMlZGm9zExMRgzpw5+P7771G7du0yy02fPh3h4eHKz6VvFSXSh/xCOYrkAr183eBsq/8bjdNzCrH3UgryC+Vatd706tULGzZsUFlmZWWl6/BIA30kIFKpFG5ubjqvl8hYGeWDOWJjYzFmzBh89913eOWVV8ota2VlpXwDON8ETlXF2VaK2g4yvU+VTaCsrKzg5uamMtWsWVO5/sqVK3j55Zchk8nQvHlzxMfHq4xoPHjwICQSiUpLxoULFyCRSHD9+nUAQHp6OoYPH466devCxsYGLVu2RExMjNaxPnz4EO+88w5cXV0hk8ng6+uLn376Sbl++/btaNGiBaysrODt7Y1ly5apbK9pJGaNGjUQFRUFALh+/TokEgl27NiBrl27wsbGBq1bt8bx48eVxzp69GhkZGRAIpFAIpFgzpw55cb85ZdfwtPTEzY2Nnj99ddVzlNoaCgGDhyo/NylSxdMmjQJH3zwAZycnODm5qZWv0QiwTfffINBgwbBxsYGjRo1wg8//KBc/+TPIyoqCjVq1MDPP/+MZs2awc7ODr169UJycrJym+LiYkyaNAk1atSAs7Mzpk2bhpCQEJXYiIyV0SU3MTExCA0NxebNm9G3b19Dh0NkchQKBV577TWYm5vjxIkT+OKLLzBt2jSt68nPz4efnx9++uknXLp0Ce+88w5GjRqFkydPahVL7969cezYMXz77bdISEjA4sWLYW5uDgA4e/Yshg4dijfeeAN//PEH5syZg5kzZyoTF23MmDEDERERuHDhAho3bozhw4ejuLgYAQEBWLFiBRwcHJCcnIzk5GRERESUWc+///6L7777Dj/++CP27t2LCxcuYMKECeXue+PGjbC1tcXJkyexZMkSzJs3D/Hx8Spl5s6di6FDh+LixYvo06cPRo4cifv375dZZ25uLpYuXYr/+7//w2+//YakpCSVuD/55BNER0djw4YNOHr0KDIzM3V6H1B1JVcoUCTX/STnU8qrFYN2S2VnZ+Pff/9Vfk5MTMSFCxfg5OSEevXqYfr06bh9+zY2bdoEoCSxCQ4OxsqVK9GxY0ekpKQAAKytrdnXTKSFn376CXZ2dirLpk2bhpkzZ+KXX37B5cuXcf36ddStWxdAychEbUY2AkCdOnVULqbvvvsu9u7di61bt6JDhw4VquOXX37BqVOncPnyZTRu3BgAUL9+feX65cuXo3v37pg5cyYAoHHjxkhISMCnn36K0NBQreKNiIhQ/sM0d+5ctGjRAv/++y+aNm0KR0dHSCSSCnX95OfnY+PGjcpzt3r1avTt2xfLli0rc/tWrVph9uzZAIBGjRphzZo12L9/P3r06KEsExoaiuHDhwMo+XmsXr0ap06dQq9evTTWWVRUhC+++AINGjQAAEycOBHz5s1Trl+9ejWmT5+OQYMGAQDWrFmDuLi4px6fMZMrFEjPLoQ+7oiTAHC2k8KcTyqvFgya3Jw5cwZdu3ZVfi69NyYkJARRUVFITk5GUlKScv2XX36J4uJiTJgwQeU/odLyRFQxXbt2xdq1a1WWlY46vHz5MurVq6e8OAOAv7+/1vuQy+VYvHgxYmNjcfv2beXIRVtbW43lFy5ciIULFyo/JyQk4MKFC6hbt64ysXnS5cuXMWDAAJVlnTp1wooVKyCXy5UtPBXRqlUr5by7uzsAIDU1FU2bNq1wHQA0njuFQoG///673OTmce7u7khNTS2zjK2tLezt7dXKPM7GxkaZ2DxZZ0ZGBu7evYv27dsr15ubm8PPz8+k35OmEIAA4CCzhIW57p5PVSwXyMwvgkIAFf/GkT4ZNLnp0qVLuaMGnkxYDh48qN+AqrucHKD0v+3sbKCMiwTR09ja2qJhw4Ya12n6nXzywVql79F6vGxRUZFKmWXLluGzzz7DihUr0LJlS9ja2mLy5MllvkE9LCxMZeSjh4cHrK2tyz0OIYRabE/GL5FI1JY9GSsAlUe9l9apiwt9aV3lPZzsycfMSyQStX1XpMzTyms6N4/T9Siu6srCXAJLc122sJhuQmis2H5GRCqaN2+OpKQk3LlzR7ms9ObaUi4uLgCgcoPqk892OXz4MAYMGIA333wTrVu3Rv369XHlypUy9+vk5ISGDRsqJwsLC7Rq1Qq3bt3CP//8U2asR44cUVl27NgxNG7cWNlq4+LiohLnlStXkJubW84ZUCeVSiv8OHhN587MzKzM1idDcHR0hKurK06dOqVcJpfL+bR3MhlMboieQwUFBUhJSVGZ0tLSAACvvPIKmjRpguDgYPz+++84fPgwZsyYobJ9w4YN4enpiTlz5uCff/7B7t271UYpNWzYEPHx8Th27BguX76McePGKe+Tq6jAwEC8/PLLGDx4MOLj45GYmIg9e/Yon8fz/vvvY//+/Zg/fz7++ecfbNy4EWvWrFG516dbt25Ys2YNzp07hzNnziAsLEzrF/J5e3sjOzsb+/fvR1paWrnJkUwmQ0hIiPLcTZo0CUOHDq12Q7XfffddLFq0CN9//z3+/vtvvPfee3jw4AFfJ0ImwWifc0NUnaXnaO56qS772bt3r/K+klJNmjTBX3/9BTMzM+zcuRNjxoxB+/bt4e3tjVWrVqncuGppaYmYmBj85z//QevWrfHiiy9iwYIFeP3115VlZs6cicTERPTs2RM2NjZ45513MHDgQGRkZGgV6/bt2xEREYHhw4cjJycHDRs2xOLFiwEAL7zwAr777jvMmjUL8+fPh7u7O+bNm6dyM/GyZcswevRovPzyy/Dw8MDKlStx9uxZrWIICAhAWFgYhg0bhvT0dMyePbvM4eANGzbEa6+9hj59+uD+/fvo06cPIiMjtdpfVZg2bRpSUlIQHBwMc3NzvPPOO+jZs6dW9ykRVVcS8bx0sv5PZmYmHB0dkZGRYXzPvOE9N9VKfn4+EhMT4ePjA5lMBsA4nlBcWRKJBDt37uRzUEyUQqFAs2bNMHToUMyfP9/Q4ehFkVyB+zmFcLKV6vSeG33V+zzS9He1lDbXb7bcEOmQg8wSwQHefLcUVXs3btzAvn37EBgYiIKCAqxZswaJiYkYMWKEoUMjemZMboh0zEFmyWSDqj0zMzNERUUhIiICQgj4+vril19+QbNmzQwdGtEzY3JjTMzNgT59Hs0TVaHnrAfb5Hl6euLo0aOGDoNIL5jcGBOZDNi929BREBERVWu884mIiIhMCpMbIiIiMilMboxJTk7J8G9b25J5IiIiUsN7boyNlo+NJyIiet6w5YaIiIhMCpMbIiIiMinsliIiMjC5QgGFnh4jZCYBzM34fyw9X/iNJyI1Xbp0weTJkw0agxAC77zzDpycnCCRSHDhwgWDxvM0lT1ncoUC6dmFuJ+jnyk9uxByhUIvx6Or70l6ejpq166N69evP3NdxmTIkCFYvny5ocMwSUxuiJ5DqampGDduHOrVqwcrKyu4ubmhZ8+eOH78OABgx44dBn954t69exEVFYWffvoJycnJ8PX1NWg8+qIQgEDJazucbKU6nRxklhD/28fjdJWU6Op7smjRIvTr1w/e3t7PXFdlREZGKl/U6Ofnh8OHD2u1TYf2L+LEsSMq6+fMmQOJRKIyubm5qZSZNWsWPv74Y2RmZur0eJ4Wb2WOUdM2FTnGipTRB3ZLGRMzMyAw8NE8USUNHjwYRUVF2LhxI+rXr4+7d+9i//79uH//PgDAycnJwBECV69ehbu7OwICAgwdSpWwMJfo4Y3S2rfYaEMX35O8vDysW7cOcXFxOohIe7GxsZg8eTIiIyPRqVMnfPnll+jduzcSEhJQr169Cm2z9osvMGLIQFz84xIa+Hgry7Vo0QK//PKL8rP5E6/NadWqFby9vREdHY3//Oc/ejk+TfFW5hjL2uZpx1jRMjonnjMZGRkCgMjIyDB0KGTk8vLyREJCgsjLyzN0KFp58OCBACAOHjxYZpnAwEDx3nvvCSGESExMFChpXFCZAgMDhRBCKBQK8cknnwgfHx8hk8lEq1atxNatW8uNIT8/X7z77rvCxcVFWFlZiU6dOolTp04p14eEhKjsy8vLS2M9Fdl3dna2GDVqlLC1tRVubm5i6dKlKscnhBBeXl7is88+U9mudevWYvbs2UIIIfbs2SM6deokHB0dhZOTk+jbt6/4999/yzxnZZHL5WLx4sWiQYMGQiqVCk9PTzF33nyRkpEnsnJyyz0nFYmzNI53331XTJ06VdSsWVO41HYVH82cpVz/5LkFIBITE9ViDQwMFBMmTBATJkxQHveMGTOEQqFQlnk5MFC8O2mSKCyWi8JiuXj55UAxYeJEEf5+hKhZs6ZwdS3Zd+l6TVPs1q2iVq1aKsuK5XIhhBAnT54UgYGBQiaTiSZNmohTp06JL7/8UvTr16/c81yWwmK5SMnIE4XFcuWy9u3bi7CwMJVyTZs2FR9++GGZ9Ty5TWGxXDRq3ERM/WCactns2bNF69atnxrTnDlzROfOnbU4Cu3p4hg1bVORY6zoeShV3t9Vba7f/PefSNdycsqe8vMrXjYvr2JltWRnZwc7Ozvs2rULBQUFTy3v6emJ5ORk5XT+/Hk4Ozvj5ZdfBgB89NFH2LBhA9auXYs///wTU6ZMwZtvvolDhw6VWecHH3yA7du3Y+PGjTh37hwaNmyInj17KluOVq5ciXnz5qFu3bpITk7G6dOnNdZTkX1PnToVBw4cwM6dO7Fv3z4cPHgQZ8+e1eaUIScnB+Hh4Th9+jT2798PMzMzDBo0CAot72WZPn06PvnkE8ycORMJCQnYvHkzXF1rl6z7cFq550QbGzduhK2tLY4cO46Z8z7GxwvmIz4+HkDJufX398fbb7+t/Jl6enqWWY+FhQVOnjyJVatW4bPPPsM333wDoOReoWK5AvlFcuX9PUUKBTZt2gQzqQy79/+GGXNL9r3zxz1l3hP0y68H0bLNC2r3CR09dgyBgYHo1asXLl68iObNm2POnDn49NNPMXfuXLVYFy5cqPxulzUdeaJbpbCwEGfPnkVQUJDK8qCgIBw7dkzjOSlrm8Bu3XHif926pa5cuQIPDw/4+PjgjTfewLVr19Tqa9++PU6dOlXu72JFjq2sbiZdHqOmbSpyjBUpo3MVTqdMhL5bbjLyCsXdjDydTxl5hXqJlyqvzP8wgLKnPn1Uy9rYlF32fy0jSrVqaS5XCdu2bRM1a9YUMplMBAQEiOnTp4vff/9dub6sVoi8vDzRoUMH8eqrrwq5XC6ys7OFTCYTx44dUyk3ZswYMXz4cI37zs7OFpaWliI6Olq5rLCwUHh4eIglS5Yol3322WdlttiU1vO0fWdlZQmpVCq2bNmiXJ+eni6sra21arl5UmpqqgAg/vjjD+Wyp7XcZGZmCisrK/H111+rLC8slourd9IqdE4q2nLz0ksvKetOycgT7dq9KKZNm6ZS5mmtTIGBgaJZs2YqLTXTpk0TzZo1U9bt/1JnMWGiastNp04vqbTCtGv3ooiY+kGZLTf9+vcXoaNHKz/nFhSLlIw80bGjvxg5cqRy37GxscLMzEwMGjRIY7zp6eniypUr5U4ZWdkqLTe3b98WAMTRo0dV6vr4449F48aNNe5H0zaFxXIxfeZc0eixbeLi4sS2bdvExYsXRXx8vAgMDBSurq4iLS1Npb7ff/9dABDXr18v82dRkWPLzc2tcLyVOUZN21TkGCt6HkrpquWG99zoUGZ+ETYdu44iue7HdFqaSxDc2gUOTRuVLLh+veQ1DESVMHjwYPTt2xeHDx/G8ePHsXfvXixZsgTffPMNQkNDy9xuzJgxyMrKQnx8PMzMzJCQkID8/Hz06NFDpVxhYSHatm2rsY6rV6+iqKgInTp1Ui6ztLRE+/btcfny5QofQ0X2ffXqVRQWFsLf31+53snJCU2aNKnwfkrrmTlzJk6cOIG0tDRli01SUpLGG52jo6Mxbtw45ec9e/bAysoKBQUF6N69u1r5G4nXdHJOSrVq1Urls5u7G1JTU7Wup2PHjpBIJMrP/v7+WLZsGeRyOYCS5WZmUN4rJJEArVu3Url3yMPDHelp98q8n6ggPx821taPrVfgzu1bOHHiOJYu/VRZTiqVQgihsdUGKPm5Pu0eoCK5Ank5hWrLHz9GoGSk3pPLtN2md+/eyvmWLVvC398fDRo0wMaNGxEeHq5cZ21tDQDILefp8xU5tqcx1DFW9DzoGpMbHcovlKNILtDL1w3OtlKd1ZueU4i9l1KQXyiHQ1qazuolPcnOLnvdkzfSlXfBefKmcR0Pk5XJZOjRowd69OiBWbNmYezYsZg9e3aZyc2CBQuwd+9enDp1Cvb29gCgvMjv3r0bderUUSlvZWWlsR4hSpL/yvyxfVxF9l26r6cxMzNTK1tUVKSc79evHzw9PfH111/Dw8MDCoUCvr6+KCxUv1ACQP/+/dGhQwfl5zp16uDff/8tc/8VPSdPi7OUpaWlymeJRKJ1F1plabvvWrVq4cGDByrLrvz9NwCgXbt2ymV///032rdvj5YtW2qsZ+HChVi4cGG5sf340240f+HRz6VWrVowNzdHSkqKSrnU1FS4urqWGa+mbdLSUuFaW/M2AGBra4uWLVviypUrKstLux1dXFzK3LYix7Znzx507ty5wvFW5hjL2wYo+xi1LaMLTG70wNlWitoOMkOHQYaiTYuavspWQvPmzbFr1y6N67Zv34558+Zhz549aNCggco2VlZWSEpKQmDpSL6naNiwIaRSKY4cOYIRI0YAKLlAnzlzRqvhyRXZd8OGDWFpaYkTJ04oR3g8ePAA//zzj8o2Li4uSE5OVn7OzMxEYmIigJJnsFy+fBlffvml8uJx5IjqsN8n2dvbKxPAUo0aNYK1tTX279+PsWPHqqzzrt+gQuekvDi1IZVK/9f6Ur4TJ06ofW7UqBHMzc2hkOsmWWrbti2+/fZblWWZmRkqI2ru37+PJUuWlPs4gLCwMAwdOrTcfdV2c0feY2FLpVL4+fkhPj4egwYNUi6Pj4/HgAEDNNZR1jaHDvyKgWVsAwAFBQW4fPmyWgJy6dIl1K1bF7Vq1XqmY3sywX9avJU5xvK2Aco+Rm3L6AKTG6LnTHp6Ol5//XW89dZbaNWqFezt7XHmzBksWbJE4x+uS5cuITg4GNOmTUOLFi2U/81JpVI4OTkhIiICU6ZMgUKhwEsvvYTMzEwcO3YMdnZ2CAkJUavP1tYW//nPfzB16lQ4OTmhXr16WLJkCXJzczFmzJgKH4e9vf1T921nZ4cxY8Zg6tSpcHZ2hqurK2bMmAGzJ1rFunXrhqioKPTr1w81a9bEzJkzlRfXmjVrwtnZGV999RXc3d2RlJSEDz/8UJtTDqCkpWzatGn44IMPIJVK0alTJ9y7dw8X//gDA4aNwriwsKeek/Li1Ia3tzdOnjyJ69evw87ODk5OTmrnBABu3ryJ8PBwjBs3DufOncPq1auxbNkyrfdXnp49e2L69Ol48OABatasCQDwbdkacrkcS5Ysweuvv4733nsPXl5euHz5Mm7cuAEvLy+1eirbLRUeHo5Ro0ahXbt28Pf3x1dffYWkpCSEhYUpy6xZswY7d+7E/v37NW7zxRdf4vatm3jnsa7IiIgI9OvXD/Xq1UNqaioWLFiAzMxMtd+Jw4cPq924W5ljK48ujlHTNhU5xoqeB11jckP0nLGzs0OHDh3w2WefKe9/8fT0xNtvv43//ve/auXPnDmD3NxcLFiwAAsWLFAuDwwMxMGDBzF//nzUrl0bixYtwrVr11CjRg288MILGusqtXjxYigUCowaNQpZWVlo164dfv75Z+XFraIqsu9PP/0U2dnZ6N+/P+zt7fH+++8jIyNDpZ7p06fj2rVrePXVV+Ho6Ij58+crW0TMzMywZcsWTJo0Cb6+vmjSpAlWrVqFLl26aBUrAMycORMWFhaYNWsW7ty5A3d3d7z9TskF8eOFiwAhyj0n5cWpjYiICISEhKB58+bIy8tDYmKixgfoBQcHIy8vD+3bt4e5uTneffddvPPOO1rvrzwtW7ZEu3bt8N133ynvU/Jp0ACz58zFypUrsXDhQgwbNgzR0dHo2bMnXnnlFZ12aQwbNgzp6emYN2+e8mGRcXFxKglUWloarl69WuY2LXx9Eb11l8o2t27dwvDhw5GWlgYXFxd07NgRJ06cUCmTn5+PnTt34ueff9bZ8ejrGDVtU5FjrEgZfZCIinZKm4jMzEw4OjoiIyMDDg4OOq07NTMf0SeTMLJDPZ12Synr9XVGbY//NV1mZ/OGYgPLz89HYmKi8gmeZDy6dOmCNm3aYMWKFYYOBUVyBe7nFMLJVqrzh/gZS91xcXGIiIjApUuXIBcwiph1Ue/nn3+O77//Hvv27dNZLMauvL+r2ly/2XJDREQG1adPH1y5cgW3b9+Gm4fme0dMkaWlJVavXm3oMEwSkxtjYmYGlI4e4OsXiMiEvPfeewBKWkGeF7ru4qNHmNwYE2troIwntRJRxR08eNDQIRCRHjG5ISIi0oFiuYA+XlZqJgHM2VqvFSY3REREz8BMUvK85sx89Qcq6oIEgKO1JczMKv6Qy4ow5aSJyY0xyc0FWjUtmU9IAGxsDBsPERHB3MwMznZSKPQw9lihEMjIK8LDPN0nThIAznZSk0xwmNwYEyGAGzcezVO18Jw9TYGINDA3M4P2j1OsSMWAs7lE54lTsVwgM78ICgH9xF1Juvp7yuSGqJJKnwxbWFiofPkdEemGPu5fKdbDS42rgn4Sp+o5Kq30fW2VefL245jcEFWShYUFbGxscO/ePVhaWmp8fD3R0xTJFSgqLEK+uQJyPTy0ztjqlisUKC4sQnphgc7qfJwEQKGFAvLn/PdVn9+NylIoFLh37x5sbGxgYfFs6QmTG6JKkkgkcHd3R2JiIm6UdhcSaUmuEMgpKMZDKwuY6/iGUWOtWyGE3nreJRIgU4u3z5sqff78noWZmRnq1asHyTP+jJjcED0DqVSKRo0aKZtSibSVnl2AI7/fQb/WHnC2s9JL3Z0bucDBxlKndT/MLcL5lHt6iZv0T5/fu2chlUp10grO5IboGZmZmfHdUlRploVAnsIcllIrnX+P7GGOYokF9v19X6f1lrI0t4C9nQ1kMt0mTqR/+vzeVQdMboyJRAI0b/5onoioHA4ySwQHeCO/UK6X+mVSczgwsaFqiMmNMbGxAf7809BREJERcZBZMgGh5w6TGyIyKZn5RWypIHrOMbkhIpORmV+ETceuo0hPzzOxNJcgOMCbCQ5RNcfkxpjk5gL+fiXzp0/z9QtET8gvlKNILtDL1w3OtlKd1p2eU4i9l1KQXyhnckNUzTG5MSZClLxTqnSeiDRytpWitoPpjQAhooqpHo8lJCIiItIRJjdERERkUtgtRUSkhfQc3T6NWtf1EZGBk5vffvsNn376Kc6ePYvk5GTs3LkTAwcOLHebQ4cOITw8HH/++Sc8PDzwwQcfICwsrGoCJqLnlkxqDktzCfZeStF53ZbmEsikun/vM9HzyqDJTU5ODlq3bo3Ro0dj8ODBTy2fmJiIPn364O2338a3336Lo0ePYvz48XBxcanQ9kRElaXPp/3y+TlEumXQ5KZ3797o3bt3hct/8cUXqFevHlasWAEAaNasGc6cOYOlS5c+H8mNRAJ4eT2aJ6Iqxaf9EhkHo7qh+Pjx4wgKClJZ1rNnT5w5cwZFRUUGiqoK2dgA16+XTHzGDRERkUZGdUNxSkoKXF1dVZa5urqiuLgYaWlpcHd3V9umoKAABQUFys+ZmZl6j5OIiIgMx6iSGwCQPNEdI/73MLsnl5datGgR5s6dq/e4iEg7+ngHFEceERFgZMmNm5sbUlJURyqkpqbCwsICzs7OGreZPn06wsPDlZ8zMzPh6emp1zj1Ji8P6N65ZP633wBra8PGQ1RJ+nwHFEceEZFRJTf+/v748ccfVZbt27cP7dq1g6Wl5pv8rKysYGVlVRXh6Z9CAZw582ieyEjp8x1QHHlERAZNbrKzs/Hvv/8qPycmJuLChQtwcnJCvXr1MH36dNy+fRubNm0CAISFhWHNmjUIDw/H22+/jePHj2PdunWIiYkx1CEQ0TPgO6CISB8MmtycOXMGXbt2VX4u7T4KCQlBVFQUkpOTkZSUpFzv4+ODuLg4TJkyBZ9//jk8PDywatWq52MYOBEREVWIQZObLl26KG8I1iQqKkptWWBgIM6dO6fHqIiIiMiYGdVzboiIiIiehskNERERmRSjGi1FAGrVMnQE9BzRx7NoAD6Phoj0i8mNMbG1Be7dM3QU9JzQ57NoAD6Phoj0h8kNGSV9tSgAxvmcFH097Vdfz6IBjPM8E5FxYHJDRqcqWhSCA7yN5sKr76f91qlpbTTngogIYHJjXPLygP69Sub37HluX7+gz6fbpucUYu+lFOQXyo3mgs6n/RIRqWJyY0wUCuDQoUfzzzk+3VYVzwcRUQkOBSciIiKTwuSGiIiITAqTGyIiIjIpTG6IiIjIpDC5ISIiIpPC0VJG5H5uIVxsbAAA9zLzAblunu7K4b5ERGRKmNwYAZnUHJbmEuy5loU9u86XLLyUDiBdJ/Ub20PriIiIysPkxgg4yCwRHOCttxcY7r2UgtsP8pBvq/v62SpERERVjcmNkXCQWeolSShtFdp7KUXndQNsFSIioqrH5MaY5OcDgweXzG/fDsie/Wm0VdEqZEyvMiAiIuPH5MaYyOVAXNyjeR3RV6sQERGRIXAoOBEREZkUJjdERERkUpjcEBERkUlhckNEREQmhckNERERmRQmN0RERGRSOBTcmNjaAkIYOgoiIqJqjS03REREZFKY3BAREZFJYXJjTPLzgddfL5ny8w0dDRERUbXE5MaYyOXAtm0lkw5fv0BERGRKeEMxURXJzC/S2wtKiYjoESY3RFUgM78Im45dR5FcP6PdLM0lkEnN9VI3EZGxYXJDVAXyC+Uokgv08nWDs61U5/XLpOZ8szsRaU1fLb+G/pvE5Ib0Tte/PMbcDeNsK0VtB5mhwyCi55xMag5Lcwn2XkrRS/2W5hIEB3gbLMFhckN6o89fHnbDEBFVnoPMEsEB3nq7D3DvpRTkF8qZ3JDp0ecvj6GbPImIjJ2DzNJk/44yuTEmNjZAdvajeSNgyr88RERUPTG5MSYSScn7pYiIiKhMfIgfERERmRQmN8akoAAIDS2ZCgoMHQ0REVG1xOTGmBQXAxs3lkzFxYaOhoiIqFpickNEREQmhckNERERmRSOliLSgE9VJiIyXkxuiB7DpyoTERk/JjdEj+FTlYmIjB+TG6In8KnKRETGjcmNMbGxAVJTH80TERGRGiY3xkQiAVxcDB0FERFRtWbwoeCRkZHw8fGBTCaDn58fDh8+XG756OhotG7dGjY2NnB3d8fo0aORnp5eRdESERFRdWfQ5CY2NhaTJ0/GjBkzcP78eXTu3Bm9e/dGUlKSxvJHjhxBcHAwxowZgz///BNbt27F6dOnMXbs2CqO3EAKCoAJE0omvn6BiIhII4MmN8uXL8eYMWMwduxYNGvWDCtWrICnpyfWrl2rsfyJEyfg7e2NSZMmwcfHBy+99BLGjRuHM2fOVHHkBlJcDERGlkx8/QIREZFGBktuCgsLcfbsWQQFBaksDwoKwrFjxzRuExAQgFu3biEuLg5CCNy9exfbtm1D3759y9xPQUEBMjMzVSYiIiIyXQZLbtLS0iCXy+Hq6qqy3NXVFSkpmh+gFhAQgOjoaAwbNgxSqRRubm6oUaMGVq9eXeZ+Fi1aBEdHR+Xk6emp0+MgIiKi6sXgNxRLJBKVz0IItWWlEhISMGnSJMyaNQtnz57F3r17kZiYiLCwsDLrnz59OjIyMpTTzZs3dRo/ERERVS8GGwpeq1YtmJubq7XSpKamqrXmlFq0aBE6deqEqVOnAgBatWoFW1tbdO7cGQsWLIC7u7vaNlZWVrCystL9ARAREVG1ZLCWG6lUCj8/P8THx6ssj4+PR0BAgMZtcnNzYWamGrK5ecm7eoQQ+gmUiIiIjIpBu6XCw8PxzTffYP369bh8+TKmTJmCpKQkZTfT9OnTERwcrCzfr18/7NixA2vXrsW1a9dw9OhRTJo0Ce3bt4eHh4ehDoOIiIiqEYM+oXjYsGFIT0/HvHnzkJycDF9fX8TFxcHLywsAkJycrPLMm9DQUGRlZWHNmjV4//33UaNGDXTr1g2ffPKJoQ6hallbA4mJj+aJiIhIjUQ8Z/05mZmZcHR0REZGBhwcHHRad2pmPqJPJmFkh3qo7SDTad1ERETGQF/XQm2u3wYfLUVERESkS0xujElhITB1aslUWGjoaIiIiKolJjfGpKgIWLq0ZCoqMnQ0RERE1RKTGyIiIjIpTG6IiIjIpDC5ISIiIpPC5IaIiIhMCpMbIiIiMilMboiIiMikGPT1C6Qla2vg0qVH80RERKSGyY0xMTMDWrQwdBRERETVGruliIiIyKSw5caYFBYCCxeWzP/3v4BUath4iIiIqiEmN8akqAiYO7dkfupUJjdEREQasFuKiIiITAqTGyIiIjIpTG6IiIjIpDC5ISIiIpPC5IaIiIhMCpMbIiIiMikcCm5MZDLg1KlH80RERKSGyY0xMTcHXnzR0FEQERFVa5XqlkpMTNR1HEREREQ6UankpmHDhujatSu+/fZb5Ofn6zomKkthIfDppyVTYaGhoyEiIqqWKpXc/P7772jbti3ef/99uLm5Ydy4cThVei8I6U9REfDBByVTUZGhoyEiIqqWKpXc+Pr6Yvny5bh9+zY2bNiAlJQUvPTSS2jRogWWL1+Oe/fu6TpOIiIiogp5pqHgFhYWGDRoEL777jt88sknuHr1KiIiIlC3bl0EBwcjOTlZV3ESERERVcgzJTdnzpzB+PHj4e7ujuXLlyMiIgJXr17Fr7/+itu3b2PAgAG6ipOIiIioQio1FHz58uXYsGED/v77b/Tp0webNm1Cnz59YGZWkiv5+Pjgyy+/RNOmTXUaLBEREdHTVCq5Wbt2Ld566y2MHj0abm5uGsvUq1cP69ate6bgiIiIiLRVqeQmPj4e9erVU7bUlBJC4ObNm6hXrx6kUilCQkJ0EiQRERFRRVUquWnQoAGSk5NRu3ZtleX379+Hj48P5HK5ToKjJ8hkwIEDj+aJiIhITaWSGyGExuXZ2dmQ8aKrP+bmQJcuho6CiIioWtMquQkPDwcASCQSzJo1CzY2Nsp1crkcJ0+eRJs2bXQaIBEREZE2tEpuzp8/D6Ck5eaPP/6AVCpVrpNKpWjdujUiIiJ0GyE9UlQEfPVVyfw77wCWloaNh4iIqBrSKrk58L/7PUaPHo2VK1fCwcFBL0FRGQoLgYkTS+ZDQ5ncEBERaVCpe242bNig6ziIiIiIdKLCyc1rr72GqKgoODg44LXXXiu37I4dO545MCIiIqLKqHBy4+joCIlEopwnIiIiqo4qnNw83hXFbikiIiKqrir14sy8vDzk5uYqP9+4cQMrVqzAvn37dBYYERERUWVUKrkZMGAANm3aBAB4+PAh2rdvj2XLlmHAgAFYu3atTgMkIiIi0kalkptz586hc+fOAIBt27bBzc0NN27cwKZNm7Bq1SqdBkiPsbICfvqpZLKyMnQ0RERE1VKlhoLn5ubC3t4eALBv3z689tprMDMzQ8eOHXHjxg2dBkiPsbAA+vY1dBRERETVWqVabho2bIhdu3bh5s2b+PnnnxEUFAQASE1N5YP9iIiIyKAqldzMmjULERER8Pb2RocOHeDv7w+gpBWnbdu2Og2QHlNUBERFlUxFRYaOhoiIqFqqVLfUkCFD8NJLLyE5ORmtW7dWLu/evTsGDRqks+DoCYWFwOjRJfOvv87XLxAREWlQqeQGANzc3ODm5qayrH379s8cEBEREdGzqFS3VE5ODmbOnImAgAA0bNgQ9evXV5m0ERkZCR8fH8hkMvj5+eHw4cPlli8oKMCMGTPg5eUFKysrNGjQAOvXr6/MYRAREZEJqlTLzdixY3Ho0CGMGjUK7u7uytcyaCs2NhaTJ09GZGQkOnXqhC+//BK9e/dGQkIC6tWrp3GboUOH4u7du1i3bh0aNmyI1NRUFBcXV2r/REREZHoqldzs2bMHu3fvRqdOnZ5p58uXL8eYMWMwduxYAMCKFSvw888/Y+3atVi0aJFa+b179+LQoUO4du0anJycAADe3t7PFAMRERGZlkp1S9WsWVOZXFRWYWEhzp49qxxGXiooKAjHjh3TuM0PP/yAdu3aYcmSJahTpw4aN26MiIgI5OXllbmfgoICZGZmqkxERERkuiqV3MyfPx+zZs1Seb+UttLS0iCXy+Hq6qqy3NXVFSkpKRq3uXbtGo4cOYJLly5h586dWLFiBbZt24YJEyaUuZ9FixbB0dFROXl6elY6ZiIiIqr+KtUttWzZMly9ehWurq7w9vaG5RNDks+dO1fhup68X0cIUeY9PAqFAhKJBNHR0XB0dARQ0rU1ZMgQfP7557C2tlbbZvr06QgPD1d+zszMNN4Ex8oK+O67R/NERESkplLJzcCBA595x7Vq1YK5ublaK01qaqpaa04pd3d31KlTR5nYAECzZs0ghMCtW7fQqFEjtW2srKxgZSqJgIVFyfNtiIiIqEyVSm5mz579zDuWSqXw8/NDfHy8yoP/4uPjMWDAAI3bdOrUCVu3bkV2djbs7OwAAP/88w/MzMxQt27dZ46JiIiIjF+l7rkBgIcPH+Kbb77B9OnTcf/+fQAl3VG3b9+ucB3h4eH45ptvsH79ely+fBlTpkxBUlISwsLCAJR0KQUHByvLjxgxAs7Ozhg9ejQSEhLw22+/YerUqXjrrbc0dkmZnOJiYOvWkonD34mIiDSqVMvNxYsX8corr8DR0RHXr1/H22+/DScnJ+zcuRM3btzApk2bKlTPsGHDkJ6ejnnz5iE5ORm+vr6Ii4uDl5cXACA5ORlJSUnK8nZ2doiPj8e7776Ldu3awdnZGUOHDsWCBQsqcxjGp6AAGDq0ZD47u6SbioiIiFRU6uoYHh6O0NBQLFmyBPb29srlvXv3xogRI7Sqa/z48Rg/frzGdVFRUWrLmjZtivj4eK32QURERM+PSnVLnT59GuPGjVNbXqdOnTKHcRMRERFVhUolNzKZTOPD8P7++2+4uLg8c1BERERElVWp5GbAgAGYN28eioqKAJQ8qyYpKQkffvghBg8erNMAiYiIiLRRqeRm6dKluHfvHmrXro28vDwEBgaiYcOGsLe3x8cff6zrGImIiIgqrFI3FDs4OODIkSM4cOAAzp49C4VCgRdeeAGvvPKKruMjIiIi0orWyY1CoUBUVBR27NiB69evQyKRwMfHB25ubuW+OoF0QCoFNmx4NE9ERERqtEpuhBDo378/4uLi0Lp1a7Rs2RJCCFy+fBmhoaHYsWMHdu3apadQCZaWQGiooaMgIiKq1rRKbqKiovDbb79h//796Nq1q8q6X3/9FQMHDsSmTZtUnipMREREVJW0uqE4JiYG//3vf9USGwDo1q0bPvzwQ0RHR+ssOHpCcTGwe3fJxNcvEBERaaRVcnPx4kX06tWrzPW9e/fG77///sxBURkKCoBXXy2ZCgoMHQ0REVG1pFVyc//+fbi6upa53tXVFQ8ePHjmoIiIiIgqS6vkRi6Xw6KclzWam5ujmN0lREREZEBaj5YKDQ2FlZWVxvUF7CohIiIiA9MquQkJCXlqGY6UIiIiIkPSKrnZUPoAOSIiIqJqqlLvliIiIiKqrir1bikyEKkUWLPm0TwRERGpYXJjTCwtgQkTDB0FERFRtcZuKSIiIjIpbLkxJnI5cPhwyXznzoC5uWHjISIiqoaY3BiT/Hyg9L1e2dmAra1h4yEiIqqG2C1FREREJoXJDREREZkUJjdERERkUpjcEBERkUlhckNEREQmhckNERERmRQOBTcmlpbAkiWP5omIiEgNkxtjIpUCU6caOgoiIqJqjd1SREREZFLYcmNM5HLg3LmS+Rde4OsXiIiINGByY0zy84H27Uvm+foFIiIijdgtRURERCaFyQ0RERGZFCY3REREZFKY3BAREZFJYXJDREREJoXJDREREZkUDgU3JpaWwOzZj+aJiIhIDZMbYyKVAnPmGDoKIiKiao3dUkRERGRS2HJjTBQK4PLlkvlmzQAz5qZERERPYnJjTPLyAF/fknm+foGIiEgj/utPREREJoXJDREREZkUJjdERERkUpjcEBERkUlhckNEREQmxeDJTWRkJHx8fCCTyeDn54fDhw9XaLujR4/CwsICbdq00W+AREREZFQMmtzExsZi8uTJmDFjBs6fP4/OnTujd+/eSEpKKne7jIwMBAcHo3v37lUUaTVhaQlERJRMfP0CERGRRgZNbpYvX44xY8Zg7NixaNasGVasWAFPT0+sXbu23O3GjRuHESNGwN/fv4oirSakUuDTT0smqdTQ0RAREVVLBktuCgsLcfbsWQQFBaksDwoKwrFjx8rcbsOGDbh69Spml75A8ikKCgqQmZmpMhEREZHpMlhyk5aWBrlcDldXV5Xlrq6uSElJ0bjNlStX8OGHHyI6OhoWFhV7uPKiRYvg6OionDw9PZ85doNRKIDr10smhcLQ0RAREVVLBr+hWCKRqHwWQqgtAwC5XI4RI0Zg7ty5aNy4cYXrnz59OjIyMpTTzZs3nzlmg8nLA3x8Sqa8PENHQ0REVC0Z7N1StWrVgrm5uVorTWpqqlprDgBkZWXhzJkzOH/+PCZOnAgAUCgUEELAwsIC+/btQ7du3dS2s7KygpWVlX4OgoiIiKodg7XcSKVS+Pn5IT4+XmV5fHw8AgIC1Mo7ODjgjz/+wIULF5RTWFgYmjRpggsXLqBDhw5VFToRERFVYwZ9K3h4eDhGjRqFdu3awd/fH1999RWSkpIQFhYGoKRL6fbt29i0aRPMzMzgW/pG7P+pXbs2ZDKZ2nIiIiJ6fhk0uRk2bBjS09Mxb948JCcnw9fXF3FxcfDy8gIAJCcnP/WZN0RERESPkwghhKGDqEqZmZlwdHRERkYGHBwcdFp3amY+ok8mYWSHeqjtINNp3QCAnBzAzq5kPjsbsLXV/T6IiIiegb6uhdpcvw0+WoqIiIhIlwzaLUVasrAAxo9/NE9ERERqeIU0JlZWwOefGzoKIiKiao3dUkRERGRS2HJjTIQA0tJK5mvVAjQ8yZmIiOh5x+TGmOTmArVrl8xztBQREZFG7JYiIiIik8LkhoiIiEwKkxsiIiIyKUxuiIiIyKQwuSEiIiKTwuSGiIiITAqHghsTCwsgJOTRPBEREanhFdKYWFkBUVGGjoKIiKhaY7cUERERmRS23BgTIUqeUgwANjZ8/QIREZEGbLkxJrm5gJ1dyVSa5BAREZEKJjdERERkUpjcEBERkUlhckNEREQmhckNERERmRQmN0RERGRSmNwQERGRSeFzboyJuTkwZMijeSIiIlLD5MaYyGTA1q2GjoKIiKhaY7cUERERmRQmN0RERGRSmNwYk5yckvdJSSQl80RERKSGyQ0RERGZFCY3REREZFKY3BAREZFJYXJDREREJoXJDREREZkUJjdERERkUviEYmNibg706fNonoiIiNQwuTEmMhmwe7ehoyAiIqrW2C1FREREJoXJDREREZkUJjfGJCcHsLUtmfj6BSIiIo14z42xyc01dARERETVGltuiIiIyKQwuSEiIiKTwuSGiIiITAqTGyIiIjIpTG6IiIjIpHC0lDExMwMCAx/NExERkRomN8bE2ho4eNDQURAREVVr/PefiIiITIrBk5vIyEj4+PhAJpPBz88Phw8fLrPsjh070KNHD7i4uMDBwQH+/v74+eefqzBaIiIiqu4MmtzExsZi8uTJmDFjBs6fP4/OnTujd+/eSEpK0lj+t99+Q48ePRAXF4ezZ8+ia9eu6NevH86fP1/FkRtITg7g4lIy8fULREREGkmEEMJQO+/QoQNeeOEFrF27VrmsWbNmGDhwIBYtWlShOlq0aIFhw4Zh1qxZFSqfmZkJR0dHZGRkwMHBoVJxlyU1Mx/RJ5MwskM91HaQ6bRuACUJjZ1dyXx2dsk7poiIiKoRfV0Ltbl+G6zlprCwEGfPnkVQUJDK8qCgIBw7dqxCdSgUCmRlZcHJyanMMgUFBcjMzFSZiIiIyHQZLLlJS0uDXC6Hq6urynJXV1ekpKRUqI5ly5YhJycHQ4cOLbPMokWL4OjoqJw8PT2fKW4iIiKq3gx+Q7FEIlH5LIRQW6ZJTEwM5syZg9jYWNSuXbvMctOnT0dGRoZyunnz5jPHTERERNWXwZ5zU6tWLZibm6u10qSmpqq15jwpNjYWY8aMwdatW/HKK6+UW9bKygpWVlbPHC8REREZB4O13EilUvj5+SE+Pl5leXx8PAICAsrcLiYmBqGhodi8eTP69u2r7zCJiIjIyBj0CcXh4eEYNWoU2rVrB39/f3z11VdISkpCWFgYgJIupdu3b2PTpk0AShKb4OBgrFy5Eh07dlS2+lhbW8PR0dFgx1FlzMyAdu0ezRMREZEagyY3w4YNQ3p6OubNm4fk5GT4+voiLi4OXl5eAIDk5GSVZ958+eWXKC4uxoQJEzBhwgTl8pCQEERFRVV1+FXP2ho4fdrQURAREVVrBn+31Pjx4zF+/HiN655MWA7yvUpERET0FOzbICIiIpPC5MaY5OYC3t4lU26uoaMhIiKqlgzeLUVaEAK4cePRPBEREalhyw0RERGZFCY3REREZFKY3BAREZFJYXJDREREJoXJDREREZkUjpYyJhIJ0Lz5o3kiIiJSw+TGmNjYAH/+aegoiIiIqjV2SxEREZFJYXJDREREJoXJjTHJzQVatCiZ+PoFIiIijXjPjTERAkhIeDRPREREathyQ0RERCaFyQ0RERGZFCY3REREZFKY3BAREZFJYXJDREREJoWjpYyJRAJ4eT2aJyIiIjVMboyJjQ1w/bqhoyAiIqrW2C1FREREJoXJDREREZkUJjfGJC8PePHFkikvz9DREBERVUu858aYKBTAmTOP5omIiEgNW26IiIjIpDC5ISIiIpPC5IaIiIhMCpMbIiIiMilMboiIiMikcLSUsalVy9AREBERVWtMboyJrS1w756hoyAiIqrW2C1FREREJoXJDREREZkUJjfGJC8P6NKlZOLrF4iIiDTiPTfGRKEADh16NE9ERERq2HJDREREJoXJDREREZkUJjdERERkUpjcEBERkUlhckNEREQmhaOljI2NjaEjICIiqtaY3BgTW1sgJ8fQURAREVVr7JYiIiIik8LkhoiIiEwKkxtjkp8P9O1bMuXnGzoaIiKiaon33BgTuRyIi3s0T0RERGrYckNEREQmxeDJTWRkJHx8fCCTyeDn54fDhw+XW/7QoUPw8/ODTCZD/fr18cUXX1RRpERERGQMDJrcxMbGYvLkyZgxYwbOnz+Pzp07o3fv3khKStJYPjExEX369EHnzp1x/vx5/Pe//8WkSZOwffv2Ko6ciIiIqiuDJjfLly/HmDFjMHbsWDRr1gwrVqyAp6cn1q5dq7H8F198gXr16mHFihVo1qwZxo4di7feegtLly6t4siJiIio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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "value,_,_=plt.hist(hl_c_pvalue, bins=20, density=True, alpha=0.5, label='Equal-count binning',histtype='step')\n", "plt.vlines(size_c,ymin=0,ymax=np.max(value),linestyle='--',label=r'Size of equal-count bin ($\\alpha=0.05$) = '+str(round(size_c,3)),colors='r')\n", "plt.legend(loc='upper right')\n", "plt.xlabel('p-value')\n", "plt.ylabel('Density')\n", "plt.title('P-value distribution of the HL test')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see the equal-width and equal-count binning gives a different result." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reference\n", "\n", "Hosmer, D. W., & Lemesbow, S. (1980). Goodness of fit tests for the multiple logistic regression model. Communications in statistics-Theory and Methods, 9(10), 1043-1069.\n", "\n", "Hosmer, D. W., Hosmer, T., Cessie, S. L., & Lemeshow, S. (1997). A COMPARISON OF GOODNESS-OF-FIT TESTS FOR THE LOGISTIC REGRESSION MODEL. 16.\n", "\n", "Hosmer Jr, David W., Stanley Lemeshow, and Rodney X. Sturdivant. Applied logistic regression. John Wiley & Sons, 2013.\n" ] } ], "metadata": { "kernelspec": { "display_name": "uq", "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.12.0" } }, "nbformat": 4, "nbformat_minor": 2 }