{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# **Statistics lecture 3 Hands-on session : exercises 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": 1, "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": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEGCAYAAABiq/5QAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAcKElEQVR4nO3df3RU9Z3/8eebHwUjaCGkloJk0PqziIipdasHULutfusq8rVWG5SvqOkPu1p1u7rLnmrdzX71tLW1e7baYFnQDla+ao+0221r0YC6RRcwoi7+6GEJRlEj/iYFDLy/f8xNDCGZ3Bnm3juZ+3qck5O5n5l773tifOfymc99v83dERGR9BiSdAAiIhIvJX4RkZRR4hcRSRklfhGRlFHiFxFJmWFJBxDGuHHjPJPJJB2GiMigsnbt2jfcvab3+KBI/JlMhjVr1iQdhojIoGJmrX2Na6pHRCRllPhFRFJGiV9EJGUGxRy/iKTDBx98QFtbG9u3b086lEFl5MiRTJw4keHDh4d6vRK/iJSNtrY2Ro8eTSaTwcySDmdQcHe2bt1KW1sbkydPDrWPpnpEpGxs376d6upqJf0CmBnV1dUF/StJiV9SK5vNkslkGDJkCJlMhmw2m3RIAkr6RSj0Z6apHkmlbDZLQ0MDHR0dALS2ttLQ0ABAfX19kqGJRE6JX1JpwYIF3Um/S0dHBwsWLFDiLydLS3z1/xX1HwFN9UhKbd68uaBxSZc///nPzJw5k127dhW1/+LFi6mpqWHatGlMmzaNO+64A4D29nZOP/30go41atSoomLIR4lfUmnSpEkFjUu6LFq0iDlz5jB06NCij/HlL3+ZlpYWWlpauPTSSwGoqalh/PjxPPbYY3u9/oYbbmDx4sVFn68QSvySSo2NjVRVVe0xVlVVRWNjY0IRSTnJZrOcffbZbNmyhRkzZjBt2jSmTJnCI488ss/Hnj17dsELCa655hqmT5/OaaedRnt7+z7HoMQvqVRfX09TUxO1tbWYGbW1tTQ1NWl+X9i5cycbN24kk8mwdOlSvvCFL9DS0sJTTz3FtGnTgNzVfNc0Ts+vO++8s/s49913H1OnTuXcc8/lpZde6h6vq6sr6A/Itm3bmD59OuvWrWPmzJl897vf3ef3aIOh2XpdXZ2rOqdI5duwYQNHHXXUhwMJfLj7yiuvcOqpp/Lcc8+xatUq5s+fz9y5c5k9e3Z34h/I1q1bGTVqFCNGjOD2229n2bJlPPTQQ0Du7uSPf/zjbN26laeffpoLL7wQgFdffZWPfOQjjB07FoAVK1ZQXV3N0KFD2bFjB8OGDWPjxo3MmTOHlpaWvc65188OMLO17l7X+7W64hcR6WG//fbrvhlqxowZrFq1igkTJnDhhRd2X9EPdMVfXV3NiBEjALjssstYu3Zt9/G3b9/OfvvtB8AxxxzT/TnA1772NW688cbu7erq6j7jK8V9DlrOKSLlK4Hll2PGjGHXrl1s376d1157jQkTJnDZZZexbds21q1bx0UXXcQ999yT9xhbtmxh/PjxACxfvnyPK/EXXniBKVOmhI5n9+7d3HvvvZx//vksXbqUk08+ubg31oMSv4hIL5///Od59NFHefnll/ne977H8OHDGTVq1B5z+Pn8+Mc/Zvny5QwbNoyxY8fusVrn4Ycf5otf/GLoWPbff3+effZZjj/+eA488MAB/+iEoTl+ESkbfc1TJ+HJJ5/klltu4a677ir5sWfMmMEDDzzAmDFjSnpczfGLiOyD4447jlNOOaXoG7j6097eztVXX13ypF8oTfWIiPRh/vz5JT9mTU0Ns2fPLvlxC6UrfhGRlFHiFxFJGSV+EZGUUeIXkbJlVtqvgWzatKmgNfZhNTc3c+aZZ5b8uMWKLPGb2cFm9rCZbTCzZ83symB8rJk9aGYvBt+T/XhbRCRlorzi7wSucfejgBOBy83saOA6YIW7HwasCLZFRMpCZ2cn8+bN6y6w1rthD0BLSwsnnngiU6dO5ZxzzuGtt94CYNasWVx77bWccMIJHH744XsVY9u9ezeHHXZYd4XN3bt388lPfpI33ngj+jfWQ2SJ3923uPu64PF7wAZgAnA2sCR42RJgdlQxiIgU6vnnn6ehoYH169dzwAEH8JOf/GSv11x00UXcfPPNrF+/nmOOOWaPipmdnZ088cQT/OhHP9qrkuaQIUOYO3dud1nmP/zhDxx77LGMGzcu2jfVSyxz/GaWAY4DHgcOcvctkPvjAHwsjhhERMI4+OCDOemkkwCYO3cujz766B7Pv/POO7z99tvMnDkTgHnz5rFq1aru5+fMmQPA8ccfz6ZNm/Y6/vz587tLPyxatIiLL744ireRV+SJ38xGAfcB33L3dwvYr8HM1pjZmlI0HhARCaN39ctCq2F2VeUcOnQonZ2dez1/8MEHc9BBB/HQQw/x+OOPc8YZZxQfbJEiTfxmNpxc0s+6+/3B8GtmNj54fjzwel/7unuTu9e5e11NTU2UYYqIdNu8eTN//OMfAbj77rv3qoZ54IEHMmbMmO75+7vuuqv76j+sSy+9lLlz53LeeeftU3vHYkW5qseAnwEb3P2WHk8tB+YFj+cBD0QVg4gMbu6l/QrjqKOOYsmSJUydOpU333yTr3/963u9ZsmSJXz7299m6tSptLS08J3vfKeg93XWWWfx/vvvJzLNAxFW5zSzk4FHgKeB3cHw35Ob518GTAI2A19y9zfzHUvVOUXSoVyqc0ZtzZo1XHXVVSXp4dulkOqckRVpc/dHgf4mx06L6rwiIuXspptu4rbbbiu44Xop6c5dEZEYXXfddbS2tpakk1axlPhFpKwMhuZQ5abQn5kSv4iUjZEjR7J161Yl/wK4O1u3bmXkyJGh91EjFhEpGxMnTqStrQ3du1OYkSNHMnHixNCvV+IXkbIxfPhwJk+enHQYFU9TPSIiKaPELyKSMkr8IiIpo8QvIpIySvwiIimjxC8ikjJK/CIiKaPELyKSMkr8IiIpo8QvIpIySvwiIimjxC8ikjJK/CIiKaPELyKSMkr8IiIpo8QvIpIySvwiIimjxC8ikjJK/CIiKaPELyKSMkr8IiIpo8QvIpIyw/p7wsx+BXh/z7v7WZFEJCIikeo38QPfD77PAT4O/DzYvgDYFGFMiZo1axYAzc3NicYhIhKVfhO/u68EMLN/dPcZPZ76lZmtijwyERGJRJg5/hozO6Rrw8wmAzXRhSQiIlHKN9XT5Sqg2cw2BtsZ4KuRRSQiIpEaMPG7+2/N7DDgyGDoOXffEW1YIiISlXyreub089ShZoa73x9RTCIiEqF8V/x/lec5B5T4S0wriuKnn7mkUb5VPRfHGYiIiMRjwFU9ZnaQmf3MzP4j2D7azC6JPjQREYlCmOWci4HfAZ8Itl8AvhVRPCIiErEwiX+cuy8DdgO4eyewa6CdzGyRmb1uZs/0GLvBzF42s5bg638VHbmIiBQlTOLfZmbVBHV7zOxE4J0Q+y0GTu9j/IfuPi34+k3oSEUqSDabJZPJMGTIEDKZDNlsNumQJEXC3MB1NbCc3DLOx8jdtXvuQDu5+yozy+xbeCKVJ5vN0tDQQEdHBwCtra00NDQAUF9fn2RokhIDXvG7+zpgJvBZcnfsfsrd1+/DOb9pZuuDqaAx+3AcKaFZs2Z1L22UaC1YsKA76Xfp6OhgwYIFCUUkadNv4jezU4Pvc4CzgCOAw4G/ynNz10BuAw4FpgFbgB/kOX+Dma0xszXt7e1Fnk6k/GzevLmgcZFSyzfVMxN4iL5v5CrqBi53f63rsZktBH6d57VNQBNAXV1dv30BZPBL201UkyZNorW1tc9xkTjku4Hr+uDhpe4+4CqeMMxsvLtvCTbPAZ7J93qRStTY2LjHHD9AVVUVjY2NCUYlaRLmw90/mdm9wL+5+3+HPbCZ3Q3MAsaZWRtwPTDLzKaR+xfDJlTlU1Ko6wPcSy65hB07dlBbW0tjY6M+2JXYhEn8U4HzgTvMbAiwCPiFu7+bbyd3v6CP4Z8VHqJI5amvr2fhwoVAeqa4pHyEWdXznrsvdPfPAn9L7sp9i5ktMbNPRh6hiIiUVJhaPUPN7Cwz+yVwK7mVOIcAvwJ0A5aIyCATZqrnReBh4Hvu/p89xu81sxn97CMiImUq1By/u7/f1xPufkWJ4xERkYiFmePvM+mLiMjgFKZIm4iIVBAlfhGRlMnXbP3qfDu6+y2lD0dERKKW78Pd0cH3I4BPkyvNDLnaPauiDEpERKKTr1bPdwHM7PfAdHd/L9i+Afh/sUQnIiIlF2aOfxKws8f2TiATSTQJy2azrF69mpUrV8beFSnJc4vERZ3HykOYdfx3AU8Ed+46uaqad0YaVQK6uiLt2LEDiLcrUpLnFomLOo+VjzDr+BuBi4G3gLeBi939nyOOK3ZJdkVSRyZJA/2el4+wyzmrgHfd/VagzcwmRxhTIpLsiqSOTJIG+j0vH2GKtF0PXAv8XTA0HPh5lEGVklm4L/e+ux+5Txpw333VX+cldWSSSqLf8/IR5or/HHI9d7cBuPsrfLjUs4I0kvuHTU9VwXjEZ25spKpqz3OrI5NUGv2el48wiX+nuzu5D3Yxs/2jDSkp9eRa/I4ItmuD7eg/dKqvr6epqYkRI3Lnrq2tpampSR94SUXp+j2vra3FzPR7nqAwq3qWmdlPgY+a2WXAfOCOaMNKSj2wMHjcHO+Z1ZFJYpRUg/v6+nol+jIwYOJ39++b2V8C75K7i/c77v5g5JGJiEgkBkz8Znazu18LPNjHmIiIDDJhpnr+ktyqnp7O6GNMeil2xU8h+7kXd46KtbTAH/rrRez3Ff3QZXDLV53z68A3gEPNbH2Pp0YD/9n3XiIiUu7yXfEvBf4D+L/AdT3G33P3NyONSkREItPvck53f8fdNwG3Am+6e6u7twIfmNln4gpQRERKK8w6/tuAnn13twVjIiIyCIVJ/BbcwAWAu+8m3IfCIiJShsIk8I1mdgUfXuV/A9gYXUhSClpRlACtKJJBIswV/9eAzwIvA23AZ4CGKIMSEZHohLlz93Xg/BhikUqhK1+RshamLPPhZrbCzJ4Jtqea2T9EH5rEJwusBlaS66oZY8vJx2D1i7ByA2SuzG2LSLTCTPUsJFeL/wMAd1+P/gVQQbLkZu52BNutwXb0yT/7GDTcATs6gzO/kdtW8q9ss2bN6i4SJ8kIk/ir3P2JXmOdUQQjSVgAdPQa6wjGIz7zMujY2evMO3PjIhKdMIn/DTM7lA/r8Z8LbIk0KolRf23vYmg5+UZh4yJSGmGWc15OriPJkWb2MvA/xNGdRGIyidz0Tl/jxbH6sB+8Zvo8t1OL1W/Ku6d/pdCoRKTLgFf87r7R3T8H1ABHuvvJQekGqQjJtZxM9twi6RVmVU+1mf0YeARoNrNbzaw6+tAkHsm1nEz23CLpFWaq5xfAKuB/B9v1wD3A56IKSuKWXMvJZM8tkk5hEv9Yd//HHtv/ZGazI4pHRCQySfUaLjdhVvU8bGbnm9mQ4Os84N+jDkxERKIR5or/q8DVwF3B9lBgm5ldDbi7H9DXTma2CDgTeN3dpwRjY8lNE2WATcB57v7WvrwBkZ7CryjqMivYrzn0HlpRJINdmFU9o919iLsPD76GBGOj+0v6gcXA6b3GrgNWuPthwAr27OwlIiIxCLOq55Je20PN7PqB9nP3VUDvFo1nA0uCx0uA2eHCFBGRUgkzx3+amf3GzMab2THkqnmNLvJ8B7n7FoDg+8f6e6GZNZjZGjNb097eXuTpRESktzBlmb9iZl8GniZXxOUCd4+8jJa7N5Fb1E1dXZ1q8IqIlEiYqZ7DgCuB+8h9IHuhmfW+3TKs18xsfHDc8XxYiV1EpKKVU1XSMKt6fgV8093/YGZGboXPfwGfKuJ8y4F5wE3B9weKOIZIWdKKIhkswiT+E9z9Xcit3QR+YGbLB9rJzO4m95s9zszagOvJJfxlwQfGm4EvFRu4iPRSSAczdT1LtTCJfz8z+yEwwd1PN7Ojgb8AXsy3k7tf0M9TpxUYo4iIlFCYVT2Lgd8B44PtF4BvRRRPGWhGNWNEKk82m2X16tWsXLmSTCZDNhtfi9FyEybxj3P3ZcBuAHfvBHZFGpWISAlls1kaGhrYsSPXYrS1tZWGhobUJv8wiX9bUIa5qwPXicA7kUYlIlJCCxYsoKNjzxajHR0dLFgQfYvRchRmjv9qcqtxDjWzx8g1ZDk30qhEpGCFrSqaFezTHHqPwbyiaPPmvluJ9jde6cLcwLXOzGYCRwAGPO/uH0QemYhIiUyaNInW1r0bB06aVHyL0cEszFQP7t7p7s+6+zNK+lFqRh8sx60Z/cwrX2NjI1VVe953WlVVRWNjOtt8hkr8IiKDWX19PU1NTYwYkWvzWVtbS1NTE/X16WzzGWaOX0Rk0Kuvr2fhwlybz7R34Oo38ZvZ9Hw7uvu60ocjIiJRy3fF/4M8zzlwaoljEZFBygqo/FDMPq5qESXVb+J391PiDEQkfZqTDkBSKtQcv5lNAY4GRnaNufudUQUlSWhOOgARicmAiT9osziLXOL/DXAG8CigxC8l0px0ACKpEmY557nkKmq+6u4XA8cCIyKNSkREIhMm8f/Z3XcDnWZ2ALlK3odEG5aIiEQlzBz/GjP7KLAQWAu8DzwRZVAiImFpRVHhwtTq+Ubw8HYz+y1wgLuvjzYsERGJSphm6yu6Hrv7Jndf33NMREQGl3x37o4Eqsj1zB1DrjInwAHAJ2KITUREIpBvquer5FosfgLoWZ7hXeBfI4xJREQilO/O3VuBW83sr939X2KMSUREIhRmVc9PzewKYEaw3Qz8VHX5RSTtol5RBNGsKgqT+H8CDA++A1wI3AZcWvpwREQkavk+3B3m7p3Ap9392B5PPWRmT0UfmoiIRCHfcs6um7R2mdmhXYNmdgiwK9KoREQkMvmmerpmov4GeNjMNgbbGeDiKIMSEZHo5Ev8NWZ2dfD4p8BQYBu50szHAQ9HHJuIiEQgX+IfCoziwyt/gm2A0ZFFJCIxaE46AElQvsS/xd1vjC0SEZGKlQVWAzvIzZY3AvWJRZPvw90iVqiKiMieskADuaQP0BpsZxOLKF/iPy22KEREKtYCoKPXWEcwnox+E7+7vxlnICIilWlzgePRC9OBS0REijapwPHoKfGLiESqkVyF+56qgvFkKPGLiESqHmgCRgTbtcF2cqt6whRpExGRfVJPrm05lMM9FEr8IhKz5qQDSD1N9YiIpEwiV/xmtgl4j1yVz053r0siDhGRNEpyqucUd38jwfOLiKSSpnpERFImqcTvwO/NbK2ZNfT1AjNrMLM1Zramvb095vBEpDI1ow+Xk0v8J7n7dOAM4HIzm9H7Be7e5O517l5XU1MTf4QiIhUqkcTv7q8E318HfgmckEQcIiJpFHviN7P9zWx012Pg88AzccchIpJWSazqOQj4pZl1nX+pu/82gThERFIp9sTv7huBY+M+r4hIspqTDqCblnOKpE6WXPu/IcH35DpBSTJUq0ckVbraAHZ1hOpqAwhJVouUeOmKXyRVyq8NoMRPiV8kVcqvDaDET4lfJFXKrw2gxE+JXyRVyq8NoMRPiV8kVbraANYCRjm0AZT4aVWPSOrUo0SfbrriFxFJGSV+EZGUUeIXEUkZJX4RkZRR4hcRSRklfhGRlFHiFxFJGSV+EZGUUeIXEUkZJX4RkZRR4hcRSRklfhGRlFHiFxFJGSV+EZGUUeIXEUkZJX4RkZRR4hcRSRklfhGRlFHiFxFJGSV+EZGUUeIXEUkZJX4RkZRR4hcRSRklfhGRlFHiFxFJGSV+EZGUUeIXEUkZJX4RkZRR4hcRSRklfhGRlEkk8ZvZ6Wb2vJn9ycyuSyIGEZG0ij3xm9lQ4F+BM4CjgQvM7Oi44xARSaskrvhPAP7k7hvdfSfwC+DsBOIQEUmlYQmccwLwUo/tNuAzvV9kZg1AQ7D5vpk9X8A5xgFvFB1hgcziOtOA59b7jv/csdL77hbbe0/yffdx/kLfd21fg0kk/r5+jL7XgHsT0FTUCczWuHtdMfsOZnrf6ZLW9w3pfe+let9JTPW0AQf32J4IvJJAHCIiqZRE4v8v4DAzm2xmHwHOB5YnEIeISCrFPtXj7p1m9k3gd8BQYJG7P1vi0xQ1RVQB9L7TJa3vG9L73kvyvs19r+l1ERGpYLpzV0QkZZT4RURSpqISf1pLQZjZwWb2sJltMLNnzezKpGOKk5kNNbMnzezXSccSFzP7qJnda2bPBf/d/yLpmOJgZlcFv+PPmNndZjYy6ZiiYGaLzOx1M3umx9hYM3vQzF4Mvo8p9vgVk/hTXgqiE7jG3Y8CTgQuT9F7B7gS2JB0EDG7Ffitux8JHEsK3r+ZTQCuAOrcfQq5xSHnJxtVZBYDp/cauw5Y4e6HASuC7aJUTOInxaUg3H2Lu68LHr9HLglMSDaqeJjZROCLwB1JxxIXMzsAmAH8DMDdd7r724kGFZ9hwH5mNgyookLvAXL3VcCbvYbPBpYEj5cAs4s9fiUl/r5KQaQi+fVkZhngOODxhEOJy4+AvwV2JxxHnA4B2oF/C6a47jCz/ZMOKmru/jLwfWAzsAV4x91/n2xUsTrI3bdA7mIP+FixB6qkxB+qFEQlM7NRwH3At9z93aTjiZqZnQm87u5rk44lZsOA6cBt7n4csI19+Gf/YBHMaZ8NTAY+AexvZnOTjWpwqqTEn+pSEGY2nFzSz7r7/UnHE5OTgLPMbBO5qb1TzeznyYYUizagzd27/lV3L7k/BJXuc8D/uHu7u38A3A98NuGY4vSamY0HCL6/XuyBKinxp7YUhJkZufneDe5+S9LxxMXd/87dJ7p7htx/74fcveKvAN39VeAlMzsiGDoN+O8EQ4rLZuBEM6sKfudPIwUfavewHJgXPJ4HPFDsgZKozhmJmEpBlKuTgAuBp82sJRj7e3f/TXIhScT+GsgGFzkbgYsTjidy7v64md0LrCO3ku1JKrR0g5ndDcwCxplZG3A9cBOwzMwuIfdH8EtFH18lG0RE0qWSpnpERCQEJX4RkZRR4hcRSRklfhGRlFHiFxFJGSV+qShmlulZ0bDXc3eUQ/G6fDGKxKFi1vGLDMTdL006hlIws2Hu3pl0HDJ46YpfKtEwM1tiZuuDmvVVAGbWbGZ1weP3zazRzJ4ys9VmdlDvg5jZDUFd9GYz22hmVwTje1yxm9nfmNkNPc7xQzNbFdTJ/7SZ3R/UUP+nEDEeb2YrzWytmf2uxy36zWb2z2a2klwZapGiKfFLJToCaHL3qcC7wDf6eM3+wGp3PxZYBVzWz7GOBL5Aruz39UFNpIHsdPcZwO3kbqu/HJgC/B8zq+4vxuDY/wKc6+7HA4uAxh7H/ai7z3T3H4SIQaRfSvxSiV5y98eCxz8HTu7jNTuBro5da4FMP8f6d3ff4e5vkCuKtde/DPrQVSPqaeDZoF/CDnKlFboKCfYV4xHk/kA8GJTe+AdyxQa73BPi3CID0hy/VKLedUj6qkvygX9Yr2QX/f+/sKPH467XdbLnRVPv9n9d++zutf/uHufpK0Yj94eivzaK2/oZFymIrvilEk3q0YP2AuDREh//NeBjZlZtZiOAM4s4Rl8xPg/UdI2b2XAz+1RJIhbpQYlfKtEGYJ6ZrQfGAreV8uBBLfgbyXU5+zXwXBGH2SvGoGXoucDNZvYU0EK66s1LTFSdU0QkZXTFLyKSMkr8IiIpo8QvIpIySvwiIimjxC8ikjJK/CIiKaPELyKSMv8fG/ikA5gjZEUAAAAASUVORK5CYII=\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": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEGCAYAAAB7DNKzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA6K0lEQVR4nO3dd3iUVfbA8e8hhS4goCLFoLLSRFwiIoiCFRSl2cBV0V0QFRWs7G917W1tK6uiqFjWQgkguKK4JtKsBEQFEUGEJaJSRIqgpNzfH2ciMabO3DeZcj7PM0+SmXfue4eQOfOee++54pzDGGOMKU2N6u6AMcaY6GaBwhhjTJksUBhjjCmTBQpjjDFlskBhjDGmTMnV3QGfmjRp4tLS0qq7G8YYEzMWL1682TnXtKxj4ipQpKWlkZ2dXd3dMMaYmCEi68o7xlJPxhhjymSBwhhjTJksUBhjjClTXI1RGGOMD7m5ueTk5PDzzz9Xd1e8qVWrFi1atCAlJaXSz7VAYYwxxeTk5FC/fn3S0tIQkeruTsScc2zZsoWcnBxat25d6edb6skYY4r5+eefady4cVwECQARoXHjxmFfIVmgMMaYEsRLkCgUyeuxQGGC4xy8+CIsWVLdPTHGRMAChQnOhAlwwQWQng4jRsCmTdXdI2Pi1ty5c+nXrx8Azz33HKNGjfLWtgUKE4wPPoArr4RTT4UxY+DZZ6FNGxg3DvLyqrt3xphKsEBh/Pv+ezjrLGjRAl5+GR58ED79FLp2hauvhs6dISuruntpTFRbu3Yt7dq1Y/jw4XTo0IFTTjmF3bt306tXr19LFW3evJmqqG9n02ONX3l5cN55sGULvPce7Luv3t+uHcyZA7Nm6RXGiSfC4MEaRA46qHr7bExZRo+GpUv9ttm5M/zzn+UetmrVKl555RWeeuopzjnnHKZNm+a3HxVkVxTGr7FjYe5cePJJOPLI3z4mAv37w+efw513whtvQNu2cNttsHt3tXTXmGjWunVrOnfuDECXLl1Yu3ZttfTDriiMP1Om6BXCFVfAhReWflytWvC3v+kx118Pt96qYxgPPgiDBmlAMSZaVOCTf1Bq1qz56/dJSUns3r2b5ORkCgoKAKps5bhdURg/li+HSy6B7t3hoYcq9pyWLWHSJL0CadBAxzWefz7QbhoT69LS0li8eDEAGRkZVXJOCxQmctu26ZVAvXowdSqkplbu+ccfD4sX6zTau+6C/Pxg+mlMHLjuuusYP3483bt3Z/PmzVVyTnHOVcmJqkJ6erqzjYuqWEGBBon//EdnMh13XPhtTZ+uA9yTJsG55/rrozGVtGLFCtq1a1fd3fCupNclIoudc+llPc+uKExk7r0XZs6EBx6ILEgADBigg9v33KOruo0xUSHQQCEifURkpYisFpGxJTzeVkTeF5FfROS6Ive3FJF3RGSFiCwXkauD7KcJ01tvwU036XTYqz38imrUgBtvhE8+gTffjLw9Y4wXgQUKEUkCHgP6Au2BISLSvthhPwBXAQ8Uuz8PuNY51w7oBlxRwnNNdVq7FoYMgQ4d4Omn/c1UGjpUB7nvucdPe8aYiAV5RdEVWO2cW+Oc2wNMAvoXPcA5t9E5twjILXb/t865JaHvdwArgOYB9tVUxu7dOpaQnw8zZkDduv7aTk2F666DBQvg3Xf9tWuMCVuQgaI5sL7IzzmE8WYvImnAkcCHpTw+QkSyRSR7kxWdqxpjxmhF2BdfhEMP9d/+X/4CTZrYVYUxUSLIQFFSLqJSI5QiUg+YBox2zm0v6Rjn3ATnXLpzLr1p06ZhdNNUypYt8MwzuqguVKnSuzp1dMzj9de1RpQxploFGShygJZFfm4BbKjok0UkBQ0SLznnpnvumwnX9Olaz+nPfw72PFdcoesy7r032PMYE0PS0tLYvHkzP/74I48//niVnTfIQLEIaCMirUUkFTgPmFWRJ4puxfQMsMI5V8FlvqZKTJ4Mf/iDFjULUqNGcNller6vvgr2XMbEmLgJFM65PGAUMAcdjJ7inFsuIiNFZCSAiBwgIjnANcBNIpIjIvsAPYALgBNEZGnodlpQfTUV9P338M47uhiuKuoxjRkDKSlw//2/ufurr2DYMJg2zRZxm/g1YMAAunTpQocOHZgwYcJvHhs7dixfffUVnTt35vrrrw+8L4EWBXTOzQZmF7vviSLff4empIpbSMljHKY6ZWToSuyqWjXdrJlGhGefhVtugWbNWLFCK5R/+62WhWrdWoczLrkE6tevmm6ZxFJdVcYnTpzIvvvuy+7duznqqKMYPHjwr4/de++9LFu2jKW+O1YKW5ltKm7yZF030aFD1Z3z+ut1TOThh/nkEy0L5ZyOcU+bBgceqH/ILVroof/7X9V1zZggjRs3jiOOOIJu3bqxfv16Vq1aVW19sTLjpmJycmDhQrj99qo97yGHwLnn8tGjH3HqhALq71ODzEzdVfXww7XM1EcfwcMP772dfTZccw0cdVTVdtXEp+qoMj537lzefvtt3n//ferUqUOvXr2qrKR4SeyKwlTM1Kn6Ub4aivUtOOV2Tto9i31rbGPBAg0SRXXtCq+8AmvW6LDG7Nl6X8+euh7QxjFMrNm2bRuNGjWiTp06fPHFF3zwwQe/ebx+/frs2LGjyvpjgcJUzOTJumNd8XfpgL39Npx6+aE0r7uN+RzHQU13lXpsq1Y67p2To58Cv/lGrzg6dgRbi2liSZ8+fcjLy6NTp07cfPPNdOvW7TePN27cmB49etCxY8cqGczGORc3ty5dujgTgDVrnAPn7ruvSk/72mvO1azpXKdOzn3/2ofah0ceqfDz8/KcmzzZueRk5y6+OMCOmrjz+eefV3cXAlHS6wKyXTnvrXZFYco3ZYp+PeecKjvl1KkwcCB06qQzcvfrF8olPfAA7NlToTaSkrTL116rE6cWLgy408bEKQsUpnyTJ8PRR0NaWpWc7oUXtHJ5t26aetp339ADf/0rrF8PL79cqfZuvlnTUpddBrm55R9vjPktCxSmbF9+CR9/rO/cVeDJJ+Gii6B3b92SYp99ijzYpw8ccQTcd5+u56igunVh3DhYtgz+9S//fTbxycXZ5lmRvB4LFKZskyfrKuyzzw78VP/8J4wcCaefrjur/q56uQiMHQtffAGvvlqpts88U2sY3nKLDnYbU5ZatWqxZcuWuAkWzjm2bNlCrVq1wnq+7Zltytaxo+Z+5s8P9DTZ2bruYdAgneqamlrKgXl5ul1qo0a6gKISpUS+/lrXCp5+uo6BGFOa3NxccnJyqnXtgm+1atWiRYsWpKSk/Ob+iuyZbQvuTOmWLYPly+GxxwI/1YMPaprp2WfLCBIAyclwww1w6aU6Ot2zZ4XP0bq17tz6t79pWqtPn8j7beJTSkoKrVu3ru5uRA1LPZnSTZ6s+1gXqTEThP/9Tz/hDx9ebEyiNEOHQq1a2r9KuvZaOOwwGDUK4ujDojGBskBhSuacvhH37g377x/oqQoHmK+6qoJPqFdP80cZGZVedl2zJjz+uFagta0ujKkYCxSmZEuXwqpVgZfs2L4dJkzQsfJWrSrxxLPP1rLnYSyOOOEEvSi59159icaYslmgMCWbNEnHAwYNCvQ0EydqsLjmmko+8fTToXbtsEelH3hAry6uvFIvnowxpbNAYX7POV2NffLJ0LhxYKfJy4NHHtHx6EpXeq1XD047Laz0E+hWF3feCXPmaBPGmNJZoDC/99FHsHZt4GmnGTP0NJW+mih0zjlhp59AV2ofeaTuZ1GFhTiNiTkWKMzvTZqkc1QHDAj0NA89BIceCmecEWYDhemnwlpUlZScDOPH6255t94aZh+MSQAWKMxvFRRo3r9vX2jQILDTvP8+fPCBfppPSgqzkbp1Nf0UwebZRx8NI0ZoCuzTT8PshzFxzgKF+a1339WNHAJOOz34oC6uHjYswoYK008LFoTdxN13a18uu6xSJaSMSRgWKMxvTZqk6Zyw80HlW7NGxydGjiyhnlNlRTj7CbRCyf33w3vvwXPPRdgfY+KQBQqzV16eTgHq109nFQVk3DhNN40a5aGxunU1WESQfgKtWNuzJ9x4I+wqfRM9YxJSoIFCRPqIyEoRWS0iY0t4vK2IvC8iv4jIdZV5rgnAvHmwcWOgaacff4RnntGq5Qce6KnRwsV3EaSfRHS67ObNelFljNkrsEAhIknAY0BfoD0wRETaFzvsB+Aq4IEwnmt8mzRp7/qEgDz1FOzcGcGU2JJ4SD+BXlF06KA1EG0RnjF7BXlF0RVY7Zxb45zbA0wC+hc9wDm30Tm3CCi+71i5zzWe5ebC9OnQv7++6QZ0inHjtIRG584eG/aUfhKBK66AJUt0KYkxRgUZKJoD64v8nBO6z+tzRWSEiGSLSPamTZvC6qhB9xz94YdA005Tp+qmQV6vJgp5mP0E8Kc/Qf36VVJZ3ZiYEWSgKGlHmYpe0Ff4uc65Cc65dOdcetOmTSvcOVPM5MnQsCGcckogzTunU2LbttUlGt6ddpqX9FP9+nDhhfrPsXmzp74ZE+OCDBQ5QMsiP7cANlTBc01lOadFj/r21Up5AViwQFM6Y8boFhfeeUo/AVx+OezZo4PuxphgA8UioI2ItBaRVOA8YFYVPNdU1ooV8N13cOKJgZ3iwQehSRO44ILATuEt/dS+vW7DMX58xDHHmLgQWKBwzuUBo4A5wApginNuuYiMFJGRACJygIjkANcAN4lIjojsU9pzg+prwsvK0q8nnBBI819+Ca+9pp/UAxonV4XppzBrPxV1+eWwbh288YaHfhkT48TF0TzA9PR0l52dXd3diD2DBsHHH8PXXwfS/BVXaBpn3brAN8vTq4p582DDhgiKSOkMrbQ06NTJgoWJbyKy2DmXXtYxtjI70eXnw9y5gaWdtmyBZ5/V2USBBwnQxXcbN8L8+RE1k5ICl14Kb74Jq1d76psxMcoCRaJbuhS2bg0s7fTkk7B7tw5iV4nTToM6dSKe/QQwfLiWIn/iCQ/9MiaGWaBIdIXjE717e286Lw8efRROPVVXPFcJj7OfmjXTrNzEiVb/ySQ2CxSJLisL2rXTd0XP5s/XTYGGD/fedNnOOcdL+gl0fGXrVqv/ZBKbBYpEtmePTiUNKO00bZpmgQJZYFcWj+knq/9kjAWKxLZoEfz0UyAD2fn5Wjrq9NP1PbtK1anjLf1k9Z+MsUCR2DIz9Z3w+OO9N/3ee7qGb/Bg701XjMf0k9V/MonOAkUiy8qCI4/ULd48mzYNatUKtGJ52Tymn4rWf7K6kyYRWaBIVLt2wfvvBzI+UVCggeLUU/VNtlrUqaM79XlIP8He+k8TJ3romzExxgJFonrvPX3nCyBQfPSRlhM/6yzvTVeOp8V3oPWfevWy+k8mMVmgSFRZWbqarGdP701nZOjK5jPO8N505RSmnzzUfgId1F63DmbP9tKcMTHDAkWiysyEo4/WrU89ck6zPSefDA0aeG268grTT9On6+q/CPXvr/t8P/64h74ZE0MsUCSibdsgOzuQtNOSJbB2bRSknQoVpp/efTfiplJSYMQIq/9kEo8FikQ0f76OOAcQKDIyNKPVP1p2OO/TRzdjevVVL82NGKGvb/x4L80ZExMsUCSirCydu9qtm9dmndNA0bt3IDNuw1OvnubBXn3Vy9LqwvpPzz5r9Z9M4rBAkYiysqBHDw0WHn32maZkoibtVGjAAM2Hffqpl+Yuv9zqP5nEYoEi0WzcqG+YAZTtyMjQ/bAHDPDedGTOOENXoHtKPx13nNZ/skFtkygsUCSauXP1awDjE9Om6Zvofvt5bzoy++2nV1AzZnhpTkTHKhYv1qsoY+KdBYpEk5Wly6W7dPHa7Oef6y3q0k6FBg6ETz7xtt3r0KE6C+r55700Z0xUs0CRaLKytAhgcrLXZqdN00/aAwd6bdafwmlYM2d6aa5JE12i8eKLur+2MfHMAkUiWb8eVq0KLO3UvbsuSItKhxwChx/ubZwC4KKL4PvvYc4cb00aE5UsUCSSwm1PPQeKVas0qxO1aadCAwboRk2bN3tp7rTToGlTeO45L80ZE7UCDRQi0kdEVorIahEZW8LjIiLjQo9/KiJ/LPLYGBFZLiLLROQVEfE7lzMRZWVpzuTww702O22afh00yGuz/g0cqAsNX3vNS3MpKXD++TBrFmzZ4qVJY6JSYIFCRJKAx4C+QHtgiIi0L3ZYX6BN6DYCGB96bnPgKiDdOdcRSALOC6qvCcE5DRS9e+scVo+mTYOuXaFVK6/N+te5s3bSY/pp2DAdo7A1FSaeBXlF0RVY7Zxb45zbA0wCihd26A+84NQHQEMRaRZ6LBmoLSLJQB1gQ4B9jX+rV2vtb89pp7VrtWxU1KedQEfbBwyAt97SLWA9OOIIjT+WfjLxLMhA0RxYX+TnnNB95R7jnPsGeAD4H/AtsM0591ZJJxGRESKSLSLZm2z7sdIFND5RmHaqti1PK2vAAPj5Zw0Wnlx0kQbLZcu8NWlMVAkyUEgJ9xUvtlPiMSLSCL3aaA0cCNQVkT+VdBLn3ATnXLpzLr1p06YRdTiuZWZC8+bQpo3XZqdN091UDz7Ya7PB6dlTC1F5TD8NHaqzjW1NhYlXQQaKHKBlkZ9b8Pv0UWnHnAR87Zzb5JzLBaYD3QPsa3wrKIB33tGyHVJSbA5PTo7uphoTaadCycla0uO117wtgNhvPzj9dPj3v71se2FM1AkyUCwC2ohIaxFJRQejZxU7ZhZwYWj2Uzc0xfQtmnLqJiJ1RESAE4EVAfY1vi1bplNCPaedpk/XrzGTdio0YIBW9VuwwFuTw4bpmgqPGS1jokZggcI5lweMAuagb/JTnHPLRWSkiIwMHTYbWAOsBp4CLg8990MgA1gCfBbq54Sg+hr3Cscnevf22uy0adCxIxx2mNdmg3fKKVC7ttf002mn6cxjG9Q28Uichxr90SI9Pd1lZ2dXdzeiz5lnwooVujLOk+++01XYt9yit5gzYIBux7dunbd03NVXwxNPwLffRtF+HMaUQ0QWO+fSyzrGVmbHu7w8mDfPe9ppxgxdmhFzaadCAwdqSZMlS7w1OWwY7NljaypM/LFAEe8WL4bt273vPzFtmqacOnTw2mzV6ddPFx56TD917gydOln6ycQfCxTxrnB8olcvb01u2qTbWgwe7HUSVdVq3Fg3z/AYKET0qmLRIi25bky8sEAR77KytLaTx92EZs6E/PwYmxZbkgEDdEbY6tXemjz/fFtTYeKPBYp49ssvsHBhIKuxDz5YUy0xzfMeFaDxuG9fW1Nh4osFinj2wQdarsJjoNi2TRd5DxoUw2mnQmlpuqzc0xaphYYN05lP//2v12aNqTYWKOJZZqYO2B53nLcm33xTFzT3L17eMVYNGADvvaer5Tzp10+HQGxQ28QLCxTxLCtL98Zu2NBbkzNn6mY9xxzjrcnqNWCAzvP1tEcFQGqq1n969VVdAG5MrLNAEa927oQPP/Q6LTY3F2bP1k/MSUnemq1ehx8OrVt7nf0Ee9dUTJ7stVljqoUFing1f76OpnoMFPPm6RhF3KSdQAdaBg6Et9+GHTu8NXvkkRqDLP1k4oEFiniVlaU5kO7+iu7OnKklkk4+2VuT0WHAAJ0h9uab3poU0X0qPvxQq6cYE8ssUMSrzEwNEnXqeGnOOQ0UJ5/srcno0b27VvTznH46/3xN0dmaChPrygwUIvJWke//Gnx3jBdbtsDSpV7TTkuXammkuEo7FUpK0sKJr7+uAwueHHDA3jUV+fnemjWmypV3RVF0y7izg+yI8eidd/Srx/UTM2dqOqVfP29NRpcBA3QAZt48r80OGwYbNtiaChPbygsU8VODPJFkZkK9enDUUd6anDlTMzQeK4FEl5NOgrp1vaef+vXTkuM2qG1iWXmB4mARmSUirxX5/tdbVXTQhCErC44/HlJSvDS3bp2mnuIy7VSodm3o00cDRUGBt2Zr1tSxihkzdJNBY2JReYGiP/Ag8ECR74veTLTJyYEvv/SedoI4DxSg5XA3bND6WB4NH65DH//+t9dmjakyyWU96Jz7NWErIk1D920KulMmAoVlxT0OZM+cCW3bwh/+4K3J6HTmmTql65VXvJY9OfxwOPpoeOopGD06DmpkmYRT3qwnEZFbRGQz8AXwpYhsEpG/V033TKVlZupUz8MP99Lc1q06vhv3VxOgYxT9+8PUqboM3aPhw3U9xXvveW3WmCpRXuppNHAscJRzrrFzrhFwNNBDRMYE3TlTSc5poOjdW4sBejB7tk7tTIhAATBkiE4v9jxN6dxzdX7BU095bdaYKlHeu8mFwBDn3NeFdzjn1gB/Cj1mosmqVfDNN97TTvvvr6mThHDqqdCokaafPKpXTwsFTpkCP/7otWljAldeoEhxzv1urkZonMLPlBrjT2amfvU0kP3LL/DGG3DGGd4uUKJfaqoOar/6Kuza5bXpv/wFdu+Gl1/22qwxgSvvz7+sZarlLmEVkT4islJEVovI2BIeFxEZF3r8UxH5Y5HHGopIhoh8ISIrRCReClsHJzMTWraEQw/10tw772gR2oRJOxUaMkRf+Ouve202PR2OOELTT85WKJkYUl6gOEJEtovIjtBte+HPQJmjpSKSBDwG9AXaA0NEpH2xw/oCbUK3EcD4Io89ArzpnGsLHAFYabWyFBToO/uJJ3qbVjNzpk4C8pjJig3HHw/NmnlPP4nooPbSpbBkidemjQlUmYHCOZfknNvHOVc/dNunyM/lpZ66Aqudc2ucc3uASehajKL6Ay849QHQUESaicg+wHHAM6F+7HHO/RjOC0wYn3wCP/zgLe1UUACzZmnKvnZtL03GjqQkHX1+/XXvAwrnn6//njaobWJJedNja4nIaBF5VERGiEiZ6y6KaQ6sL/JzTui+ihxzMLAJeFZEPhaRp0Wkbil9HCEi2SKSvWlTAi/x8Lx+YvFiXXuWcGmnQkOG6Co5z/tpN2wIZ5+t4xQ7d3pt2pjAlJd6eh5IBz4DTqNyq7FLyn8Uz8yWdkwy8EdgvHPuSOAn4HdjHADOuQnOuXTnXHrTpk1LOiQxZGbqqrgDD/TS3MyZOoB9+ulemos9Rx0FhxziPf0Emn7asUNnQBkTC8oLFO2dc39yzj0JnAX0rETbOUDLIj+3ADZU8JgcIMc592Ho/gw0cJiS7NmjO9p5Lttx7LG6di8hicB552kA/v57r0336AHt2ln6ycSO8gLFr8tTnXN5lWx7EdBGRFqLSCpwHlC8kOAs4MLQ7KduwDbn3LfOue+A9SJyWOi4E4HPK3n+xLFoEfz0k7e005o1sGxZAqedCg0dqoM1nj/6i+hU2Q8+0H9nY6JdRWc9Fc506lRkFtT2sp4YCiyjgDnojKUpzrnlIjJSREaGDpsNrAFWA08Blxdp4krgJRH5FOgM3F3ZF5cwMjP13adXLy/NJUwRwPK0bw+dOgWSfrrwQl2yYVcVJhaIi6MJ3enp6S47O7u6u1H1evXSpPfixd6a27zZPu0CcO+98Ne/wtdfQ1qa16bPOw/eeksnDdSq5bVpYypMRBY759LLOiZR1tvGr1274P33vaWdtmyBBQt0wzeDvpsDTJrkvenhw7Xo4rRp3ps2xisLFLFu4UIdzPY0kP3665qWT/i0U6G0NDjmmEDqbvTuDa1bw9NPe2/aGK8sUMS6rCzdya5nZSaklW7mTJ1h26WLl+biw9Ch8NlnsHy512Zr1NBB7blztZ6jMdHKAkWsy8yEbt10L4UI/fwzzJmj+/ckTBHAijj7bP0HCWBQ++KLdSG4XVWYaGZvB7Fs61YtGuQp7ZSZqbNsLe1UzP776xjQK694r+bXrBn06wfPPacZRGOikQWKWDZvng4oeBrInjkT6tfX3LkpZsgQXWCyaJH3pocPh40b4bXXvDdtjBcWKGJZZqaWd/Wwq1BBgb5R9ekDNWt66Fu8GThQFz4EMKjdpw+0aGFrKkz0skARy7KydBA7NTXipj76CL77ztJOpWrYUAtfTZ6se8N6lJQEl1yiayrWrvXatDFeWKCIVd9+C59/7jXtlJQEp53mpbn4NGSIRtN587w3fckl+nXiRO9NGxMxCxSxqrCsuIeBbOcgI0NXZDdqFHFz8atfP938OoDZTwcdpHt/TJwIeZWtqmZMwCxQxKqsLH1X79w54qays2H1av3AbMpQu7YuWc/I0A3FPRs+HL75RqcoGxNNLFDEIud0ILt3b80XReill3SYY/BgD32Ld0OG6K53Abybn3EGHHAA/Otf3ps2JiIWKGLR11/DunVe0k55eVrG6PTTdbzWlOPkk6Fx40DSTykpcOWVGoOWLvXevDFhs0ARizIz9auHgeysLN2X5/zzI24qMaSk6ErtWbN0daJnl12mwyD/+If3po0JmwWKWJSZqQWZDjus/GPL8fLLsM8+CbzlaTiGDNGqvbOK78MVuUaNYORInYW7Zo335o0JiwWKWOOcXgaccIJuVhSB3bth+nQdm7D9ECrh2GN1hdxLLwXS/OjROvT0YGV2qDcmQBYoYs2yZbBpk5e002uv6X5HlnaqpBo14E9/gjfeCGSFXPPmcMEFOlV240bvzRtTaRYoYs3bb+tXDwPZL7+sRek87aCaWC6/XK/oHn00kOavv15n4NoMKBMNLFDEmunT4fDDoVWriJr54QeYPVs3cPMwwzbxtGypg9pPP62XZZ61batLNh57LJDmjakUCxSxZMMGePddfYOKUEYG5OZa2ikio0fDtm1aIzwAN96oleStWKCpbhYoYsn06TqYfdZZETf18ss6aeqPf/TQr0R19NG6adQjj2j53QCaP/54eOgh26vCVK9AA4WI9BGRlSKyWkTGlvC4iMi40OOfisgfiz2eJCIfi8h/guxnzMjIgA4doF27iJpZv17r2g0dGvHEKTNmDHz1lW42HoCxY7WsRwDVzY2psMAChYgkAY8BfYH2wBARaV/ssL5Am9BtBDC+2ONXAyuC6mNM+e47mD/fy9VE4aLioUMjbsoMGqTjFf/8ZyDNn3oqHHEE3HdfIBctxlRIkFcUXYHVzrk1zrk9wCSg+G4H/YEXnPoAaCgizQBEpAVwOmC7CQPMmKFpJw/jEy+/rGmNQw/10K9El5wMo0bp2pZPPvHevAjccAN88YXtgGeqT5CBojmwvsjPOaH7KnrMP4EbgDI/R4nICBHJFpHsTZs2RdThqDZ1qk6FaV/8oqxyli/X9zMbxPZo+HDdafCRRwJp/pxzIC1Nryo8b9ltTIUEGShKyn4X/29e4jEi0g/Y6JxbXN5JnHMTnHPpzrn0pk2bhtPP6Ldxow4qnH12xIMKL72k02HPOcdT34zW3Rg2TP9xA1ghl5wM110H778PCxd6b96YcgUZKHKAlkV+bgFsqOAxPYAzRWQtmrI6QUReDK6rUW7GDE1QRzg+4ZymnU46Cfbf31PfjLrqKp2a9MQTgTR/8cXQpAnce28gzRtTpiADxSKgjYi0FpFU4DygeBW1WcCFodlP3YBtzrlvnXN/dc61cM6lhZ6X5Zz7U4B9jW4ZGfCHP+hCuwi8955WJ7e0UwAOO0z3kX388UA2NapTR2PR7Nnw2WfemzemTIEFCudcHjAKmIPOXJrinFsuIiNFZGTosNnAGmA18BRweVD9iVmbN8M77+jVhIe0U+EmbSYAY8ZozfZJkwJp/ooroG5dK0Fuqp64OBodS09Pd9nZ2dXdDb+efloHSz/+OKJtT3Nzta7TSScF9j5mnNOrvpQUWLIkkEUq11wD48bp0o2DDvLevElAIrLYOZde1jG2MjvaTZ0Khxyik+kj8NZbsGWLpZ0CJaJlPZYu1ckHARgzRk9jJchNVbJAEc22bNFNijzNdtp3X13AZQJ0/vk66hzQAryWLbXC+dNPa1bSmKpggSKazZwJ+fkRz3bauVObOvtsSE311DdTstq1dYu6WbM0PxSAG27QTacCqnBuzO9YoIhmGRm60irCyn0zZ+rOnZZ2qiKXXaaLHwLaTKJdOzjzTG0+gG27jfkdCxTRautW3aTIU9qpZUvo0cNT30zZDjwQzj0XnnlGy5AH4MYbdU+Rxx4LpHljfsMCRbSaNUunKkWYdtq4UQeyhw7VHTxNFRk9WnN+EycG0nz37tCvH9xxh1aXNSZI9tYRraZO1V3sjjoq4mby8y3tVOW6dIGePXUua35+IKd45BHIy9Mps8YEyQJFNNq2TS8DPC2y69gx4kXdJhyjR8PatXp1GICDD4a//hWmTNm7lboxQbBAEY0K004RlhRfs0YLydnVRDXp318nIzz8cGCnuOEGXWYzalQglUOMASxQRKeMDGjRArp2jaiZl17Sr0OGeOiTqbykJC3QtGABLC63EHJYatXS2U8rV+qWqcYEwQJFtNm+HebM0bRTBKPPu3frjJiTT7ZSD9XqkkugXj24//7ATtG3LwwcqAPb69YFdhqTwCxQRJv//EdzCBHOdnrqKa1Pd9NNnvplwtOggY5VTJ4cWFkP0IXgIlriwxjfLFBEm4wMnYd/zDFhN/HLL1ph9Ljj9Gaq2f/9H7RuDZdfrntWBKBVK7j5Zt265I03AjmFSWAWKKLJzp36Vz54cERpp+ee07n1djURJWrX1mmyn38e6MD2NdfothhXXgk//xzYaUwCskARTV5/Xf/CI5jtlJuru6AdfbSWFDdRol8/3Qjk9tsDG0hITdVxqa++0v21jfHFAkU0mToVDjhAl92G6aWXdOr+zTcHsh2CicQjj+jX0aMDO8WJJ2r1kHvuCawmoUlAFiiixU8/6T6XgwbptMow5OfD3XfDkUfqrpwmyrRqBbfcAq++qpMWAvLgg7p30lVX6V5KxkTKAkW0mD1b57RGkHaaMgVWrdKxCbuaiFKjR0P79jqQsGtXIKdo3hxuu03/SwW0KNwkGAsU0SIjA/bbT+sDhaGgAO66Czp0sD2xo1pqKjz+uOYH7747sNNceaWWbrn66sDikUkgFiiiwa5dmoqIIO00YwYsXw5/+5tViY16xx8PF1ygc5hXrgzkFCkpGo/WrdMPEMZEwt5SosGMGRoswlxk5xzceSe0aQPnnOO5byYY998Pdevq2oqABhJ69tR4dP/98OWXgZzCJAgLFNUtN1cTyh07Qq9eYTXx+uuwdKmu6wrzgsRUtf3319RTVhZMmhTYae6/H+rU0aKBNrBtwhVooBCRPiKyUkRWi8jYEh4XERkXevxTEflj6P6WIvKOiKwQkeUicnWQ/axWzz+vI9B33RXWu3zh1URamlWJjTkjRkB6uq6UC2gnvP331/8f//2vlnUxJhyBBQoRSQIeA/oC7YEhItK+2GF9gTah2whgfOj+POBa51w7oBtwRQnPjX0//6xXE926wRlnhNXE22/Dhx/C2LGalzYxJCkJxo/Xolx//3tgp7nsMjj1VLjiCsjMDOw0Jo4FeUXRFVjtnFvjnNsDTAL6FzumP/CCUx8ADUWkmXPuW+fcEgDn3A5gBdA8wL5Wj8cfh5wcTUGEOZ/1jju0IvmwYX67ZqpIerqOUzz6KCxZEsgpkpK0JuFhh+kw2BdfBHIaE8eCDBTNgfVFfs7h92/25R4jImnAkcCHJZ1EREaISLaIZG/atCnSPled7ds1QJx8MvTuHVYT8+frVgc33AA1a3run6k6d94JTZroR/+CgkBO0aCBTqxLTdVqIps3B3IaE6eCDBQlfUQuPpxW5jEiUg+YBox2zm0v6STOuQnOuXTnXHrTpk3D7myVe/hh2LIlorn0d9yhOei//MVjv0zVa9hQl1N/9BE8/XRgp0lLg5kz9SJ24EDbEc9UXJCBIgdoWeTnFsCGih4jIilokHjJOTc9wH5Wvc2b9Y1h8GBNPYThgw90fOK667Q4qYlx55+vs97GjoWNGwM7TbduOn9i4UIYPtxmQpmKCTJQLALaiEhrEUkFzgOKFxSYBVwYmv3UDdjmnPtWRAR4BljhnIu/DR7vuUdrO91xR9hN3HknNG4MI0d67JepPiI6ZrVjB1x8sU6bDsi55+p/vX//2xbjmYoJLFA45/KAUcAcdDB6inNuuYiMFJHCt7fZwBpgNfAUcHno/h7ABcAJIrI0dIuPMnc5OVoL+sILoV27sJpYskTXTowZo7tsmjjRrp0Oas+erVuoBjReAbqC/4ILtMrw5MmBncbECXFxdO2Znp7usrOzq7sbZRsxQncWWrUq7M2sBw/WaY7r1ukgpYkzd92llR2vumrvHqcB+OUX3bNk0SKYO1fTUibxiMhi51yZOXBbmV2VvvwSJk7UfFGYQWLZMpg+Xd9DLEjEqf/7P71cHDcuovRkeWrW1OoxzZtD//5ap9CYkligqEq33AK1aul1fxh27YKLLtIAcXX8rlU3IvDAA/rLvuUWTUcFpEkTTWPu2aPTZgNaIG5inAWKqrJ0qdb0GT1a57RWknOatfr4Y3jxRR3INnGsRg2dKtu/v9YMf/nlwE7Vtq1WuV+5Uge68/ICO5WJURYoqsrf/gaNGul81jA8/LBuc3r77frJzySA5GT9cNGrl15dzJ4d2KlOPFGricyZo1ercTR0aTywQFEVFi7UP/Ibb9TFVZX09ttw/fU6iB1m1srEqlq1dJXcEUfof4CFCwM71V/+op9jHn9cS8LYhkemkM16CppzcNxxutP96tVa87kS1qyBo46CAw+E99+36bAJa9Mm3WDiu+9g3jwNHAEoKNDx89tug06ddOLEwQcHcioTJWzWUzR48039FHjzzZUOEjt36ramzsGrr1qQSGhNm8Jbb0H9+loKdvXqQE5To4aOn//nPzr9ukuXQDNeJkZYoAhSQYFOdTz4YPjznyv1VOd0ge7y5ZqmPuSQgPpoYkerVrqxRH6+FpP85pvATnXaabB4sdaHOv10DR75+YGdzkQ5CxRBysjQ2U633aZlOyvh3nv16ffdB6ecEkz3TAxq2xbeeEPrhZ16qqakAnLwwfDuuzqOXjiJ4ocfAjudiWIWKIKSm6vppo4dYciQSj319dd10HrIELj22oD6Z2JXejrMmqXpp8MP11VzAalTB559Fp54QqsBdOmiU7RNYrFAEYTdu3WGypdfagHASmxxunIlDB0KnTvrNPqAqjeYWNe7t25teOCBMGiQLoAI6OpCBC69VPc+ycuD7t01eJjEYYHCt23boE8fHQ189NFKLXrYvl0Hr1NT9UNiJce+TaI54ggNFnfeqbMd2rfXCn8BzWQ8+mgdt+jeXWsWXnqp7WmRKCxQ+LRxo37Se+89XR13xRUVfmpBgVbzXLUKpk4NuxSUSTQpKZqnXLIEWreG887Tq9nvvgvkdPvtp4vyxo6FCRM0aGRm2gK9eGeBwpe1a+HYY3VD4tdeq/S4xG23adr54Yd1Ia4xldKhg35Aue8+nc/avr1uOBHAO3hysmZUp0/XeHTSSdCjh57WAkZ8skDhw+efa5DYtEmXUffpU+Gn7tqlHwhvv11Xw44aFVw3TZxLTtYN1Jcu1dlRF14IZ54Z2DTagQN1Hen48bBhg06jTU/XtGmAW2mYamCBIlIffqgrZvPzdcVs9+4Vfurrr+sHwbvv1r/p8eNt8Np40Latjjw/9JDmhTp00PL2Abx716qlVfNXrYJnntEhukGDdPhk8mRbexEvLFBE4r//1WpqDRvqhPNOnSr0tP/9Tz+N9eun+13Pnav7GNeqFWhvTSJJStI9LT79VN+1//xnHcP4+9/1MsCzlBQd4P7iC61unJ+vwyUdOsALL1hF2lhngSJcU6fqtfbBB2uJjgoUxMnNhX/8Q3e8fOstXVS3dCkcf3zw3TUJ6tBD4Z139ON927Y6Q+rQQ/U/3bPPap0Yj5KT4fzzdYOtqVP1w89FF8Ef/gD/+pd+SDIxyDkXN7cuXbq4KvHkk86JONejh3M//FChp8yb51z79s6Bc/37O7d2bbBdNKZE69c7d/fdzrVpo/8Z69Z17qKLnHvnHefy872frqDAuVmznOvaVU8H+ndw7bXOZWY698sv3k9pKgnIduW8t1r12MrYuVPzvrfcAn37ao2NchY7bNyoJcJfeEGnvP7rX3DGGcF10ZgKcU7LET/7rF5t7NihqamLLtIBs9atvZ9u5UqdGfXGGzB/vu6qV6+eZm/79tVbq1ZeT2sqoCLVYy1QlGfHDl08l5Gh/8N379apr889V2b9ps2b9e/vppvgp5+0zv9NN9kiOhOFdu3Sua7PPQdZWfqu3qKF1utIT9evXbroIgpPdu7UjFhh4Fi3Tu/v0EEDxvHH6wzfgw6qVGEDEwYLFOHatk3XQmRkaJnwX36BZs10IdNZZ+n+EkWmJzmn/9EXLNDbwoWwYoU+1rs3PPaYjksYE/XWrdP5rdnZelu5cu9jrVr9Png0aRLxKZ3TQfA33tDAMX++jueBjnEcdpgOr7Rrp7e2bXXMwyZ/+FHtgUJE+gCPAEnA0865e4s9LqHHTwN2AcOcc0sq8tySRBQofvxRdxLLyNCR5j17oHlzDQxnnaXTXmvo2H9BgQ7WFQaFBQv2TlVv0EAXHx17rMaT7t1tyquJYdu3axXAwsCRnf3bvTCaN4eWLbXmVPPm+rX4rUGDSv0R7Nypk7VWrNh7++IL+PrrvQv6atTQ7Fi7dloKvWlTveAp/Fr4fcOGv/7ZmlJUa6AQkSTgS+BkIAdYBAxxzn1e5JjTgCvRQHE08Ihz7uiKPLckYQWKn37CnXU2u99+l6159fjhgA5sPa4/W/94Ilub/oEffqzB1q2wdauWWN60CRYt0osO0L+Nnj01MPTsqZfOdqls4tqPP2rJkOxs3TBlwwa9ffPN3j+MourU0YCx33668VK9eqV/Lfy+Th2dc5ua+uttd34qX+bUYcXXtfhiTSorVqew4sskcr6BrVtLDkTJyXrRUxg4GjSAunV/e6tT5/f31a2799QpKXtvpf2clKSxMBY/FFZ3oDgGuNU5d2ro578COOfuKXLMk8Bc59wroZ9XAr2AtPKeW5JwAoVzsE/KLnbmlz54UKOGfjJp1Aj23Vcru/bsqbeDDorN/xzGBOKnn+Dbb/cGj8IAsmGDzuzYuVNvO3bs/ephkUUuyWyusT8baxzAJtmPjbI/G2V/NtGEjezHRteUTQVN2E59fnJ1fr3tcn4HDWuQTw0KSJKC33wt+r3gENCv4kI/u1LvJ3SffuW3P4eOa1JrJ+9uOzysPlckUCSH1XLFNAfWF/k5B71qKO+Y5hV8LgAiMgIYAdAqjCkTInDdzXWoWVODQKNGewNC4ff77GOXr8ZUSN26uk7j0EMrdrxzmuYtGjh27tQB9txcfazwa/HvC2/5+aTk59OsoIBm+fmaG87Ph4I9kL8eCtbpz/n5hTN0f70VFMDu3GR+yk3lp9xUduWl/vr9noJk9hQkk1tQg9yCZHILktiTn0SuSyK38GtBMnvykyhAyHc1KHA1Ql8p9rPoMQU1fn37d07K/Z7Qz0AojPCb+wvva1A32BWNQQaKkj5nF798Ke2YijxX73RuAjAB9IqiMh0sdMst4TzLGBMxEahZU28eBsYrqwZQN3QzpQsyUOQALYv83ALYUMFjUivwXGOMMVUgyITKIqCNiLQWkVTgPGBWsWNmAReK6gZsc859W8HnGmOMqQKBXVE45/JEZBQwB53iOtE5t1xERoYefwKYjc54Wo1Oj724rOcG1VdjjDGlswV3xhiTwCoy68nm8hhjjCmTBQpjjDFlskBhjDGmTBYojDHGlCmuBrNFZBOwrshdTYDN1dSdIMXr64L4fW32umJPvL624q/rIOdc07KeEFeBojgRyS5vND8Wxevrgvh9bfa6Yk+8vrZwXpelnowxxpTJAoUxxpgyxXugmFDdHQhIvL4uiN/XZq8r9sTra6v064rrMQpjjDGRi/crCmOMMRGyQGGMMaZMcRkoRKSPiKwUkdUiMra6++OTiKwVkc9EZKmIxGwFRBGZKCIbRWRZkfv2FZH/isiq0NdG1dnHcJXy2m4VkW9Cv7elof3iY4qItBSRd0RkhYgsF5GrQ/fH9O+tjNcV078zEaklIh+JyCeh13Vb6P5K/77iboxCRJKAL4GT0Y2RFgFDnHOfV2vHPBGRtUC6cy6mFwKJyHHATuAF51zH0H3/AH5wzt0bCvCNnHM3Vmc/w1HKa7sV2Omce6A6+xYJEWkGNHPOLRGR+sBiYAAwjBj+vZXxus4hhn9nIiJAXefcThFJARYCVwODqOTvKx6vKLoCq51za5xze4BJQP9q7pMpxjk3H/ih2N39gedD3z+P/rHGnFJeW8xzzn3rnFsS+n4HsALd3z6mf29lvK6Y5tTO0I8poZsjjN9XPAaK5sD6Ij/nEAe/9CIc8JaILBaREdXdGc/2D+1wSOjrftXcH99GicinodRUTKVnihORNOBI4EPi6PdW7HVBjP/ORCRJRJYCG4H/OufC+n3FY6CQEu6Lp/xaD+fcH4G+wBWhNIeJfuOBQ4DOwLfAg9XamwiISD1gGjDaObe9uvvjSwmvK+Z/Z865fOdcZ6AF0FVEOobTTjwGihygZZGfWwAbqqkv3jnnNoS+bgRmoKm2ePF9KF9cmDfeWM398cY5933oj7YAeIoY/b2Fct3TgJecc9NDd8f8762k1xUvvzMA59yPwFygD2H8vuIxUCwC2ohIaxFJBc4DZlVzn7wQkbqhwTZEpC5wCrCs7GfFlFnARaHvLwJmVmNfvCr8wwwZSAz+3kKDo88AK5xzDxV5KKZ/b6W9rlj/nYlIUxFpGPq+NnAS8AVh/L7ibtYTQGga2z+BJGCic+6u6u2RHyJyMHoVAZAMvByrr01EXgF6oSWPvwduAV4FpgCtgP8BZzvnYm5QuJTX1gtNYThgLXBpYZ44VojIscAC4DOgIHT3/6H5/Jj9vZXxuoYQw78zEemEDlYnoRcFU5xzt4tIYyr5+4rLQGGMMcafeEw9GWOM8cgChTHGmDJZoDDGGFMmCxTGGGPKZIHCGGNMmSxQGGOMKZMFCpNwRCStaAnwaCEic0UkvRLHF5bBvj30cy8R2VakLPbfQ/fXDv28R0SaBNV/E7+Sq7sDxsQDEUl2zuVVw6kfLlYGe4Fzrl/RA5xzu4HOoRL1xlSaXVGYuCYi14jIstBtdJGHkkXk+VBl0AwRqRM6/l4R+Tx0/wOh+5qKyDQRWRS69Qjdf6uITBCRt4AXRORDEelQ5NxzRaRLqPTKxNBzPxaR/qHHa4vIpNC5JgO1S3kNa0XkNhFZIrppVdtg/rWMKZkFChO3RKQLcDFwNNANGC4iR4YePgyY4JzrBGwHLheRfdGaPh1C998ZOvYR9JP7UcBg4Okip+kC9HfODUX3PjkndO5mwIHOucXA34Cs0PN7A/eHanVdBuwKneuuUFul2RyqGjweuK6M444R3dHsjaJBy5hIWKAw8exYYIZz7qfQBi7TgZ6hx9Y7594Nff9i6NjtwM/A0yIyCNgVevwk4NFQXf9ZwD6FxRmBWaHUDmj9nLND358DTA19fwowNvT8uUAttM7OcaFz45z7FPi0jNdSWKl1MZBWyjFLgIOcc0cA/0JrZxkTMRujMPGspL1JChUvcuacc3ki0hU4Ea06PAo4Af1AdUyRgKCNiwD8VKSBb0RkS6gY27nApUX6Mdg5t7KE51e02Novoa/5lPJ3W3RvCOfcbBF5XESaxPq2uab62RWFiWfzgQEiUieU6hmIVgkFaCUix4S+HwIsDG1c08A5NxsYjVYOBXgLDRoAiEjh/SWZBNwQauez0H1zgCtD5awpkv6aD5wfuq8j0Cm8l/lrvw4oco6u6N/3lkjaNAYsUJg4FtoH+TngI7QU9tPOuY9DD68ALhKRT4F90dx/feA/ofvmAWNCx14FpIcGnT8HRpZx2gz0amRKkfvuQPcr/jQ0LfeO0P3jgXqh890Q6mckzgKWicgnwDjgPGfloY0HVmbcmBglIrcCO4tNjy3r+LVAuqWiTGXZFYUxsWsnMKJwwV1pChfcoVc1BWUda0xJ7IrCGGNMmeyKwhhjTJksUBhjjCmTBQpjjDFlskBhjDGmTP8PghVNvc1dFt4AAAAASUVORK5CYII=\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[5]')\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": 5, "metadata": {}, "outputs": [], "source": [ "# Define the threshold values to consider\n", "n_thresholds = np.arange(0, 30, 1)\n", "\n", "# ==> Compute the power and 1-pvalue. Recall that they can be computed as\n", "# power = scipy.stats.poisson.sf(n, s_alt + b)\n", "# 1 - pvalue = scipy.stats.poisson.cdf(n, s_null + b)\n", "\n", "# ==> Plot the ROC curve (x = power, y = 1-pvalue)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You should see that 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": 6, "metadata": {}, "outputs": [], "source": [ "# ==> Define two functions that compute lambda(s) (= -2 log L) and t(s)\n", "\n", "def lambda_s(s_hypo, data) :\n", " pass # Your code here\n", "\n", "def t_s(data) :\n", " pass # Your code here" ] }, { "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": 7, "metadata": {}, "outputs": [], "source": [ "ndata = 1000\n", "\n", "# ==> Generate ndata sets of binned data (use np.random.poisson(s+b) to generate one Poisson count with parameter s+b)\n", "# ==> Compute t(s_null) and t(s_alt) for each dataset\n", "# ==> histogram the results (using plt.hist(values)) for each case\n", "\n", "# Note that this exercise can be challenging for those unfamiliar with the python tools, feel free to copy/paste from the solution and move on" ] }, { "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": 8, "metadata": {}, "outputs": [], "source": [ "t_vals = np.arange(-10, 10, 0.1)\n", "\n", "# ==> Compute the Type-I and Type-II errors as integrals of the histograms \n", "# Note: to compute the integral from the left to a value t_0, one can use np.searchsorted(np.sort(t_values), t_0)/ndata\n", "# where t_values is the list of computed values for t\n", "# ==> Plot the ROC curve for the test based on t(s) alongside the one for bin 5 alone.\n", "\n", "# Note that this exercise can be challenging for those unfamiliar with the python tools, feel free to copy/paste from the solution and move on" ] }, { "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": 9, "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": 10, "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, but it could well be due to a random fluctuation of the background. How do we tell ?" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# ==> Compute the signal s4, the corresponding uncertainty sigma4 and the significance z4 under Gaussian assumptions (z4 = s4/sigma4)" ] }, { "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": 11, "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, np.sqrt(b4)))\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, np.sqrt(b4)), alpha=0.5, color='g');\n", "\n", "# ==> Compute and print the integral above n=108" ] }, { "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": 12, "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": 12, "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": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "significance = 2.241552241553363\n" ] } ], "source": [ "z4 = (n4 - b4)/np.sqrt(b4)\n", "print('significance = ', z4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and one can convert it into a p-value using the tail integral function:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "# ==> Use the scipy.stats.norm.sf function to compute the p-value from z4, and check that this gives the same value as the tail integral 3 steps above." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "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": 16, "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", "\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": 17, "metadata": {}, "outputs": [], "source": [ "t0 = z4**2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " 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": [ "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": "markdown", "metadata": {}, "source": [ "We can now compute the best-fit $\\hat{s}$ and from it the value of $t_0$, and use this to compute the significance of the signal" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "from scipy.optimize import minimize_scalar\n", "\n", "# ==> Compute the best-fit s. You can reuse the lambda_s function that you defined in the beginning of the notebook, and minimize it with respect to s\n", "# using minimize_scalar [recall the syntax : minimize_scalar(func, (x_min, x_max)).x ]\n", "# A slight technical issue is that lambda_s is defined as a function of both s and data, but we need to pass a function\n", "# of s only to the minimizer. To solve this, one can build a small function on-the-fly using the 'lambda' operator of python\n", "# (no relation to the likelihood ratio!)\n", "# e.g. if one has f(x,y) and some value y0, then lambda x: f(x,y0) is the function x -> f(x,y0), taking only x as argument.\n", "# and one can simply pass this lambda expression to minimize_scalar \n", "\n", "# ==> Compute t0 from the best-fit value, and from this the significance and the p-value\n", "# ==> Plot the best-fit s+b distribution together with the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You should find that 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": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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 }