{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# **Statistics lecture 3 Hands-on session : solutions notebook**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is the companion notebook to lecture 3 in the statistical course series, covering the following topics:\n", "1. Neyman-Pearson lemma\n", "2. Testing for discovery, using simple tools\n", "3. Discovery as a hypothesis test\n", "4. Testing for discovery in a histogram\n", "\n", "First perform the usual imports:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import scipy.stats\n", "from matplotlib import pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Neyman-Pearson lemma\n", "\n", "In the previous lecture, we have applied hypothesis testing to a simple counting experiment, using the observed count $n$ as discriminant.\n", "Recall:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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naStWZO08JwLVJCJoiHwTYGfcxP3JfW5ItJfROaIyJw41WUJ3aJF8MUX6Tsbuzh9+8K6dXbYnwR33w3nnw/du1sHduXK5X+tiy+GCRNgxgw46ij4+eekhOhcoIJMFEV12ZV2gHupn6uqY1U1W1Wz69evX+rgXAlycuz62GPDjaM89t/fJggmofnprrtg8GDo0QMef3z7kkS+M8+0hDN3rq3m+v332/+azgUpyESRCzQu8HMj4LsUPNclQ04OdOgA5aw2GSoRm1Mxa5aVRi+nO++ECy+Enj2TlyTy9expA8qWLIGDD7YRUc6lqyATxWyghYg0E5HKwMlATgqe67bXDz/A229Ha7RTYaecYv0s5SzpcccdcNFFttrqY48FM9K2Uyd45RUbCXXwwbBgQfLfw7lkCCxRqOomYBDwErAQmKyqC0TkHBE5B0BEGohILnARcI2I5IpIzW09N6hYXSHPP29fslFOFM2b2yTBcpT0uP12uOQS6N0bHn00sOkYgLWSvf66hXjoofDee8G9l3PlJXFZwQkgOztb58yZE3YY0de9O3zwASxdGu3ZYffeCwMGWGdA+/alesqtt8IVV9haSA89lLp5hkuWWOf2Dz/ACy9Y2SrnUkFE5qpqsaUMvNaT29ratTB9evoXASyN3r2tY6GUy6ROmGBJok+f1CYJgN13h//9D3bbzQZt+dBZl048UbitvfKKJYsoNzvlq1vXplA/+qiVIynGr79akjj0UJg4MZyKJbvuasnqq6/gpptS//7ObYsnCre1Z56xCXaHHRZ2JMlxyinWnvPGG8VudscdsGKFTYgLs6zVIYfA6adbHIsWhReHcwV5onBb5OXZanZduyZ3LGiYunSBqlWtKt82fP+9JYrevW1V1bDddhtUrw4DB/rSGi49eKJwW8yebUffUZyNvS3Vq1utqqef3ua37r//bbWXhg5NbWjbsvPOcPPNtl7UpElhR+OcJwpXUE6OlTXt2jXsSJKre3ebePf++3966LPPYOxY6N/fJnOni/79bUmNiy6CVavCjsZlOk8UbotnnrHe3Dp1wo4kubp1sxKuTz/9p4euucZapoYMSX1YxcnKspLmP/wA114bdjQu03micOaLL2xqcBxGOxW2007WS1yon+K996yS68UXQ4MGIcVWjOxsmwYycqRNa3EuLJ4onHn2Wbvu1i3cOILSo4cl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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "b = 10 # background of 10 events\n", "s_null = 0 # the null hypothesis: no signal\n", "s_alt = 5 # the alternate hypothesis: \n", "\n", "ns = np.arange(1, 30, 1) # consider various observed values\n", "\n", "# Compute the PDF values for the different n\n", "plt.plot(ns, scipy.stats.poisson.pmf(ns, s_null + b), color='r', label='null')\n", "plt.plot(ns, scipy.stats.poisson.pmf(ns, s_alt + b), color='b', label='alt')\n", "plt.xlabel('observed n')\n", "plt.ylabel('PDF')\n", "plt.legend();\n", "\n", "# A couple of plots illustrating different test sizes\n", "plt.figure()\n", "plt.subplot(211)\n", "threshold1 = 12\n", "lo1 = np.arange( 1, threshold1 + 1, 1)\n", "hi1 = np.arange(threshold1, 30, 1)\n", "plt.plot(ns, scipy.stats.poisson.pmf(ns, s_null + b), color='r', label='null')\n", "plt.plot(ns, scipy.stats.poisson.pmf(ns, s_alt + b), color='b', label='alt')\n", "plt.fill_between(hi1, scipy.stats.poisson.pmf(hi1, s_null + b), color='r', label='p-value')\n", "plt.fill_between(lo1, scipy.stats.poisson.pmf(lo1, s_alt + b), color='b', label='Type-II')\n", "plt.xlabel('observed n')\n", "plt.ylabel('PDF')\n", "plt.legend();\n", "#\n", "plt.subplot(212)\n", "threshold2 = 16\n", "lo2 = np.arange( 1, threshold2 + 1, 1)\n", "hi2 = np.arange(threshold2, 30, 1)\n", "plt.plot(ns, scipy.stats.poisson.pmf(ns, s_null + b), color='r', label='null')\n", "plt.plot(ns, scipy.stats.poisson.pmf(ns, s_alt + b), color='b', label='alt')\n", "plt.fill_between(hi2, scipy.stats.poisson.pmf(hi2, s_null + b), color='r', label='p-value')\n", "plt.fill_between(lo2, scipy.stats.poisson.pmf(lo2, s_alt + b), color='b', label='Type-II')\n", "plt.xlabel('observed n')\n", "plt.ylabel('PDF')\n", "plt.legend();\n", "\n", "# Now draw the ROC curve\n", "thresholds = np.arange(1, 30, 1)\n", "plt.figure()\n", "plt.plot(scipy.stats.poisson.sf(thresholds, s_alt + b), scipy.stats.poisson.cdf(thresholds, s_null + b), color='orange')\n", "plt.xlabel('1 - TypeII');\n", "plt.ylabel('1 - pvalue');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is however a special situation, in which the entire measurement information is already contained in the single number $n$ -- so we didn't need to worry about how to define our discriminant, we could just use $n$.\n", "\n", "In general this is not the case, and the observed dataset consists of several quantities. We then need to condense the information into a single value, which nevertheless contains the maximal amount of information.\n", "\n", "We investigate this in the context of a binned analysis, studied already in the previous lecture:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Define the binning\n", "nbins = 10\n", "x = np.linspace(0.5, nbins - 0.5, nbins)\n", "\n", "# The background follows a linear shape\n", "b_yields = np.array([ (1 - i/2/nbins) for i in range(0, nbins) ])\n", "b_fracs = b_yields/np.sum(b_yields)\n", "\n", "# The signal shape is a peak\n", "s_fracs = np.zeros(nbins)\n", "s_fracs[3:7] = [ 0.1, 0.4, 0.4, 0.1 ]\n", "\n", "\n", "# Define the signal and background\n", "s = 5\n", "b = 100\n", "s_and_b = s*s_fracs + b*b_fracs\n", "b_only = b*b_fracs\n", "\n", "# Now generate some data\n", "np.random.seed(0) # make sure we always generate the same\n", "data = [ np.random.poisson(s*s_frac + b*b_frac) for s_frac, b_frac in zip(s_fracs, b_fracs) ]\n", "plt.bar(x, s_and_b, color='orange', yerr=np.sqrt(s_and_b), label='(s=5)+b')\n", "plt.bar(x, b_only, color='b', label='b only')\n", "plt.scatter(x, data, zorder=10, color='k')\n", "plt.xlabel('bin number')\n", "plt.ylabel('Total expected yield')\n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to test $s = 0$ against $s = 5$. First, we try our previous technique: pick one bin, and perform the test in this bin only:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Define the hypotheses\n", "s_null = 0 # the null hypothesis: no signal\n", "s_alt = 5 # the alternate hypothesis: \n", "\n", "# We test the content of bin 5\n", "i_bin = 5 # test bin 5\n", "\n", "# Scan over the values of b\n", "ns = np.arange(1, 30, 1)\n", "\n", "# Compute and plot the PDF values for the different n\n", "plt.plot(ns, scipy.stats.poisson.pmf(ns, s_null*s_fracs[i_bin] + b*b_fracs[i_bin]), color='r', label='null')\n", "plt.plot(ns, scipy.stats.poisson.pmf(ns, s_alt*s_fracs[i_bin] + b*b_fracs[i_bin]), color='b', label='alt')\n", "plt.xlabel('observed n[%d]' % i_bin)\n", "plt.ylabel('PDF')\n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One can already see that this is not a very good test: the distributions are stongly overlapping, and the hypotheses are therefore hard to separate. Let's draw the ROC curve:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Define the threshold values to consider\n", "n_thresholds = np.arange(0, 30, 1)\n", "\n", "# Compute the results\n", "null_cdf = [ scipy.stats.poisson.cdf(n_threshold, s_null*s_fracs[i_bin] + b*b_fracs[i_bin]) for n_threshold in n_thresholds ]\n", "alt_sf = [ scipy.stats.poisson.sf (n_threshold, s_alt*s_fracs[i_bin] + b*b_fracs[i_bin]) for n_threshold in n_thresholds ]\n", "\n", "# Plot the results\n", "plt.plot(alt_sf, null_cdf, color='orange')\n", "plt.xlabel('1 - TypeII = Power');\n", "plt.ylabel('TypeI = 1 - pvalue');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The curve looks perilously close to the diagonal, which corresponds to no sensitivity.\n", "\n", "Now let's see if we can do better using the Neyman-Pearson theorem. It states that to separate $s_{\\text{null}}$ from $s_{\\text{alt}}$, the optimal discriminant is $L(s_{\\text{null}})/L(s_{\\text{alt}})$. We may as well take $-2\\log$ of this as usual, so that our discriminant is\n", "$$\n", "t(s_{\\text{null}}, s_{\\text{alt}}) = -2 \\log \\frac{L(s_{\\text{null}})}{L(s_{\\text{alt}})}.\n", "$$\n", "\n", "Let's repeat our sensitivity studies with this new discriminant. First let's implement the discriminant:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def lambda_s(s_hypo, data) :\n", " return -2*sum( [ np.log(scipy.stats.poisson.pmf(n, s_hypo*s_frac + b*b_frac)) for n, s_frac, b_frac in zip(data, s_fracs, b_fracs) ] )\n", "\n", "\n", "def t_s(data) :\n", " return lambda_s(s_null, data) - lambda_s(s_alt, data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can't plot the distributions of $t$ outright, since we don't know what distribution it follows (for the case of $n$, we knew from first principles that it followed a Poisson, but we don't have something similar here).\n", "\n", "So we'll simply generate these distributions by sampling: we will draw a large number of random datasets for $s = s_{\\text{null}}$, make a histogram of the values of $t$, and this will provide an approximation of its distribution for $s = s_{\\text{null}}$. We can then repeat for $s = s_{\\text{alt}}$ to make our plot." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Generate 1000 random datasets for each distribution (more is better, but takes longer)\n", "ndata = 1000\n", "\n", "# Function to generate the dataset and compute the values of t\n", "def generate_t_values(s_hypo, ndata = 1000) :\n", " t_values = []\n", " for k in range(0, ndata) :\n", " data = [ np.random.poisson(s_hypo*s_frac + b*b_frac) for s_frac, b_frac in zip(s_fracs, b_fracs) ]\n", " t_values.append(t_s(data))\n", " return t_values\n", "\n", "hist_null = generate_t_values(s_null, ndata)\n", "hist_alt = generate_t_values(s_alt , ndata)\n", "plt.hist(hist_null, color='red', alpha=0.5, bins=np.arange(-10,10,0.5));\n", "plt.hist(hist_alt, color='blue', alpha=0.5, bins=np.arange(-10,10,0.5));" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The separation between the curves looks slightly better than in the previous case. We can check this by computing the ROC curve, scanning over different threshold values on the discriminant t." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA67UlEQVR4nO3dd3hVVfbw8e9K7wmplCQkQAhNauggTaTICIgdR8dexzbq2MYyo6MzYxmdV0TFOv5GVIoiFsRCUUB6CaGFQCCEQGhJCISQZL9/nAtGCOGG3HNvyvo8z3nCvefcs9cRvCv77LPXFmMMSimlGi8vTweglFLKszQRKKVUI6eJQCmlGjlNBEop1chpIlBKqUbOx9MB1FR0dLRJSkrydBhKKVWvrFixYp8xJqaqffUuESQlJbF8+XJPh6GUUvWKiGSfaZ/eGlJKqUZOE4FSSjVymgiUUqqRq3djBEopVRPHjx8nJyeHkpIST4fiFgEBAcTHx+Pr6+v0ZzQRKKUatJycHEJDQ0lKSkJEPB2OrYwx7N+/n5ycHJKTk53+nG23hkTkHRHZKyLpZ9gvIvKqiGSKyFoR6W5XLEqpxqukpISoqKgGnwQARISoqKga937sHCN4DxhZzf5RQIpjuwV43cZYlFKNWGNIAiecy7XadmvIGLNARJKqOWQs8IGx6mAvEZEIEWlmjNltRzzbMn8hb90HHPMK44hEUewdS5PoZAiKp8Ir8ORx4YG+NI8IxMe7+v+Y3l5CbGiAHaEqpZRbeXKMoAWws9LrHMd7pyUCEbkFq9dAYmLiOTV2YPca+h6d9Ns3C6wfe45Hkl3alJ3HmpJe2ozMYwlsKUlge2lzjpszD7j0Sorkgg6xxIUFVNr8CfLToRelVP3hyW+sqn7lrnKVHGPMm8CbAGlpaee0kk6PgbeAuQmOF0DJXsoO72Tvnq14H92BX0k2HY9uo1vJJnyP/XDyMxV4c9g3iQK/NhT6pXDIrx0H/Ttx2Lcl+4+U8X9Lsvn7VxtPayvU34e4cCspxIUGEBsWQNMwf+LCrD/HhfkTGxqAn48+vatUQ3fo0CH+97//cccddwCwe/dubr75ZmbPnl3l8aWlpVxwwQX88MMP+Pi45yvak4kgB0io9DoeyLW1RfECvybg1wSfsFSaN7/g9GPKjkDRZijIwKsgg7CCDMIKM+DQd2DKrWN8QiGyG3dc2J2S0C7s9e3ErrIE8oqOs6fwGHsKS05uv2w7wN6iEo6Xn56/ooL9iA0LIDEykO6JTejesgnntQgnwNfb1v8MSin3OXToEJMmTTqZCF566SVuvvnmMx7v5+fHsGHD+Pjjj5k4caJbYvRkIpgF3CUiU4HeQIFd4wM14hMETbpaW2Xlx6BwAxxYCQdWwIGVSOZkAstLaAm09Al2fK47JKZB7AAITgYRKioMB4+UWkmiqIQ9BSUn/7y3sISNeUXMWb8HAF9voUPzcHokNqFHyyZ0bxlBs/BAlFK19/QX68nILXTpOTs0D+PJ33U84/6HH36YrVu30rVrV4YPH8706dN55plnAFi/fj3XX389paWlVFRUMH36dFJSUhg3bhyPPPJI/U8EIvIRMBiIFpEc4EnAF8AYMxn4ChgNZAJHgOvtisUlvP1/TRCtb7DeqyiDwo2/JoeDKyHrHdj8H2t/YHOIGYhX7ECiYgYS1awTHZqHVXn6fYePsWrHIVZkH2Rl9kH+75ds3vl5GwCxof6kNg2lfbMwOjYPY1j7OEL8dRxCqfrg+eefJz09ndWrV7Nt2zZ++OEH/P39AZg8eTL33HMPEydOpLS0lPJy665Dp06dWLZsmdtitPOpoavOst8Ad9rVvlt4+UBEJ2trda31XkU5FGbA3oWQv9D6ueNja59vOMT0h5iBEDsQItOsBANEh/gzvEMcwzvEAVBaVsGG3YWsyD5Iem4Bm/KKeG/RdkrLKgjy82ZM52Zc0TOR7okRjerROKVqo7rf3N1h9+7dxMT8Wgm6b9++PPvss+Tk5HDJJZeQkpICgLe3N35+fhQVFREaGmp7XPprpat5eUPEedbW9g4wBoqzf00K+Qsh9yvHsf4Q3RtiBljJIaYf+Fo9Bj8fL7okRNAlIeLkqcvKK1iTU8Cny3cya00unyzPISU2hOEd4mgVE0JydDCtY4KJCPLzwIUrpc4mMDDwN5O9rr76anr37s2XX37JiBEjmDJlCkOHDgXg2LFjBAS45xF1TQR2E4GQJGtL/r31Xkk+5P9kbXsXQsY/wPzdGsxu0gOaj4bmo6weg9evA8c+3l70aGmNHTw+pgNfrrWSwZsLsiir+HUwOtTfh2YRATQND6R5eABNwwNoHh5o/XS8r7eWlHKP0NBQioqKAGjbti3bt28/uS8rK4tWrVpx9913k5WVxdq1axk6dCj79+8nJiamRvWCakO/DTwhIAYSxlsbwPHDsH+JlRR2fwvpf4X0p8E/CpqNhGajoNkICIg+eYoQfx+u6JnIFT0TOV5eQc7Bo2TlHyYrv5hdh46Se+goeYUlZOQWsu/wsdNCCA3woUVEIJelJTCxd6I+qaSUTaKioujfvz+dOnVi1KhRtG7dmszMTNq0acPHH3/Mhx9+iK+vL02bNuWJJ54A4Mcff2T06NFui1GsW/X1R1pammnwK5Qd228lhNyvYPc3cGwfIBDVy+opNB8NkT2sHoQTSssq2FNYwu6CEnYXHLV+HjrK+txClmcfpFl4AH8cmsKlPeJ1boNqcDZs2ED79u09HcZJM2fOZMWKFSefHKrKJZdcwnPPPUdqauo5tVHVNYvICmNMWlXHa4+gLvKPgqSrrM1UWE8k5X4FuV/Duqdh3VPgH2P1FpqPgmYXWp85Az8fLxIig0iIDDpt36LMffzr2008OnMdr3y/mev6JXF1r0QdZ1DKJuPHj2f//v1n3F9aWsq4cePOOQmcC+0R1Dcl+VZvYffXjt7CfqtnENXbuoXUfBREdne6twBW6dr5m/N5+6dtLNyyj0Bfby5Li+cP/ZJIjg7Wp5JUvVbXegTuUNMegSaC+qyiHA4st3oKuV9Zf8ZAQOyvYwvNR1izqZ20YXchb/+0jc9X7+J4ucHfx4tYR0mM2FB/awsLIDUulE4twokL89dEoeo0TQQWTQSNRUk+7J7jGFuYA6UHQHysgeaWV0H8xeDr3DPJewtLmL12N7sLjrK36Bh7C4+xt6iE/KJjFJaUnTwuOsSPjs3D6dQijI7Nw0ltGkrLyCB8vHWsQdUNmggsOkbQWATEQPI11lZRDvuXQs5MyJ4KuV+CdyC0GAMtr7QGnL3P/IxybFgANwyoeoWj4mNlbMwrJH1XIem7CkjPLeSN+b8+wurrLSRHB9MmNoQ2saG0iQ2hT6tILdutVB2liaCh8vKGmL7W1vV52LcYtn8EOz+FHZ9ahfMSxls9habDwMv555WD/X3o0TKSHi0jT75XcryczXuK2LLnMFv2HiZz72Eycgv5Jj2PCgNeAn1aRfG7Ls0Z2bEpTYJ1MFo1Dtu3b2fMmDGkp5++WONNN93E/fffT4cOHZw617x58xg7duzJZSgvueSSk4+c1oYmgsZAvBylLfpDj3/Dnh8h+yPYOQO2fQD+0ZBwqfWUUsyAGg00nxDg603n+Ag6x0f85v2S4+Vs2XOYuRl5zFqTyyMz1vGXz9IZmBLNkHaxdGoRTvumYQT66TwG1fhMmTKlxp8ZOHDgGUtYnytNBI2Nlw80G25tPV+3njzKnmolhMzJENgCWl5h3T6KTLNmRtdCgK8358WHc158OPcNb8v63EK+WJPL7LW7+XFTPmCt9tYmJoSOLcI4r0U4nVqE06FZGME6+1k1EGVlZVx33XWsWrWKtm3b8sEHHxAUFMTgwYN54YUXSEtLIyQkhHvuuYfZs2cTGBjI559/TlxcnFvi0//TGjNvf4gfa21lxZDzhdVT2Pwf2PgShLS2EkLLqyCi9sW6RIROji/6h0e1I7egxBpjcGwLNu9jxspdjmOhVXQw57UIp0fLJgxOja1yHoRSNbLiXji42rXnbNLV6mlXY9OmTbz99tv079+fG264gUmTJvHAAw/85pji4mL69OnDs88+y0MPPcRbb73F448/ftq5Fi9eTJcuXWjevDkvvPACHTvW/v9NTQTK4hMMSVdaW+lB2DnTSgoZz8H6Z60iei2vtLaQVrVuTkRoERFIi4hARnRsevL9PYUnkkMh63YVsCTrAJ+tzgXW0yY2hCGpMQxJjSUtKVJnQat6IyEhgf79+wNwzTXX8Oqrr56WCPz8/BgzZgwAPXr0YO7cuaedp3v37mRnZxMSEsJXX33FuHHj2LJlS63j00SgTufXxFpzofUNcHSPNbi8YyqseczaonpZvYTEyyGouUubPrH287D2v3aJt+0r5seNe/lx017eX5TNWwu3EeznzYCUaIakxjI4NZam4fpEknLCWX5zt8upc22qmnvj6+t78n1vb2/KyspOOyYs7Nf1TEaPHs0dd9zBvn37iI6OPu3YmtBEoKoXGAepd1lbcTZkf2yNKay8D1beD7GDrF5C4qXVlrmojeToYJIHJHPDgGSKj5WxeOt+fty0l3mb8k+u7NauaShD2sUyoXsL2sTaX79dqZrYsWMHixcvpm/fvnz00UcMGDDgnM6Tl5dHXFwcIsLSpUupqKggKqr2/99pIlDOC24JHR6ytoKN1oI72R/BsttgxT3WIHPKHVaPwabZxsH+PlzQIY4LOsRhjGHL3sMnewtvLcji7YXb+NOFbblpYCu8vXTGs6ob2rdvz/vvv8+tt95KSkoKt99++zmdZ9q0abz++uv4+PgQGBjI1KlTXTKzX2cWq9oxxhp82zrFevKo7LBVGTXlTqun4OO+9Zb3HT7G4zPT+WZ9Hr2SInnx8i46wKx0ZrFDdTOLdbRN1Y4IRHaDnq/B+F2Q9hqUH4VfboDP4mHVg3A4yy2hRIf48/o13Xnxsi5s2F3IyH8v4ONlO6hvv+wo5W6aCJTr+IZZy3OOTodhP0LcUNj4MsxqA/Mugl1fWqUvbCQiTOgRzzf3nU/n+Aj+PH0do15ZyOT5W9l16KitbStVX+mtIWWvI7sg801rK8mD4GRIud16IsmmweUTKioMn67YydRlO1m14xAAvZIiubhrc0af14xILXPRKGzYsIF27do1miq5xhg2btyo1UdVHVRx3JqbsOU12LvAKnjX8kprLCGqyn+bLrVj/xFmrdnFZ6tzydx7GB8v4fy2MVzVK5EL2sc2mi+Jxmjbtm2EhoYSFRXV4P+ejTHs37+foqKik/WITtBEoOqWQ+tg8yTY/l9rRnNUL+tpo5ZXVFsR1RWMMWzYXcTna3Yxa3UuuwtKuLBDHH8b14m4MJ2L0BAdP36cnJwcSkpKPB2KWwQEBBAfH3/awveaCFTdVFoA2/5r9RIKN1q3ilrdCCm3QUjVJbBdqay8gnd+3saL327Gz8eLxy9qz+VpCQ3+t0bVOGkiUHWbMVZF1C2vQc7n1jrNzS+yBp6bjTinaqg1sX1fMX+evpZfth2gfbMwzm8bTd9WUfRMitTCd6rB0ESg6o8jObDlDdj6FpTssQrfpdwOra4H/8izf/4cVVQYPlm+k+krc1i98xDHyw3eXkLn+HD6t47mpoHJRATp4LKqvzQRqPqnvNRaL2HLa5D/k2Nw+WpoeydEdre16SOlZazMPsTirH0s3rqfNTkFtIwK4r0/9CIxSieoqfpJE4Gq3w6ugS2TYNuHUH4EovpYt40SL7N9cBlg6bYD3PzBcny8hCnXpdEtsYntbSrlajqzWNVvTbpArzesmcs9XoHjB2HxtfBZAqx+xCqGZ6NeyZHMuKMfwf4+XPnmEj5btYuKivr1C5RS1dEegap/jIE938Pm12DXLEAg+Tro9LitTxvtP3yMmz9Yzsodh2geHsCEHvFM6B5PUnSwbW0q5Sp6a0g1XMU7YMOLkPkGmHJo9Qfo+BiEJNnSXGlZBXPW5zFtRQ4Lt+RTYaBnUhMu65HAqPOaEhrge/aTKOUBHksEIjISeAXwBqYYY54/ZX848CGQiFUS+wVjzLvVnVMTgarSkV2Q8bxVysJUWCUsOj4GwYm2NZlXUMKMVTlMW5FDVn4xfj5eDEmN4aLOzRnWLlYfPVV1ikcSgYh4A5uB4UAOsAy4yhiTUemYR4FwY8yfRSQG2AQ0NcaUnum8mghUtY7kwPrnrcdPMdYEtY6P2JoQjDGs2nmIL9bk8tW63ewpPIa/jxdD28UypnNzhrSLIchPk4LyLE8lgr7AU8aYEY7XjwAYY56rdMwjQAJwJ5AEzAXaGmMqznReTQTKKcU7rfWWt06xXre+CTo+CkHxtjZbUWFYnn2QL9fm8lV6HvlFxwj09WZo+1jGdmnOsPZxumCO8ghPJYJLgZHGmJscr38P9DbG3FXpmFBgFtAOCAWuMMZ8WcW5bgFuAUhMTOyRnW3vUyKqASneAev/DlnvAAKtb7Z6CEEtbG+6vMKwbPsBZq/N5Zv0PPYdLqVVdDC3DmrFuG4t8Pfxtj0GpU7wVCK4DBhxSiLoZYz5Y6VjLgX6A/cDrbF6BF2MMYVnOq/2CNQ5Kc6G9Gch610Qb2hzC3R4GIKau6X5svIK5qzfw6R5mazPLaRpWAA3DUzmyl6JhOhYgnIDT80jyMG67XNCPJB7yjHXAzOMJRPYhtU7UMq1gltC7zfhd5sh+RprgtoXrWHFvXB0t+3N+3h7cVHnZsz+4wA+uKEXydHBPPPlBvo//wOT52/lWJm9C/YoVR07ewQ+WIPFw4BdWIPFVxtj1lc65nVgjzHmKRGJA1Zi9Qj2nem82iNQLnE4y+ohbHsfvHyhze3Q4SEIbOq2EFbtOMh/fsjkh417SYgM5NFR7RnZqalWP1W28OTjo6OBf2M9PvqOMeZZEbkNwBgzWUSaA+8BzQABnjfGfFjdOTURKJcq2grrn7HKYXv5WQXu2j8EgXFuC2Hhlnyemb2BTXuK6JUcyRNjOtCpRbjb2leNg04oU+psijIh/W+w/UPwCrBqGbV/EAJi3dJ8WXkFHy/fyUvfbubAkVImdI/nwRGpuliOchlNBEo5q3CzlRCy/+dICHc5EkK0e5ovOc5rP2Ty7s/b8fEWbhvUmpsGJus8BFVrmgiUqqnCTbDur5D9EfgEQds/QvsHrFXU3CB7fzHPf72Rr9PziAn1555hKVzRMwFfb60Tqc6NJgKlzlXBBkcPYSr4BEPq3dDuT7YuklPZiuyDPP/1BpZtP0ir6GAeHJGqA8rqnGgiUKq2CjKsHsKOT8AnxJEQ7ndLQjDG8P2Gvfzjm41s2XuYbokRPDKqPb2S3ZOMVMOgiUApVzmUDul/hR2fgm8YpN4D7e4DP/sXqykrr2D6yhxemruZPYXH6Nsqis4J4bSKDqZVTAjJ0cFEBftpb0FVSROBUq52aB2sexp2TgffcEi9F9rdC34Rtjd9tLScdxdtY8bKXWTvL+Z4+a//D4cF+JAcE0Kr6GC6JkRwRc8EAny1lIXSRKCUfQ6usRJCzkzwjYCOD0PqfeDtnoXuy8oryD1UwtZ9h9mWX8y2fcVk7TtMVn4xuwtKSIwM4rGL2nNhhzjtKTRymgiUstvB1bD2Cdj1BYS1g56TIG6IR0NauCWfv36RwZa9h+nfJoonxnQktWmoR2NSnqNrFitltyZdYdAsGPQlVJTC90Ph54luqWN0JgNTYvj6noE8fXFH0ncVMuqVBfzls3QKjh73WEyqbtJEoJQrtRgNo9Oh0xOwcxrMbgebXoWKMo+E4+PtxXX9kpj3wGB+36cl/1u6g4v/309s2H3GAr+qETprIhDLNSLyhON1ooj0sj80peopn0Do/LSVEKL7wop7YE5P2LfEYyE1Cfbj6bGd+OTWvpQcL2f8pJ/5fPUuj8Wj6hZnegSTgL7AVY7XRcBrtkWkVEMRlgKDv4YBn0JJPnzbF365CUrOWFzXdj1aNuGLPw6gc3wE90xdzVOz1nO8/IwLAqpGwplE0NsYcydQAmCMOQi455EIpeo7EUi8FMZstGoWZb0Ps1MhcwqceUVWW8WGBvB/N/Xmhv7JvLdoOxPf+oW9RSUeiUXVDc4kguOOhegNgGORef0VQqma8A2Bbv+EUasgvCMsvRm+7Q8HVnkmHG8vnvhdB165sivrdhUw5tWfmLUml/r2FKFyDWcSwavATCBWRJ4FfgL+bmtUSjVUEZ3ggvnQ9wMozoI5abD8Higt8Eg4Y7u2YOad/YgO8efuj1ZxyeuLWJF90COxKM9xah6BiLTDWmlMgO+NMRvsDuxMdB6BajBKD8Gax61lMwPioNsLkHS1dTvJzcorDDNW5vCvOZvYW3SMizo34+GR7UiIDHJ7LMoetZpQJiKJVb1vjNnhgthqTBOBanAOrIClt8OBZRA72JqMFt7eI6EcKS3jjflZvLkgi/IKw/X9k7hjSBvCA309Eo9yndomgnVY4wMCBADJwCZjTEdXB+oMTQSqQaooh61TYM0jcLwI2v8JOv3FKn3tAXkFJbzw7Samr8yheXggs+7qT1SIv0diUa5Rq5nFxpjzjDGdHT9TgF5Y4wRKKVfx8oaUW2HMJkj+PWT8A2Z3gJ2fgQcGcJuGB/DCZV345Na+5B8+xr0fr6a8QgeSG6oazyw2xqwEetoQi1IqIAb6vAMXLAS/cFg4HuaPgcNZHgmnZ1IkT1/ckYVb9vHK91s8EoOy31kXQhWR+yu99AK6A/m2RaSUgtgBMHIlbP6PVcxudgfo+Ch0eAi83bug/ZU9E1i+/SD/+WEL3RMjGJwa69b2lf2c6RGEVtr8gS+BsXYGpZQCvHysRW/GbIT4cbDuSfjyPMid49YwRIRnxnUiNS6Uez9ezZY9RW5tX9lPy1ArVV/kfQfL7oSizZBwKfR4GYLi3db8tn3FXDZ5MaVl5Uz+fQ/6tY52W9uq9s7pqSER+QLHbOKqGGMudk14NaOJQDVq5cdgwwuw/hkQbzjvKWu5TC/3PN6588ARbnhvGdv3F/P8JZ2Z0MN9iUjVzrkmgkHVndQYM98FsdWYJgKlgMPbrKqmu76wSlb0nASx57ul6YKjx7n9wxUs2rqfu4elcM+wFLy9dPWzuk5XKFOqocqZBSvuhuJsSL4Wuv4TAuNsb7a0rILHZq7j0xU59GkVyctXdKVZeKDt7apzV6t5BCKSIiLTRCRDRLJObK4PUylVY/EXw0UZ1hNF2R9ZlU03T7ImqNnIz8eLf17amRcu68LanAJGvbKQOevzbG1T2ceZp4beBV4HyoAhwAfAf+0MSilVAz5B0OVZGLUWItNg+Z3wbW/Yv8zWZkWES3vE8+XdA0loEsSt/13BozPXcbTU3iSkXM+ZRBBojPke6zZStjHmKWCovWEppWosvB0MnQv9p8LRXJjTG1Y/ChX2rlGcHB3M9Nv7cev5rfjfL9ZSmMu2H7C1TeVaziSCEhHxAraIyF0iMh7QGSVK1UUi0PIKa+5B6xsg4zn4bhAc3m5rs34+Xjwyuj0f3tibopIyLpu8mBvfW8bGPF0buT5wJhHcCwQBdwM9gGuA65w5uYiMFJFNIpIpIg+f4ZjBIrJaRNaLiEeeRFKqwfENg95TrN5BwXr4uivsmG57swNSovnxgcE8NDKVpdsPMOqVhdz/8Wp2Hjhie9vq3DlTfbSbMabGyyg5VjXbDAwHcoBlwFXGmIxKx0QAi4CRxpgdIhJrjNlb3Xn1qSGlauhwFvx8FexfCm1ug+4vgY/9T/gcOlLK6/O38t7P26kwhom9W3LX0DZEaxVTj6jVU0PASyKyUUT+JiI1KT3dC8g0xmQZY0qBqZxemuJqYMaJtQ3OlgSUUucgpJVVxK79g5A5Geb0goKMs3+uliKC/HhkVHvmPziES3vE898l2Qz654+8PHczRSX2jluomnGmDPUQYDBWobk3RWSdiDzuxLlbADsrvc5xvFdZW6CJiMwTkRUicm1VJxKRW0RkuYgsz8/XendK1Zi3n7Vm8uBvoGQPfJMGmVPcUuK6aXgAz13SmW/vO59BqTG88v0Whrwwn6/X7ba9beUcp8pQG2PyjDGvArcBq4EnnPhYVVMNT/1X54M17nARMAL4i4i0raL9N40xacaYtJiYGGdCVkpVpfkIGL0GovvB0putW0ZuWi+5dUwIkyb24LM7+xMX5s/t/7eS2z9cwd6iEre0r87MmQll7UXkKRFZD/w/rHv6zhQYyQESKr2OB3KrOOYbY0yxMWYfsADo4lTkSqlzE9gMhn4LXf4OO6fB191g31K3Nd81IYLP7+zPn0e24/uNe7ngxfl8unwn9a3KQUPi7ISyg8BwY8wgY8zrTt7LXwakiEiyiPgBVwKzTjnmc2CgiPiISBDQG9hQg/iVUudCvKDjI3DBAqAC5vaHjH+BqXBL8z7eXtw+uDVf3zOQ1KahPDhtLde+s1SfLvIQZ8YI+mDNLI4WkfMcX+pnZYwpA+4C5mB9uX9ijFkvIreJyG2OYzYA3wBrgaXAFGNM+rldilKqxmL6wahVED8WVj8E80bD0T1ua751TAgf39KXv43tyMrsg4x6ZSFzM9zXvrI48/joaOANYCvWff9k4FZjzNf2h3c6fXxUKRsYA5lvwIp7wS8C+n0ITS9wawg5B49wx/+tZG1OAX8a3pa7hrZBRKuaukqtHx8FhhhjBhtjBmHVG3rZlQEqpTxMBFJug5HLwC8SfrjQLeUpKotvEsQnt/ZlfLcWvDh3M3f+byXFx8rc1n5j5kwi2GuMyaz0OgvQ5/2VaogizoORy6H1TW4rT1FZgK83L13ehcdGt+eb9DwmvL5Ixw3cwJlEsF5EvhKRP4jIdcAXwDIRuURELrE5PqWUu/kEQe833V6e4gQR4ebzW/Hu9b3IPXSU8ZMWkb2/2G3tN0bOJIIAYA8wiF8nlkUCvwPG2BaZUsqzWl5hDSSHpcJPl8LS26HsqNuaH9Q2hum396O8ooJr3v6FPYU638AuukKZUqp65aWw9nHY8C8I72T1FCJqUm2mdtbsPMTVby05OYYQHuSe9ZkbmtoOFiulGrNTy1PM6em28hQAXRIiePPaNLbtK+b695ZypFQHkF1NE4FSyjmnlae40m3lKfq3iebVq7qyeuchbv9wJaVl7pn41lhoIlBKOe835SmmO8pT/OKWpkd2asbfx5/H/M353PvxKsrKNRm4So0SgYjMtisQpVQ9cVp5igFuK09xZa9EHr+oPV+ty+OhaWupqKhfY5x1VU17BKeWkVZKNVYeKk9x08BWPHBhW2as2sVjn63TYnUuUNNEUOOVypRSDZhfExjwKfScDHvnw9ddIO8725u9a2gKdw5pzUdLd/L0FxmaDGqpRonAGHODXYEopeopEUi5FUYsrVSe4hHby1M8cGEqN/RP5r1F2/nHN5s0GdSCj6cDUEo1ECfKU6y4FzKehz3zoP9HEJJkS3Miwl/GtOdYWTmT52/FS+DBEalaqO4c6FNDSinXqVyeojDDKk+xc4ZtzYkIfxvbiat6JTJp3lb+OUd7BudCE4FSyvVOlKcIbQsLJ8CGF22bgOblJTw7rhMTeyfy+rytPP/NRk0GNXROiUBE3nR1IEqpBiakFQxfAAmXwqoHYOV9UFFuS1NeXlbP4Jo+ibwxP4vnvtZkUBNnHCMQkcgz7QJG2xOOUqpB8Q6AAR/Dyj/Bpn/DkRzo+1/wCXR5UyeSgZcIby7IoqLC8Ojo9nh56ZjB2VQ3WJwPZGN98Z9gHK9j7QxKKdWAiBf0eBmCE2Hl/VCSB+fPAv8z/a5Zi6ZEePrijniJMOWnbazdVcDzl5xHq5gQl7fVkFR3aygLGGyMSa60tTLGJGOVpVZKKee1uw/6fwz7l8Hc/rYteCMiPPm7DvxzQmc27i5k1CsLmTx/q5akqEZ1ieDfQJMz7Pun60NRSjV4LS+HoXPhaB582xcO2DNHVUS4vGcC390/iMGpMTz/9UbGTfqZTXlFtrRX3+l6BEop9zu0HuaNgtKDMGCaVdnUJsYYvk7P44nP0ymvMHx+5wASo4Jsa6+u0vUIlFJ1S0RHuHAJhLSG+WMg6z3bmhIRRp/XjE9v60eFgRvfX0Zhib2znusbTQRKKc8Iam49Xho3GJZcD+nP2LrYTXJ0MK9f051t+4q5+6NVlGvl0pM0ESilPMc3DAZ9CUm/h7V/gaW3QoV9K5D1ax3N02M7Mm9TPn//aoNt7dQ3TtUaEpEwY0zhiZ92B6WUakS8/aDv+xCcAOv/DkdzrbkHPsG2NDexd0u27DnM2z9tIzUulMt7JtjSTn3ibI9g3ik/lVLKdUSgy7PQ83XY/TV8NwRK9trW3OMXtad/myie+mI9uw4dta2d+qKmt4Z0ip5Syj4pt8HAmVCQbj1eWrjFlmZ8vL34x4TOADw2Uxe30TECpVTdEn8xDPsBjhfC3H62rYkc3ySIB0ekMm9TPrPW5NrSRn2hiUApVfdE94Hhi8A3HL4fAjmzbGnm2r5JdE2I4OkvMjhQXGpLG/VBTRNB4+4/KaXcJywFLlwE4Z1g4XjYMtnlTXh7Cf+Y0JmikuM83ojXP3Y2EcgpP5VSyn4BsXDBj9BsNCy7HVY/6vK5BqlNQ3ngwlS+WpfHS3M3u/Tc9YWzieCKU346RURGisgmEckUkYerOa6niJSLyKU1Ob9SqhHwCYbzZ0KbWyDjOVh8HZS79jbOLee34oq0BP7zQyafLt/p0nPXB07NIzDGbK780xki4g28BgwHcoBlIjLLGJNRxXH/AOY4e26lVCPj5QM9J0NQgjXxrGQ3DJxuTUhzARHhmfGd2HXoKI/MWEeLiED6tYl2ybnrAzsHi3sBmcaYLGNMKTAVGFvFcX8EpgP2PTSslKr/RKDT49DnXdgzD+aeD0dc97SPr7cXk67pTquYYG79cAVb9jSeSqV2JoIWQOU+Vo7jvZNEpAUwHqh2FEhEbhGR5SKyPD8/3+WBKqXqkVZ/gMFfwuGt8G0fKMg460ecFRbgyzt/6EmArzd/eHcZO/Yfcdm56zI7E0FVA8unjvL8G/izMabahUyNMW8aY9KMMWkxMTGuik8pVV81uxAuWAAVx+Hb/rB3gctOHd8kiHf/0JPi0jIunbyoUaxhcMZEICJfiMisM21OnDsHqFzEIx44tR+XBkwVke3ApcAkERlXs0tQSjVKkd1gxBIIbAo/DIcdn7rs1J1ahPPJrX0RgcvfWMyqHQdddu666IwL04jIoOo+aIyZX+2JRXyAzcAwYBewDLjaGLP+DMe/B8w2xkyr7ry6MI1S6jeOHYAFYyH/J+j+krUkpovsPHCEiVN+Yd/hY7x1bRr96/EA8jktTGOMmX9iA5YCeae8Vy1jTBlwF9bTQBuAT4wx60XkNhG57dwuRSmlTuEfaS1/mTABVt4PK+4D45r1iRMig5h2W18SmgRx/bvLmLM+zyXnrWvOulSliPwOeAHwM8Yki0hX4K/GmIvdEN9ptEeglKqSqbASwaZXIPk66PMOiGuGQQ8dKeUP7y4jY3chs+7qT7umrnls1Z1qu1TlU1iPgh4CMMasBpJcE5pSSrmIeEGPf8N5T8O292HFvS6bhRwR5Mdb16YRFuDLXf9bxdHSap9vqXecSQRlxpgC2yNRSilX6PQXaHc/bP4PrHvKZaeNCfXn5Su6kLn3MH+dXeVQZ73lTCJIF5GrAW8RSRGR/wCLbI5LKaXOjQh0ewFa3wjpf4UNL7ns1ANTYrhtUGs+WrqT2WsbTulqZxLBH4GOwDHgI6AQuNfGmJRSqnZEoOcbkHgZrPoTbH3bZaf+04Vt6ZYYwUPT1rK5gcw+PmsiMMYcMcY8hvUY6BBjzGPGmBL7Q1NKqVrw8oa+H0KzkbD0FthR7ZPpTvP19uL1iT0I9vfhlg+WU3DkuEvO60lnTQSOyqDrgLXAOhFZIyI97A9NKaVqydvPKk4X3RcWXQ25rqlt2TQ8gNcndmfXoaPc8/Eqyivq9zoGztwaehu4wxiTZIxJAu4E3rU1KqWUchWfIBg0G8I7Wgvc7P3JJadNS4rkyd91ZN6mfF78dpNLzukpziSCImPMwhMvjDE/AQ3jxphSqnHwi4Ahc6wy1vMvggOrXHLaib0TuapXApPmbWVuxh6XnNMTnEkES0XkDREZLCKDRGQSME9EuotId7sDVEoplwiIhaHfgW8E/DgCCmv/W7yI8NTFHWkREcgn9XhBG2cWpunq+PnkKe/3w6omOtSVASmllG2CE6xyFN8NtArVDf8JghNrdUp/H2/6to7ix417McYgUv9W9HUmEVxwtjLRSilVb4S1tW4TfTfYSgYXLIDAuFqdskfLJkxbkcP2/UdIjg52TZxu5MytoUwR+ZeItLc9GqWUcocmXa3FbY7kWLeJSg/V6nQ9WjYBYPn2A7WPzQOcSQSdscpJvy0iSxyrhdW/iktKKVVZTH84fyYUZsC8i6Cs+JxP1SYmhLAAH1bW03ULqluYxgfAGFNkjHnLGNMPeAhrrGC3iLwvIm3cFKdSSrleswuh30ewfwksuATKj53Taby8hF7JUXyTnkd+0bmdw5Oq6xEsBRARbxG5WEQ+A14BXgRaAV8AX9keoVJK2SlxAvR6C/K+hUUToaLsnE7z55GpFJeW88iMdZytvH9d48ytoS3AWOAfxphuxpiXjDF7HCuJfWNveEop5Qatb4DuL8PO6VY5inNY2CYlLpSHRqTy3YY9TFuRY0OQ9qnuqaFYEbkfeAc4CvQVkb4ndjoSwt12B6iUUm7R7l5r0Dj9aWuuQfcXreJ1NXBD/2S+zdjDX7/IoF+baFpEBNoRqctV1yPwBkIq/Qw9ZVNKqYblvCeh7d2w6WVIf6bGH/fyEl68rAsVxvDgp2uoqCc1iKrrEew2xvzVbZEopZSniUCPl+F4Aax7AvzCIbVmNz4SIoP4y5gOPDxjHZ+v2cX4bvE2Bes61fUI6t/0OKWUqi3xgt5TIH48rLgHst6v8Smu6JlAXJg/P27MtyFA16suEQxzWxRKKVWXePlA/4+g6XD45QbYOaNGHxexHiddkrW/XjxBdMZEYIypn1PklFLKFbz9YeAMiOwFP18Fed/V6OO9kyPZW3SM7fuP2BSg6zjz+KhSSjVOviEw5CsIS4X5YyF/sdMf7dMqEoBfsvbbFZ3LaCJQSqnq+DWBId9CYHNYOA6O7HLqY61jQogO8WPepro/TqCJQCmlziawKQz63KpH9NPlUHH2dYpFhAk94pmTkcfW/MNuCPLcaSJQSilnhHeA3m/DvkWw6kGnPnLzwFb4+3jx2o+ZNgdXO5oIlFLKWS2vgNR7YNMrsH3qWQ+PDvFnYu+WfL46l+z9517d1G6aCJRSqia6/csqYb30JijIOOvht57fCm8vqdO9Ak0ESilVE16+0P8T8AmGhRPgeFG1h8eGBXBN75ZMW5FDRm6hm4KsGU0ESilVU0HNof/HULQFltwAZ5k0ds+wFMIDffnr7PV1coKZrYlAREaKyCYRyRSRh6vYP1FE1jq2RSLSxc54lFLKZeIGQ5fnYOc02PTvag8ND/Ll/gtTWZJ1gG/S89wSXk3YlghExBt4DRgFdACuEpEOpxy2DRhkjOkM/A140654lFLK5do/AAmXWE8R7V1Y7aFX9UygXdNQnv1qAyXHy90UoHPs7BH0AjKNMVnGmFJgKtYCNycZYxYZY04s8rkEqPtl+pRS6gQR6P0OhLSy5hcc3X3GQ328vXhiTAdyDh7lv4uz3Rjk2dmZCFoAOyu9znG8dyY3Al9XtUNEbhGR5SKyPD+/7s/SU0o1In7hVk2i44Xw0xXVTjbr1yaanklNmLpsR50aK7AzEVRVxrrKKxeRIViJ4M9V7TfGvGmMSTPGpMXExLgwRKWUcoGITtDrTchfCKsfqfbQS7rHszW/mLU5BW4K7uzsTAQ5QEKl1/FA7qkHiUhnYAow1hhT96szKaVUVZInQsqdsPFF2DHtjIeNPq8Zfj5ezFzlXM0id7AzESwDUkQkWUT8gCuBWZUPEJFEYAbwe2PMZhtjUUop+3V/CaL6wJLroWBjlYeEB/oyvEMcn6/eRVHJ2WsWuYNticAYUwbcBcwBNgCfGGPWi8htInKb47AngChgkoisFpHldsWjlFK28/aDgZ+CdwD8NAGOV11s7sYByRQcPc6Ts9a7OcCqSV0asHBGWlqaWb5c84VSqg7L+x5+vBASL4d+/7OeLjrFS3M38+r3W3jlyq6M7VrdczSuISIrjDFpVe3TmcVKKeVqTYdB52cgeyps/k+Vh9w9tA3dEyN4fGY6+UXH3Bzgb2kiUEopO3T4M7S4GFb+CfIXnbbbx9uL5yd0puhYGZ+v9uzAsSYCpZSyg3hB3/chuCX8dBkc3XPaIW3jQunUIozPV5/2QKVbaSJQSim7+EXAwOlQehAWTQRTcdoh47vFs25XASuyD57+eTfRRKCUUnZq0gV6/Bv2fA9bp5y2+8qeCcSG+vPMlxkem22siUAppezW+maIG2IVpzvy29tAwf4+PDAilVU7DjFnvWcqk2oiUEopu4lYJSgqSmH5naetXzChezxJUUG89uNWj/QKNBEopZQ7hLaB856GnM9g5/Tf7PL2Em4d1Jp1uwpYuGWf20PTRKCUUu7S7n5o0h2W32UNIFdySfcWNAsP4IVvN1FR4d5egSYCpZRyFy8f6D0Fju2DlQ/8Zpe/jzcPjkhlbU4Bs9a493FSTQRKKeVOkd2slc2y3rFKUVQyrmsLOrUI49Xvt7h1rEATgVJKuVunJyE0BZbeAmVHTr7t5SXcOCCZrH3FLNrqvqr8mgiUUsrdfAKh11twOAvWPfmbXaM6NaNJkC8fLnHfcpaaCJRSyhPiBlnzCza+BPt/ragc4OvNuG4tmJuxx22L3GsiUEopT+n2TwiIg19u+s1ax2ktIymrMGzZU/V6Bq6miUAppTzFLwLSJsGhNbDhhZNvd2oRBsD6XPesa6yJQCmlPClhHCRMgHVPQ+EmABIjgwjx92HD7kK3hKCJQCmlPC3t/4F3oPUUkTGICImRQew4cOTsn3UBTQRKKeVpgU2h6/OwdwHsmgVAQmQgm/cc5liZ/QPGmgiUUqouaH0jhLaFNY9CRTnju8Wz69BRHp6+zvbJZZoIlFKqLvDygS7PQkEGbP8vIzs15f7hbZm5ahef2byUpSYCpZSqKxImQGQarH0Cykv449A2tIwKYsZKTQRKKdU4iFhjBUd2wpbXERFGdWrGoq37OVpq31iBJgKllKpLmg6DpsNh/bNQWkDXhAjKKwyb9hTZ1qQmAqWUqmu6PgfH9sPGF2nfLBSAjTbOKdBEoJRSdU1kD0i8HDa+REJgEcF+3mzM0x6BUko1Lp3/BuUleG14nvBAX4qPldnWlCYCpZSqi8LaQtJE2DqFELG3+JwmAqWUqqva3QdlxUyI+Jr9xaW2NaOJQCml6qomXSF2MJeHfU76TvtWLNNEoJRSdVm7+2hCHkOCF9jWhK2JQERGisgmEckUkYer2C8i8qpj/1oR6W5nPEopVe+0GMNBr0TGh3xBRq49j5DalghExBt4DRgFdACuEpEOpxw2CkhxbLcAr9sVj1JK1UvihW/K9fQJSWf+qmW2NGFnj6AXkGmMyTLGlAJTgbGnHDMW+MBYlgARItLMxpiUUqreCUm9DoC2pXNtOb+diaAFsLPS6xzHezU9BhG5RUSWi8jy/Px8lweqlFJ1WkgyS7mIsCaJtpzex5azWqSK904tqu3MMRhj3gTeBEhLS7O3MLdSStVBva6ebdu57ewR5AAJlV7HA7nncIxSSikb2ZkIlgEpIpIsIn7AlcCsU46ZBVzreHqoD1BgjNltY0xKKaVOYdutIWNMmYjcBcwBvIF3jDHrReQ2x/7JwFfAaCATOAJcb1c8SimlqmbnGAHGmK+wvuwrvze50p8NcKedMSillKqezixWSqlGThOBUko1cpoIlFKqkdNEoJRSjZxY47X1h4jkA9nn+PFoYJ8Lw6kP9JobB73mxqE219zSGBNT1Y56lwhqQ0SWG2PSPB2HO+k1Nw56zY2DXdest4aUUqqR00SglFKNXGNLBG96OgAP0GtuHPSaGwdbrrlRjREopZQ6XWPrESillDqFJgKllGrkGmQiEJGRIrJJRDJF5OEq9ouIvOrYv1ZEunsiTldy4ponOq51rYgsEpEunojTlc52zZWO6yki5SJyqTvjs4Mz1ywig0VktYisF5H57o7R1Zz4tx0uIl+IyBrHNdfrKsYi8o6I7BWR9DPsd/33lzGmQW1YJa+3Aq0AP2AN0OGUY0YDX2OtkNYH+MXTcbvhmvsBTRx/HtUYrrnScT9gVcG91NNxu+HvOQLIABIdr2M9HbcbrvlR4B+OP8cABwA/T8dei2s+H+gOpJ9hv8u/vxpij6AXkGmMyTLGlAJTgbGnHDMW+MBYlgARItLM3YG60Fmv2RizyBhz0PFyCdZqcPWZM3/PAH8EpgN73RmcTZy55quBGcaYHQDGmPp+3c5cswFCRUSAEKxEUObeMF3HGLMA6xrOxOXfXw0xEbQAdlZ6neN4r6bH1Cc1vZ4bsX6jqM/Oes0i0gIYD0ymYXDm77kt0ERE5onIChG51m3R2cOZa/5/QHusZW7XAfcYYyrcE55HuPz7y9aFaTxEqnjv1GdknTmmPnH6ekRkCFYiGGBrRPZz5pr/DfzZGFNu/bJY7zlzzT5AD2AYEAgsFpElxpjNdgdnE2eueQSwGhgKtAbmishCY0yhzbF5isu/vxpiIsgBEiq9jsf6TaGmx9QnTl2PiHQGpgCjjDH73RSbXZy55jRgqiMJRAOjRaTMGPOZWyJ0PWf/be8zxhQDxSKyAOgC1NdE4Mw1Xw88b6wb6Jkisg1oByx1T4hu5/Lvr4Z4a2gZkCIiySLiB1wJzDrlmFnAtY7R9z5AgTFmt7sDdaGzXrOIJAIzgN/X498OKzvrNRtjko0xScaYJGAacEc9TgLg3L/tz4GBIuIjIkFAb2CDm+N0JWeueQdWDwgRiQNSgSy3RuleLv/+anA9AmNMmYjcBczBeuLgHWPMehG5zbF/MtYTJKOBTOAI1m8U9ZaT1/wEEAVMcvyGXGbqceVGJ6+5QXHmmo0xG0TkG2AtUAFMMcZU+RhifeDk3/PfgPdEZB3WbZM/G2PqbXlqEfkIGAxEi0gO8CTgC/Z9f2mJCaWUauQa4q0hpZRSNaCJQCmlGjlNBEop1chpIlBKqUZOE4FSSjVymghUnXa2Soxn+exMRxXOTBEpcPx5tYj0c1Fshx0/k84lvirO956IbHPEuFJE+tY+SqXOThOBquveA0aeyweNMeONMV2Bm4CFxpiujm2RC+NztQcdMT8MvGF3YyLibXcbqu7TRKDqNCcqMdaIiCwUka6VXv8sIp1F5CkR+a+I/CAiW0Tk5krHPCgiyxy13592VSxnsQBo42j/fhFJd2z3Ot57SETudvz5ZRH5wfHnYSLyoePPF4rIYkfv4lMRCXG8v11EnhCRn4DL3HQ9qg7TRKAamynAHwBEpC3gb4xZ69jXGbgI6As8ISLNReRCIAWrHHJXoIeInO9MQyISWul21Klbh7N8/HfAOhHpgTVztDdW7fmbRaQbVqIY6Dg2DQgREV+sYoILRSQaeBy4wBjTHVgO3F/p/CXGmAHGmKnOXItq2BpciQmlzuJT4C8i8iBwA9atpxM+N8YcBY6KyI9YX/4DgAuBVY5jQrASw4KzNWSMKcJKHjXxLxF5HMjHqhI7DJjpKCKHiMzASgCvYyWlUOAYsBIrIQwE7sZKGh2Anx0lRfyAxZXa+biGcakGTBOBqtcc97hXOF7OMsY8Ud3xxpgjIjIXa3GPy7G+PE/uPvVwrNo1zxljany/3vElvfAMu682xmRU8f6Dxphplc5xQVUfNsYcF5HtWL2FRVi1hYZglWHe4Pg51xhz1RnaL3bqIlSjoLeGVL1mjCmvNAhcbRKoZArwKrDMGFN5/GGsiASISBRW0a9lWMXObqh0f72FiMQ6GVtRpdhO3apKAlVZAIwTkSARCcZaaGdhpX0POH4uBG4DVjvKMS8B+ovIiXGGIMetMKVOo4lA1WmOSoyLgVQRyRGRG2t7TmPMCqAQePeUXUuBL7G+RP9mjMk1xnwL/A9rgZd1WOWsQ2sbQw1iXYl1+2op8AtWNdETt6kWAs2AxcaYPUCJ4z2MMflYYyEfichaxzW1c1fcqn7R6qOq0RGR5sA8oN2JJQ1F5CngsDHmBQ+GppRHaI9ANSpireH7C/BYA1/XVimnaY9AKaUaOe0RKKVUI6eJQCmlGjlNBEop1chpIlBKqUZOE4FSSjVy/x+GZV1m03vp7wAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Threshold values\n", "t_thresholds = np.arange(-10, 10, 0.1)\n", "\n", "# Compute the p-value and power for each threshold\n", "cdf_null = np.searchsorted(np.sort(hist_null), t_thresholds)/ndata\n", "sf_alt = 1 - np.searchsorted(np.sort(hist_alt), t_thresholds)/ndata\n", "\n", "# Plot the result\n", "plt.plot(sf_alt, cdf_null, label='t(s)')\n", "plt.plot(scipy.stats.poisson.sf(n_thresholds, s_alt*s_fracs[i_bin] + b*b_fracs[i_bin]), scipy.stats.poisson.cdf(n_thresholds, s_null*s_fracs[i_bin] + b*b_fracs[i_bin]), color='orange', label='bin 5')\n", "plt.xlabel('1 - TypeII = Power')\n", "plt.ylabel('TypeI = 1 - pvalue')\n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The upshot of all this is that the likelihood ratio (LR) prescribed by the Neyman-Pearson lemma indeed seems better than bin 5 alone. This is not surprising, given that the LR combines information from all the bins, and assigns more weight to bins with more signal. We won't check it here, but the LR is optimal is the sense that no other combination of the per-bin measurements provides better performance.\n", "\n", "In the following, we will use the LR systematically when performing tests. We will also drop Type-II errors from the discussion, and focus only on the p-value (Type-I error rate). Since the LR is optimal anyway, we can do this and trust that the Type-II error rate is as low as it can be." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Testing for discovery, using simple tools" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First test we consider is *discovery* testing, i.e. testing for the presence of a signal. As an illustration, we can go back to a binned example:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Define an example with more signal, to make it interesting\n", "s = 70\n", "b = 1000\n", "s_and_b = s*s_fracs + b*b_fracs\n", "b_only = b*b_fracs\n", "\n", "# Generate a dataset\n", "np.random.seed(6) # make sure we always generate the same\n", "data = [ np.random.poisson(s*s_frac + b*b_frac) for s_frac, b_frac in zip(s_fracs, b_fracs) ]\n", "\n", "# Plot the results\n", "plt.bar(x, b_only, yerr=np.sqrt(b_only), color='b', label='b only')\n", "plt.scatter(x, data, zorder=10, color='k')\n", "plt.xlabel('bin number')\n", "plt.ylabel('Total expected yield')\n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Only the background is plotted, but we can ask whether there is a signal present as well (seems so!). How do we test for this ?\n", "\n", "To simplify matters, let's focus first on a single bin, say bin 4. The event counts are as follows:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "n[4] = 126 , b[4] = 103.2258064516129\n" ] } ], "source": [ "b4 = b*b_fracs[4]\n", "n4 = data[4]\n", "print('n[4] =', n4, ', b[4] =', b4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This implies that there is an amount of signal present that can be estimated as" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "22.774193548387103\n" ] } ], "source": [ "s4 = n4 - b4\n", "print(s4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This seems sizable, but it could well be due to a random fluctuation of the background. How do we tell ? We know that the typical size of the fluctuations is the RMS of the background yield, which is given by its square root:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "sigma4= 10.16001016001524 z = 2.241552241553363\n" ] } ], "source": [ "sigma4 = np.sqrt(b4)\n", "z4 = s4/sigma4\n", "print('sigma4=', sigma4, 'z =', z4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So the observed signal is between 2 and 3 times the RMS : a bit larger than the typical fluctuation, but not huge either. How do we quantify how often such a fluctuation would happen ? Do do this, we can assume that the background count is distributed as Gaussian, with central value $b_4$ and width $\\sqrt{b_4}$. How likely are we to see a fluctuation as large as the signal ?\n", "\n", "For this, we just need to reuse the Gaussian quantiles studied in the first lecture:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_b = np.linspace(50,150,100)\n", "plt.plot(plot_b, scipy.stats.norm.pdf(plot_b, b4, sigma4))\n", "plt.xlabel('n4')\n", "plt.ylabel('PDF')\n", "\n", "# Now fill in part of the distribution and print the integral\n", "shaded_b = np.linspace(n4, 150, 100)\n", "plt.fill_between(shaded_b, scipy.stats.norm.pdf(shaded_b, b4, sigma4), alpha=0.5, color='g');\n", "plt.title('fraction (%g)=%g' % (n4, scipy.stats.norm.sf(n4, b4, sigma4)));" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So a fluctuation at least as large as the signal should happen in only $1\\%$ of cases. This is already a pretty good numerical indication that this is not a typical situation, but not completely exceptional either.\n", "\n", "Recalling the previous section, one can see that this number is a p-value, the rate for a Type-I error. The null hypothesis corresponds to $s=0$, and this is the signal value for which we have drawn the PDF above. The shaded area corresponds to the fraction of cases above the observation, which we want to use as a threshold to reject the hypothesis. The integral above this threshold measures how often this happens if the hypothesis is true, which is the p-value.\n", "\n", "As usual, small p-values mean good exclusion, and point towards discovery, while large p-values (close to 1) point to good agreement with the null. \n", "We need to set a threshold on the p-value, below which we feel it is safe to exclude $s=0$.\n", "\n", "How small is small enough ? This is usually expressed in terms of significance, not p-value. The mapping is as follows:" ] }, { "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", "
Number of standard deviations from the mean1-sided tail fraction
00.05.000000e-01
11.01.586553e-01
22.02.275013e-02
33.01.349898e-03
44.03.167124e-05
55.02.866516e-07
\n", "
" ], "text/plain": [ " Number of standard deviations from the mean 1-sided tail fraction\n", "0 0.0 5.000000e-01\n", "1 1.0 1.586553e-01\n", "2 2.0 2.275013e-02\n", "3 3.0 1.349898e-03\n", "4 4.0 3.167124e-05\n", "5 5.0 2.866516e-07" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bounds = [0, 1, 2, 3, 4, 5]\n", "one_sided_tail = [ scipy.stats.norm.sf(up) for up in bounds ]\n", "\n", "# Pretty-print the result\n", "import pandas as pd\n", "import jinja2\n", "fields = np.array([ bounds, one_sided_tail ]).T\n", "labels = [ 'Number of standard deviations from the mean', '1-sided tail fraction' ]\n", "pd.DataFrame(fields, columns=labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These numbers are valid for any Gaussian, with the number of standard deviations defined as\n", "$$\n", "z = \\frac{x - x_0}{\\sigma}\n", "$$\n", "So we can express our p-value as a number of standard deviations. In fact this is what we computed before:\n", "$$\n", "z = \\frac{n_4 - b_4}{\\sqrt{b_4}} = \\frac{s_4}{\\sqrt{b_4}}.\n", "$$\n", "\n", "So this is the expression for the significance in the Gaussian case. It is completely equivalent to the p-value: one can go from one to the other using the table above. Significances are however easier to understand, and also usually easier to compute. In our case, as computed above, we have:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "z = 2.241552241553363\n" ] } ], "source": [ "z4 = s4/np.sqrt(b4)\n", "print('z = ', z4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and one can go from this to the p-value using the normal 1-CDF function:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.012495162778418261\n" ] } ], "source": [ "p4 = scipy.stats.norm.sf(z4)\n", "print(p4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Which is again a value we obtained above.\n", "\n", "Historically, thresholds for discoveries in physics have been defined in terms of the significance as follows:\n", "* $z \\ge 5$ : \"real\" discovery\n", "* $z \\ge 3$ : \"evidence\" for a signal -- suggestive but not quite at the threshold for a discovery\n", "So in this context, our excess above is not significant as it doesn't even meet the $3\\sigma$ threshold. To reach a $5\\sigma$ discovery, we would have needed" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "s4 for discovery = 50.8000508000762\n" ] } ], "source": [ "print('s4 for discovery = ', 5*np.sqrt(b4))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Discovery testing as a hypothesis test" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Earlier in the lecture, we described statistics tests in terms of\n", "* Definition of hypotheses (null and alternate)\n", "* Definition of the discriminant\n", "* Rate of Type-I errors (false positives), a.k.a. p-value and Type-II errors (false negatives)\n", "\n", "The discovery setup we have just explored can be seen as exactly such a test. The parameters are as follows:\n", "* Null: no signal; Alternate: any positive signal\n", "* Discriminant: the likelihood ratio -- or in simple cases the measured yield.\n", "* p-value: the tail integral seen above (false positive: probability to get an outcome that is larger than the threshold, even though the null is true)\n", "\n", "We need to add one more element though: since the alternate can be *any* positive signal, how do we decide what value to use ? The natural solution is to use the best-fit value $\\hat{s}$, so that the discriminant is finally\n", "$$\n", "t_0 = -2 \\log \\frac{L(s=0)}{L(\\hat{s})}.\n", "$$\n", "the numerator is for the null, and uses $s=0$. The denominator uses $\\hat{s}$ for the alternate.\n", "\n", "First, let's check that this gives the same result as our previous determination, for a single bin counting. Recall that this is all for a Gaussian likelihood:\n", "$$\n", "L(s) = \\exp\\left[-\\frac{1}{2} \\left(\\frac{(n - (s+b)}{\\sqrt{s+b}}\\right)^2 \\right]\n", "$$\n", "First, what is the best-fit value $\\hat{s}$ for a given $n$, the value that maximizes $L$ ? \n", "\n", "We need the exponent of the Gaussian to be zero, so $n = \\hat{s} + b$ and $\\hat{s} = n - b$.\n", "\n", "So what is the value of $t_0$ ? From a simple computation,\n", "\n", "$$\n", "t_0 = \\left(\\frac{n - b}{\\sqrt{b}}\\right)^2 = \\left(\\frac{\\hat{s}}{\\sqrt{b}}\\right)^2\n", "$$\n", "\n", "So it is equal to the square of the significance! In other words, once we have $t_0$, we can get the significance as\n", "$$\n", "z = \\sqrt{t_0}\n", "$$\n", "and the p-value as" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.012495162778418261" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t0 = z4**2\n", "scipy.stats.norm.sf(np.sqrt(t0))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Of course this all is a bit overkill here, since we already had the answer using simpler methods. But now that we validated the technique on a simple example, we can apply it to a less trivial one, in the next section." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. Testing for discovery in a histogram\n", "\n", "Now that we have a general technique, let's apply all this to the full binned distribution above:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.bar(x, b_only, yerr=np.sqrt(b_only), color='b', label='b only')\n", "plt.scatter(x, data, zorder=10, color='k', label='data')\n", "plt.xlabel('bin number')\n", "plt.ylabel('Total expected yield')\n", "plt.legend();" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "exact hat{s}: 62.62713906897173\n", "t0 = 12.37329885777288 z = 3.517570021729899 p-value = 0.0002177587148763835\n" ] }, { "data": { "image/png": "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5ptv7tQ1fadQwrzAT3nyg3Od09h8tHTpUh566CG+8Y1vEBE88sgjPPLIIxx00EGMHTuWpUuXsmzZMkaOHMljjz3G5ZdfzlNPPcVOO+1UkLgGDBhA//79mTRpEvfdd1+zzUsPP/wwY8aMYcyYMcycOZNJkyYxZswYDjvssGav2atXL84991wAxo8fz9NPP93pOJ0USlghJgwzKydHHHEE69atY+3atUQEkydPZsGCBSxYsIDly5dz4YUXss8++/D8888zcuRIJk+ezNVXX73dde6///7sf9bz58/vUCx9+vRh3rx5nHXWWTzwwAOcfPJ284Vy0kknZeMbN24ct912GwsWLOC5557Lq47mpg1vLyeFEta4wE+/fv0AvMCPWTstXbqUjz/+mIEDB3LSSSdxxx13ZEfrvPrqq6xZs4bXXnuNiooKxo8fz6WXXsoLL7wAbDut9plnnpn9z7qqqqrVOptOx93ovffeY/369XzlK19h6tSp2aanzti6dSszZswA4K677uKLX/xip6/pPoUSV11dza233gp4Mj7rhvIYQtrVGvsUIDML9LRp0+jduzdf/vKXWbJkCUcccQSQGc45ffp0li9fzmWXXUavXr3o27cvt9xyCwA1NTWccsopDBkyhCeeeCLv+ls6b8OGDZx++ul88MEHRAQ/+9nPOv1dd9hhBxYtWsTBBx/MTjvtxD333NPpayozi2r3VFVVFR29lWuvNGdJ9Qytxeefd8csWbKE/fffP+0wLEdzPxNJz0dEs7c8bj4yM7Ossm4+6kifTHvO6cY3YWZWpso6KViZyXPKhfpnYO4zsHkLVA4WtedA9VF51pFCG7pZV3LzkVmO+meg5rZMQgBYuS6zXf9MunGZFYuTgrUqzQep0qh7yr2w6cNtyzZ9mCk3KwdOCmY5Vq1rX7lZT+OkYJZj2PbT3LRa3tXq6+uZO3cuc+bMobKykvr6+uJUXCBS177asmLFCg488MAu/x6zZ8/mtNNO6/LrliInBbMctedAxae2Lav4VKa80BqnSt+8eTPwyVTp3T0xWPfipGCWo/ooqJsE/ZJxecMHZbbzHn3UCZ4qvWts2bKFCRMmMGrUKM4+++zt/kwBFixYwOGHH86oUaM488wzefvtt4FMP9bll1/OoYceyj777MNTTz21zXlbt25lxIgR2Smqt27dyuc//3nWres57YtO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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Compute and print s_hat\n", "# A slight technical issue is that we need to minimize lambda_s, which we've defined as a function of both s and data\n", "# in order to get a function of s only, we build a small function on-the-fly using the 'lambda' operator of python\n", "# (no relation to the likelihood ratio!)\n", "from scipy.optimize import minimize_scalar\n", "s_hat = minimize_scalar(lambda s: lambda_s(s, data), (0, 200)).x\n", "print('exact hat{s}:', s_hat)\n", "\n", "# Compute and print t0, z, and the p-value\n", "t0 = lambda_s(0, data) - lambda_s(s_hat, data)\n", "print('t0 =', t0, 'z =', np.sqrt(t0), 'p-value =', scipy.stats.norm.sf(np.sqrt(t0)))\n", "\n", "# Compute the s_hat+b shape and plot the result\n", "hats_plus_b = s_hat*s_fracs + b_only\n", "plt.bar(x, hats_plus_b, yerr=np.sqrt(hats_plus_b), color='orange', label='Best-fit s + b')\n", "plt.bar(x, b_only, color='b', label='b only')\n", "plt.scatter(x, data, zorder=10, color='k', label='data')\n", "plt.xlabel('bin number')\n", "plt.ylabel('Total expected yield')\n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So the results are much better when looking at all the bins, rather than just bin 4 : overall we have a $>3\\sigma$ result, which is evidence for the signal." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "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.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }