{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# ChiSquare Test:\n", "This Python macro illustrates the use of ChiSquare as a goodness-of-fit measure,\n", "how the ChiSquare distribution comes about, how to use the ChiSquare value (along with\n", "number of degrees of freedom, Ndof) as a test, and that it actually works!\n", "\n", "The program generates a certain number of datasets, each consisting of 9 points along\n", "a line. These are then fitted, and the result and the Chi2 of the fit is recorded along\n", "with the probability of the fit.\n", "\n", "## References:\n", "- Barlow: Chapter 6\n", "- Cowan: Chapter 2.7, Chapter 7\n", "- Bevington: Chapter 6\n", "\n", "## Author(s), contact(s), and dates:\n", "- Author: Troels C. Petersen (NBI)\n", "- Email: petersen@nbi.dk\n", "- Date: 12th of November 2020" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np # Matlab like syntax for linear algebra and functions\n", "import matplotlib.pyplot as plt # Plots and figures like you know them from Matlab\n", "import seaborn as sns # Make the plots nicer to look at\n", "from iminuit import Minuit # The actual fitting tool, better than scipy's\n", "import sys # Module to see files and folders in directories\n", "from scipy import stats" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "sys.path.append('../../../External_Functions')\n", "from ExternalFunctions import Chi2Regression\n", "from ExternalFunctions import nice_string_output, add_text_to_ax # useful functions to print fit results on figure" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Initial Question/Task:\n", "Make sure you've read the relevant references and that you understand not only what the ChiSquare is, but also that it follows the ChiSquare distribution, and that the probability of obtaining such a ChiSquare or worse (assuming that the hypothesis/PDF is the correct one!) can be calculated from it. Try to go to the \"External Functions\" and find the Chi2Regression function, and then read through the code to see, that it does as you would expect (note: It is essentially the last line, in which the Chi2 calculation is done).\n", "\n", "Executive Summary: The ChiSquare method is used both for getting a good and robust fit, and for testing the quality/probability of this fit." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Program settings:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "save_plots = False" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "lines_to_next_cell": 2 }, "outputs": [], "source": [ "r = np.random # Random generator\n", "r.seed(1) # Set a random seed (but a fixed one - more on that later.)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "Nexp = 1000\n", "Npoints = 9" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Parameters used in this problem (constant, linear coef., quadratic coef., and uncertainty in y) for generating a line (parabola) with N points and given uncertainty on points:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "alpha0 = 3.6\n", "alpha1 = 0.3\n", "alpha2 = -0.04 # Initially, we don't include a quadratic term!\n", "sigmay = 1.0 # The uncertainty on each point is 1.0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Generating and fitting data:\n", "In the following, we generate data points following a simple line. The linear fit (and only this) can be done analytically, as discussed in Barlow chapter 6.2 and outlined here: http://www.nbi.dk/~petersen/Teaching/Stat2020/StraightLineFit.pdf .\n", "The numerical fit of the line (and any other function) is done iteratively by Minuit. The code is slightly shorter, but a lot slower, as the code will typically test many (50-500) possible combination of fit parameters, before it finds the best values for the fitting parameters. However, with fast computers, we don't care too much!\n", "\n", "The whole thing is contained in a loop, allowing us to repeat the generation and fitting, so that we can see the result on more than just a case-by-case. For this reason, we save the result of the fit (in pre-defined arrays)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Fit: a0= 5.206+-1.272 a1=-0.552+-0.584 a2=0.041+-0.057 p=0.0613\n", "------------------------------------------------------------------\n", "| FCN = 8.981 | Ncalls=58 (58 total) |\n", "| EDM = 7.3E-05 (Goal: 1E-05) | up = 1.0 |\n", "------------------------------------------------------------------\n", "| Valid Min. | Valid Param. | Above EDM | Reached call limit |\n", "------------------------------------------------------------------\n", "| True | True | False | False |\n", "------------------------------------------------------------------\n", "| Hesse failed | Has cov. | Accurate | Pos. def. | Forced |\n", "------------------------------------------------------------------\n", "| False | True | True | True | False |\n", "------------------------------------------------------------------\n", " Fit: a0= 3.594+-1.272 a1=0.264+-0.584 a2=-0.043+-0.057 p=0.1747\n", " Fit: a0= 2.992+-1.272 a1=0.795+-0.584 a2=-0.091+-0.057 p=0.6943\n", " Fit: a0= 3.195+-1.272 a1=0.287+-0.584 a2=-0.039+-0.057 p=0.9418\n", " Fit: a0= 3.198+-1.272 a1=0.531+-0.584 a2=-0.059+-0.057 p=0.2097\n", " Fit: a0= 2.981+-1.272 a1=0.907+-0.584 a2=-0.113+-0.057 p=0.6499\n", " Fit: a0= 3.628+-1.272 a1=0.499+-0.584 a2=-0.057+-0.057 p=0.8081\n", " Fit: a0= 2.396+-1.272 a1=1.291+-0.584 a2=-0.153+-0.057 p=0.2637\n", " Fit: a0= 4.225+-1.272 a1=-0.027+-0.584 a2=-0.006+-0.057 p=0.4202\n", " Fit: a0= 3.982+-1.272 a1=0.072+-0.584 a2=-0.010+-0.057 p=0.9715\n" ] } ], "source": [ "# Arrays for storing fit results:\n", "array_alpha0 = np.zeros(Nexp)\n", "array_alpha1 = np.zeros(Nexp)\n", "array_alpha2 = np.zeros(Nexp)\n", "array_Chi2 = np.zeros(Nexp)\n", "array_Prob = np.zeros(Nexp)\n", "\n", "# Loop, repeating the data generation and fit:\n", "for iexp in range(Nexp) : \n", "\n", " # Generating data by filling values into (x,y) and associated uncertainties (here chosen to be 0 for x):\n", " x = np.arange(Npoints)+1\n", " ex = np.zeros_like(x)\n", " y = alpha0 + alpha1*x + r.normal(0, sigmay, Npoints) + alpha2*x**2\n", " # Note how we include uncertainty in y - by simply adding a Guassian number to the \"theoretical value\".\n", " ey = sigmay*np.ones_like(x)\n", "\n", " # ------------------------------------------------------------------ #\n", " # Numerical fit:\n", " # ------------------------------------------------------------------ #\n", " # Define a fit function:\n", " def fit_function(x, alpha0, alpha1, alpha2):\n", " return alpha0 + alpha1*x + alpha2*x**2\n", "\n", " # Now we define a ChiSquare to be minimised (using ExternalFunctions):\n", " chi2_object = Chi2Regression(fit_function, x, y, ey)\n", " \n", " # Alternatively, you can define Chi2 calculation:\n", " def chi2_owncalc(alpha0, alpha1, alpha2) :\n", " y_fit = fit_function(x, alpha0, alpha1, alpha2)\n", " chi2 = np.sum(((y - y_fit) / ey)**2)\n", " return chi2\n", "\n", " fitoutput = int(iexp == 1)\n", " \n", " # Here we let Minuit know, what to minimise, how, and with what starting parameters: \n", " # minuit = Minuit(chi2_object, pedantic=False, alpha0=3.0, alpha1=0.0, print_level=fitoutput) # External Functions\n", " minuit = Minuit(chi2_owncalc, pedantic=False, alpha0=3.0, alpha1=0.0, alpha2=-0.05, print_level=fitoutput) # Own alternative\n", "\n", " # Perform the actual fit (and save the parameters):\n", " minuit.migrad(); \n", " #minuit_output = [minuit.fmin, minuit.params] # Save the output parameters in case needed\n", " minuit_output = [minuit.get_fmin(), minuit.get_param_states()]\n", " \n", " # Here we extract the fitting parameters and their errors\n", " alpha0_fit = minuit.values['alpha0']\n", " alpha1_fit = minuit.values['alpha1']\n", " alpha2_fit = minuit.values['alpha2']\n", " sigma_alpha0_fit = minuit.errors['alpha0']\n", " sigma_alpha1_fit = minuit.errors['alpha1']\n", " sigma_alpha2_fit = minuit.errors['alpha2']\n", " \n", " Nvar = 3 # Number of variables (alpha0 and alpha1)\n", " Ndof_fit = Npoints - Nvar # Number of degrees of freedom = Number of data points - Number of variables\n", " \n", " # In Minuit, you can just ask the fit function for the Chi2:\n", " Chi2_fit = minuit.fval # The chi2 value\n", " Prob_fit = stats.chi2.sf(Chi2_fit, Ndof_fit) # The chi2 probability given N degrees of freedom\n", " \n", " # Fill the arrays with fit results (to produce plots of these at the end):\n", " array_alpha0[iexp] = alpha0_fit\n", " array_alpha1[iexp] = alpha1_fit\n", " array_alpha2[iexp] = alpha2_fit\n", " array_Chi2[iexp] = Chi2_fit\n", " array_Prob[iexp] = Prob_fit\n", " \n", " # Let us see what the fit gives for the first couple of data sets:\n", " if (iexp < 10) :\n", " print(f\" Fit: a0={alpha0_fit:6.3f}+-{sigma_alpha0_fit:5.3f} a1={alpha1_fit:5.3f}+-{sigma_alpha1_fit:5.3f} a2={alpha2_fit:5.3f}+-{sigma_alpha2_fit:5.3f} p={Prob_fit:6.4f}\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Fit the data and plot the result:\n", "Below we plot the latest fit (i.e. the last one from above), so that we can actually see what is going on (and potentially wrong!)." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "fig, ax = plt.subplots(figsize=(10,6))\n", "ax.errorbar(x, y, ey, fmt='ro', ecolor='k', elinewidth=1, capsize=2, capthick=1)\n", "ax.plot(x, fit_function(x, *minuit.args), '-r')\n", "plt.close()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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3LlzStrp06cRGRkJT09PODk5oX379tiwYYPe9T169NDb/EGSJCxduvS+7606J0+ehJ2dHc6cOWPScqtri5ooKirC+PHj4ebmhsaNG2PkyJG4deuWkr527doKbaW7EUll6WXbiRMREZH51HTXhQkANkqS9CuAjgDm116Vqubi4gJvb2+4uLhY4u0ByDvH/fbbb5g/fz6OHz+O1atX47///S8mTJhg1nrk5OSgX79+CAsLw7FjxzBo0CAMHjzYoF3/du7cifHjxyM2NhaHDx+Gk5MToqKilN357OzsMHz4cOzatQsnTpzAyy+/jJEjR+L777/XK2fkyJHIzMxUjsp23DOlt956C4MGDULr1q1NVua92qImZs+ejS1btmDr1q3YuXMn9u7di1deeUUvj5OTk15bffvtt0ra008/rZeWmZmJxx57DEOHDjXZfRIREVENVLY48v0exm4UsmPHDhEeHi7UarVwcnISPXv2FMnJyRXyVbbZh86Cz2LOnDmiQ4cOQqVSiT59+ojs7OwK1y5atEh4enoKDw8Pvc0aiouLxejRo0VAQICwt7cXfn5+Ys6cOaKkpKTKei9cuFCo1Wqj7tlY77//vnB3dxfFxcXKuVatWonY2NgalzFw4EAxePBg5XVGRoYAIL7//vsqr+ncubOYPn268joiIkKMGzfOwNpXLiIi4p6brVy8eFE0atRIJCUlmeQ9yxjTFrqKi4uFm5ub+OCDD5RzGzZsECqVSuTl5QkhDN/449KlS8LW1rbSjXLqMnDDC6Ow3YiITA9VbBRSO/v2GikrKwsxMTHYv38/jh07hhYtWqBfv34oKioyqJylS5di3rx5OHToELKzsyuM7qampuLs2bNITEzE2LFjMXHiRFy8eBEAUFJSAltbW6xZswanTp3CRx99hEWLFmHFihVVvl92dnaNt7I2laSkJISFhelt5xweHg5DNmhJSkpCeHi48trHxweBgYGVliGEwPfff48TJ07obbsNAJs3b4a7uzvatWuHBQsWoLi42Ig7qpmFCxciPDxcb2qCKRjSFpVJTU1Fbm6uXhndu3dXfnEoU1BQAH9/f/j5+eHpp5/GhQsXqixzzZo18Pf3R0REhBF3RERERMayqgB5xIgRGD16NNq2bYvg4GDMnTsXly5d0gswamLUqFHo168fOnTogDfffBOffvoprl+/rqTb2Nhg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uxERmZ4kSUeFEBXmllrVKhZEd7ty5QqGDh2KsWPHWroqRERE1EBYzUN6RJXx8vJCXFycpatBREREDUi9HEHm9AoiIiIiMla9DJCJiIiIiIxVpwLkvXv3QpIkXL169Z554+LiEBoaaoZaEREREVF9YnUB8rlz5zBkyBCo1Wq4urrikUcewbFjxwwuZ9KkSfjxxx8rnI+Pj8dDDz2Exo0bw8PDA0899VSlO5lRw/Xee+9BkiS8++67Bl2XmJiIAQMGwMvLC5IkYe/evXrpd+7cwYwZM6DRaODg4IAuXbpg3759enkuXbqEfv36wcnJCS1atMBbb711v7dDREREBrKqADkzMxNhYWH4888/sX37dhw+fBh///vfkZmZaXBZLi4uaNasWYXz+/fvx3PPPYcDBw5g165dyM3NRZ8+fVBcXGyKW6A67vfff8fatWvh7e1t8LU3b95EaGgo3n777UrT3377bcTHx2PFihX4/fffERERgSeffBKXL19W8gwbNgw3b97EwYMHsXDhQsyePRsbN240+n6IiIjICJUtjny/h7EbhUyYMEE0btxYb3MFXXv27BEAxObNm0VwcLCyGUNRUZHugs/KcfeGIJU5evSoACCSk5ONqjPVH4WFhaJTp05i3759QqPRiHfeeceocnJycird4Obhhx8WkydPVl6X7R5Z9j6//PKLACCOHz+u5HnuuefEI488YlQ9rBW44YVR2G5ERKaHKjYKsaoR5J07d6Jv375wdnauNl9CQgK2bt2KDRs2YMOGDdi6dateemZmJiZOnFij98zOzgYAqNVq4ypN9cbMmTMRFhaG8PDwWin/zp07UKlUymsbGxvY29vjl19+AQAkJSWhSZMmaN++vZKne/fuOHbsGDeIICIiMiOrCpAvXLgAX1/fe+abPXs2QkNDMWDAADz88MNISkrSS/f29oaLi8s9yykpKcH8+fMxbNgwaDQao+tNdd+PP/6ITz/9FP/+979r7T0iIiLwn//8B6mpqSgpKcGyZctw5coV5OTkAABycnLQrFkz5OfnIyAgAFOmTIG7uzsKCgqQl5dXa/UiIioTFxcHSZKUg+vQU0NldRuFSJJ0zzxBQUHK325ubsjNzTXqvSZMmIBr167hq6++Mup6qh/++usvxMTEID4+vkZfrIwVFxeH1NRUBAUFwcbGBhEREejTpw+KiooAyNOdJEmCra0t/Pz84OnpyZFjIjKruLg4JUjmf3+oIbOqALlly5bIyMi4Zz47O/1qG/Mhnjp1Knbu3InExEROr2jgUlJScP78eURFRSnnCgsLMX36dGzatAlHjx41yfuo1Wps27YN+fn5uHnzJry9vfHII48gODgYAODp6YmrV69CpVIpq1usX78ejo6OtRq4ExERkT6rmmLRu3dv7NixA/n5+bX6PnFxcdi0aRN2794NHx+fWn0vsn4PPvggTp48ieTkZOVo0aIFXnvttQrz24uLi5Genl6jtbir4uTkBG9vb5w/fx4///wzevToAQDQarW4ceMGfv31VyXvvn370Llz5xr9skJERESmYVUB8rRp09CoUSNERUXh4MGDOHXqFD788EN8/fXXBpWTlZWFvLw8FBcXIysrC1lZWbhz5w4A4N///jc++OAD/Oc//4GDg4OSXlBQUBu3RHWASqVCSEiI3tGoUSN4eHggICBAL29GRgYCAgIwadKkCuXk5eUhOTkZv//+OwB5Te/k5GRlCtCVK1ewbt06pKSk4Oeff8ZTTz2F1q1b4+mnnwYAdOrUCV27dsW4ceNw/PhxfPLJJ1i3bh3Gjh1byy1AREREuqwqQPbx8cH+/fvh6uqKvn37okuXLli/fj2aN29uUDnNmzfHwoULcfr0aTRv3hzNmzfHwYMHAQDLly/H9evXER4erqQ1b94cmzdvro1bogbkyJEj6NSpEyIjIwEAzz//PDp16oRt27YpeT744AOEhoaib9++eOCBB/DDDz/orWyxZcsWuLq6omvXrnj11Vfx+uuvIzo62uz3QkRE1JBJtTEJX6vViiNHjpi83JrggwVE1o2fUeOw3cic2N+ooZAk6agQQnv3easaQSYiIiIisjQGyEREREREOhggExERERHpYIBMRERERKSDATIRERERkY46HyD36NED48ePr3D+l19+QceOHdGoUSNuskBERERENVbnA+SqTJs2DX5+fkhJSUFmZqalq0NUI4WFhZgyZQp8fX3h4OCABx98EPv377d0tYiIiBoUO0tXoLakpKTghRdeQMuWLS1dFaIae/7557Fv3z4sW7YM7dq1Q0ZGBtzd3S1dLSIiogbFqkaQR4wYgf79+2PatGlQq9Xw8/PDli1b9PJ8/PHH8PPzg7OzM8aOHYvS0tIK5UiShJSUFEyZMgWSJHGKBdUJ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mlphGbbi4mKkp6fj6tWreucfeOABNG7cGKmpqcq5svnFPj4+lb7nzZs3cfnyZfj7+5voLoiIiMgUrG6Kxf1o164dAGD8+PFYunQpbt68iTlz5mDkyJGwt7dX8pWWluLll1/GjBkz8N133+HIkSNYu3athWpN1mDs2LHo378/4uPj0bVrV0ybNg0hISGIjIzUy5eRkYGAgADExMTonbezs8OIESOwaNEidO7cGRqNBpMnT0a7du2Ufjl79mx07doVISEhuHr1KmbPng0fHx/069dPKScrKwtZWVnKqHJycjIAoE2bNnp9mIiIiGpPvQqQy7i6uqJbt26wt7fHwIED8c477+ilh4SEKKsNNG7cWNncgRquPn36YMmSJXjjjTdw5coVdO3aFdu2bTPoV4y33noLRUVFeOaZZ1BSUoKwsDB88cUXShk3btzAc889h2vXrqFp06bo3r07fvjhBzjpbASxfPlyvP7668rrTp06AQDS0tI40kxERGQmkiEPItWUVqsVNV0ey9QkSTLo4SoiY7GvGYftZhy2G5kT+xs1FJIkHRVCaO8+b3VzkImIiIiILIkBMhERERGRDgbIREREREQ6GCATEREREelggExEREREpIMBMhERERGRDgbIREREREQ6GCATEREREelggExEREREpIMBMhERERGRDgbIREREREQ6GCATkXls3Aj4+6MEAPz95ddERERWyM7SFSCiBmDjRmDMGCA/X/5Wfv68/BoAoqMtWTMiIqIKOIJMRLUvNhbIz9c/l58vnyciIrIyDJCJqPZduGDYeSIiIgtigExEta9lS8POExERWRADZCKqffPmAU5O+uecnOTzREREVqZGAbIkSemSJP0mSVKyJElHartSRFTPREcDK1cCGg1KAUCjkV/zAT0iIrJChqxiESmEuFprNSGi+i06GoiOhq0kQaSnW7o2REREVeIUCyIiIiIiHTUNkAWA7yRJOipJ0pjKMkiSNEaSpCOSJB3JyckxXQ2JiIiIiMyopgHyI0KIzgD6AhgnSVL3uzMIIVYKIbRCCK2Hh4dJK0lEREREZC41CpCFEJf/988rAD4H8HBtVoqIiIiIyFLuGSBLkuQsSZJr2d8AngDwe21XjIiIiIjIEmqyioUXgM8lSSrL/x8hxM5arRURERERkYXcM0AWQqQC6GCGuhARERERWRyXeSMiIiIi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\n", "text/plain": [ "
" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d = {'alpha0': [alpha0_fit, sigma_alpha0_fit],\n", " 'alpha1': [alpha1_fit, sigma_alpha1_fit],\n", " 'alpha2': [alpha2_fit, sigma_alpha2_fit],\n", " 'Chi2': Chi2_fit,\n", " 'ndf': Ndof_fit,\n", " 'Prob': Prob_fit,\n", " }\n", "\n", "text = nice_string_output(d, extra_spacing=2, decimals=3)\n", "add_text_to_ax(0.02, 0.95, text, ax, fontsize=14)\n", "fig.tight_layout()\n", "fig" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "if (save_plots) :\n", " fig.savefig(\"FitToLine.pdf\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Many experiments\n", "In case we have more than one \"experiment\" (i.e. fit), we would like to see how the fit results and the Chi2 values distribute themselves:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "lines_to_next_cell": 2 }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+gAAALICAYAAADseNpmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzde3wV1b3///cHAYkECMilMRCjXAt4oaaAcqzghVqwoBwVRUUQG/rrVw/H6pHgQ0XrqSf2QalYPSo1orUqKiJq0VMVvCJVwQoYEUENQqSC1gCxATH5/P7YmzSBZGcH9mV29uv5eOSRvWfNzPrMys5e85lZM2PuLgAAAAAAkFwtkh0AAAAAAAAgQQcAAAAAIBBI0AEAAAAACAASdAAAAAAAAoAEHQAAAACAACBBBwAAAAAgAEjQgTgzsxIzG57sOJLJzM4xs01mVmFmg5q47E1m9qdYzwsAwL7os+mzgWQjQQcOgpmVmtnp+0ybZGZv7H3v7gPc/ZVG1pNnZm5mLeMUarLNknSFu2e6+9+SHUxDzGyCmW00s2/MbJGZdUp2TACA2KDPjlrg+2wzyzazZ8zs8/DfIi/ZMQGxQoIOpIEA7EQcKakkyTFEZGYDJN0r6RJJ3ST9U9L/JjUoAEDaoc+OSrWk/5P078kOBIg1EnQgzmofsTezwWa2wsx2mNkXZjY7PNtr4d/l4SFlJ5pZCzO7PnxGd6uZ/dHMOtRa78Rw2VdmdsM+9dxkZgvM7E9mtkPSpHDdy82s3My2mNmdZta61vrczH5hZuvNbKeZ3WJmPcPL7DCzx2vPv8821hurmR1qZhWSDpG0ysw+bmD5OeHhdDvMbKWZndzAfHvPWhSEj5pvMbOr95mtdbj+neGhivm1li80s4/DZR+Y2Tm1lrtI0rPu/pq7V0i6QdI4M2tXXywAgOaHPjs1+mx3/8Ld/1fSO/X+IYEURoIOJNYcSXPcvb2knpIeD0//Ufh3VnhI2XJJk8I/IyQdLSlT0p2SZGb9FTq7e5GkbEkdJOXsU9dYSQskZUl6WFKVpKskdZZ0oqTTJP1in2XOlHSCpKGSrpU0N1xHD0kDJV3YwHbVG6u773b3zPA8x7l7zwaWf0fS8ZI6SXpE0hNm1qaBeRWup7ekkZIKre6QxTGS5oe3+xmF2yzsY0knK9ReN0v6k5llh8sGSFq1d0Z3/1jSt5L6RIgDANB80WfXLwh9NtBskaADB29R+Ah3uZmVK/Kw6D2SeplZZ3evcPe/Rpj3Ikmz3f2T8BndGZIusNDQt3MVOtv7hrt/K+lGSb7P8svdfZG7V7t7pbuvdPe/uvt37l6q0HDuU/ZZ5jZ33+HuJZLel/RCuP7tkp6X1NDNYiLF2ih3/5O7fxWO7beSDpXUN8IiN7v7N+6+RtI81d0JecPdn3P3KkkPSTquVj1PuPvn4TZ5TNJ6SYPDxZmStu9Tz3ZJnEEHgOaDPrt59NlAs0WCDhy8s909a++P9j/CXdsUhc7Ifmhm75jZWRHmPULSxlrvN0pqqdD10UdI2rS3wN3/KemrfZbfVPuNmfUxsz+b2d/DQ+huVejIfG1f1HpdWc/7TNUvUqyNMrOrzWytmW0P7zB1qCe22mpv28Zw/Xv9vdbrf0pqs3enIzzE8L1aO2YDa9VTIan9PvW0l7Qzmm0AAKQE+uzm0WcDzRYJOpBA7r7e3S+U1FXSbZIWmFlb7X8kXZI+V+hGLXvlSvpOoQ54i6TuewvMLEPS4ftWt8/7uyV9KKl3eLjedZLswLcm6lgjCl+7Nl3S+ZI6hneYtjcSW4996vo8inqOlPQHSVdIOjxcz/u16ilRrSP3Zna0QmcFPmps3QCA5oc+e38B6rOBZosEHUggM7vYzLq4e7Wk8vDkKknbFLoj6dG1Zn9U0lVmdpSZZSp09Pwxd/9OoevUfmpmJ4VvAnOzGu+02knaIanCzPpJ+v9itmGRY21MO4V2DLZJamlmN2r/M9n7usHMDrPQndcnS3osinr27lRtkyQzm6zQ0fi9HlaoTU8O74D9StJCd+cMOgCkIfrsBuMKQp+t8HXvh4bfHtrIdfBAyiBBBxLrTEkl4bukzpF0gbvvCg93+7WkZeGhXEMl3a/Q9VivSfpU0i5JV0pS+HqzKxW6scoWhYZhb5W0O0Ld10iaEJ73D4qug4xWg7FG4S8KXSv3kUJD33Zpn6F+9XhV0gZJSyTNcvcXGqvE3T+Q9FtJyxU6S3CMpGW1yksk/VyhRH2rQjshkYY+AgCaN/rs/QWizw6rVOjyNCk02qAyuk0Ags3c6xulAyCVhI+Alys0FO7TZMcTL2aWp9DORKsoj/QDABAo9NkAIuEMOpCizOyn4SFjbSXNkrRGUmlyowIAAPuizwYQLRJ0IHWNVehGK58r9HzRC5whMQAABBF9NoCoMMQdAAAAAIAA4Aw6AAAAAAAB0DLZAdSnc+fOnpeXl+wwAABIGStXrvzS3bskul76bAAAmq6hfjuQCXpeXp5WrFiR7DAAAEgZZrYxGfXSZwMA0HQN9dsMcQcAAAAAIABI0AEAAAAACAASdAAAAAAAAoAEHQAAAACAACBBBwAAAAAgAEjQAQAAAAAIABJ0AAAAAAACgAQdAAAAAIAAIEEHAAAAACAASNABAAAAAAgAEnQAAAAAAAKABB0AAAAAgAAgQQcAAAAAIABaJjsAAMEyrGipysor6y3LycrQssJTm+06DxSxAACCKFKfINEvAEFEgg6gjrLySpUWja63LK9wcbNe54EiFgBAEEXqEyT6BSCIGOIeID//+c91yy23JDsMAAAQBfptAECskaDvY9KkSWrdurUyMzNrfmbOnBn18sOHD9d99913QHXfc889uuGGGw5o2UT67//+bw0YMEAtWrTQAw88UKds8+bNGj58uA477DD94Ac/0Pvvv19TtmfPHk2ZMkXt2rVTbm6uHn/88TrL3nHHHerWrZs6deqkGTNmJGJTAAApjn67cfTbAJA6SNDrce2116qioqLm5+abb052SIFy9NFH64477tAJJ5ywX1lBQYEGDhyor776SuPHj9f48eNryn73u99pzZo12rRpk/74xz/qsssu06ZNmyRJb7/9tm666SYtXbpUa9as0fz58/fbEQAAoD7025HRbwNA6iBBb4IHHnhAJ510kiZNmqR27drp3/7t3/Tll19Kkm699VZlZmbq9ddf1xVXXKHMzMz9OsK8vDzdeeedOuGEE9S2bVuNGTNGkvTnP/9ZmZmZatWqla6//vr96l24cKEGDhyojh07atSoUdqyZUtN2eLFi9W3b1+1a9dOvXv31l/+8pc4tkDIhAkTdNppp+nQQw+tM33Hjh164YUXVFhYqIyMDF111VXauHGjVq9eLUl64okn9B//8R/KysrS8OHDdeKJJ+qpp56qKRs3bpwGDBignJwcXX755Zo/f37ctwUA0HzRb4fQbwNA6iBBb6K3335bEyZM0NatW7Vnzx7df//9kqTrrrtOFRUVOvnkk3XnnXeqoqJCK1eu3G/5e++9V3/84x+1fft2XXfddZKks846SxUVFbrooovqrW/KlCkqLi7Wtm3b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pM8knZek+AAASEsk6AAApBl3f0NSQxecn5bIWAAAwL8wxH0feXl5ysjIUGZmpnr27Kk777yzpszMNGTIkJr31157rcxMr7zyiiTpmWee0THHHKN27drpyCOP1K9//etEhx8T1dXVGj9+vLp37y4zU2lpaVTL7dmzRxMnTlR2drY6dOigESNGqKSkpKb89ttv19FHH6327durV69emjdvXk3Zz3/+85rHu2RmZurQQw/VMcccE+tNAwA0M/TbIXfccYe6deumTp06acaMGVEvN3z4cLVp06am/73kkktqygYMGFCnb27ZsqWuvPLKmvKXXnpJxx13nNq2bauePXtq1apVMd0mAEhHJOj1ePbZZ1VRUaFHH31U06dP16uvvlpTVl5ers8++0yStGTJEnXp0kWS9Omnn2rixIm66667tGPHDr3++uvq1atXUuKPhZNOOkkLFixo0jJVVVXq1auX3nnnHX399dcaM2aMzj77X4/QHTVqlFasWKEdO3ZoyZIluv7662s683vuuUcVFRU1P+eee67+/d//PabbBABontK933777bd10003aenSpVqzZo3mz5+vxx9/POrl77zzzpr+96GHHqqZXlJSUjN9x44dOuKII2r65tLSUo0bN07XXXedtm/frjfeeEPZ2dkx3zYASDck6BEMHjxYAwYM0DvvvFMzbdy4cXryySf17rvvqn///mrdurUkaeXKlTrqqKP0ox/9SGam3NxcjR8/PlmhH5QWLVpo2rRpys9v2uN027RpoxtvvFHdu3dXixYtNHnyZG3YsEHbtm2TJPXp00edOnWSJH377beqrq7Whx9+uN96tm/frkWLFtU5ig8AQGPStd9+4oknNG7cOA0YMEA5OTm6/PLLNX/+/JjW8dJLL6lFixY65ZRTJEkPPPCAzjzzTI0fP14tW7ZUdna2unbtGtM6ASAdkaBHsHLlSpWUlOj73/9+zbSzzz5bTz/9tBYsWFDnDO8xxxyjkpISzZw5U6tWrZI7j4Vdvny5jjjiCB1++OE10x555BG1bdtWffr0Ufv27TVy5Mj9lps/f74GDRqknj17JjJcAECKS9d+e926derXr5/mzJmjGTNmqH///lq3bl3Uy8+YMUOdO3fWGWecobVr19Y7z7x583TxxRcr9AAAadWqVerUqZOGDBmibt26acKECdq+fXtMtgcA0hk3iavH2WefrerqapmZioqKNHr0v56LfPjhh+vQQw/VggULdMMNN9RM79u3r5577jnddtttuu222/S9731Pc+bM0dixY5OxCUm3fft2TZs2TbNnz1aLFv86DjRhwgRdeOGFevPNN7V8+XJ16NBhv2XnzZunyy67LJHhIko5WRkNPg88JysjLuuM9EzzRDrQbU+V7QNSWbr32998840yMzO1YcMGlZaW6rTTTlNFRUVUy86aNUsDBgxQdXW1brnlFo0ZM0YffPCBWrVqVTNPeXm5Fi1aVOca8x07dujVV1/VkiVL1KdPH40fP1433nij5syZE/PtA4B0QoJej0WLFmnEiBG68cYb9eabb9a5IYokTZ48WStWrFBGRt2d8tNPP12nn366KisrNW/ePF144YXatGlTnTPI6WD37t0655xzNH78+HqHC5qZhg0bpoceekj33XefCgoKasrWrl2rVatW6fzzz09kyIhSPJLJSOtsKLFNhgPd9lTZPiCVpXu/3bZtW1VUVGjWrFmSpKeeekqZmZlRLVv7crZbb71Vd911l9auXatjjz22Zvqjjz6q4447Tn369KmZdthhh+mMM87QoEGDJEkFBQV1DoAAAA4MQ9wbcMghh+imm27S8uXLa+72utcFF1xQ0wnWJyMjQ7/4xS/Upk0bffrpp3GONFiqqqo0YcIE9erVS7fcckvEed1dq1evrjNt3rx5+ulPf6qsrKx4hgkAaGbSud/u06dPnXu6fPDBB+rbt2+T12NmNUPYa5s3b54mTpxYZ1rPnj3rzOvuKX2ZAAAEBQl6BK1atdKVV16pX/3qV43Ou2rVKt1///0qLy9XdXW1Hn30Ue3Zs0e9e/dOQKSxt3v3bu3evbvm9a5du+qUL1y4UL169VJZWVmd6VOnTpUk3X333fut84477lBZWZncXcuXL9f8+fN14okn1pRXVVXpoYce2m8nAACAaKRrv33eeedp4cKFKikpUVlZmYqLi/cbwVZfv11eXq7nn3++ps+/+eab1bVr1zrX8JeUlGjVqlW64IIL6qzvnHPO0XPPPac1a9Zo165duv/++zVixIj4bigApAGGuDdiypQpNUfkI8nMzNRjjz2m//qv/9KePXvUp08fLVy4sN5rrFNB3759tXHjRklSv379JKnOkfEdO3bo448/1p49e2qmbdy4UcXFxcrIyKiz3c8/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RURERERERMKAEnQRERERERGRMKAEXURERERERCQMKEEXERERERERCQNK0EVERERERETCgBJ0ERERERERkTCgBF1EREREREQkDChBFxEREREREQkDStBFREREREREwoASdBEREREREZEwoARdREREREREJAwoQRcREREREREJAxF+ByC570/jPmX7vt+zVUfl2GiWDLk6RBGJiIiISKiF4m++E+lvQJGcpQS9ANq+73e2jGuXrTrih8wLUTQiEow77riDypUrM3z4cL9DERGRPCIUf/OdSH8DiuQsdXEXEQlS7969KVKkCDExMemvkSNHBr1/ixYteOmll87q2M8991yeSM4fffRR6tatS6FChZg2bdpx27Zt20aLFi0oVqwYjRs35ptvvknflpKSQt++fSlRogRxcXHMnDnzuH0nTZpE+fLlKV26NEOHDs2NUxERERHJdUEl6GbWxszWm9lGMxuSyfbaZpZoZn+Y2QOZbC9sZl+b2XuhCFpExC+DBg3i4MGD6a/Ro0f7HVJYqV69OpMmTeLiiy8+aVv//v2pV68ee/fupWvXrnTt2jV925NPPsmaNWtISkpi+vTp3HbbbSQlJQGwdOlSRo0axaeffsqaNWt48803T0rgRURERPKDMyboZlYYeBr4M1AH6G5mdU4o9gtwDzDhFNXcC3yXjThFRMLatGnTuPzyy+nduzclSpTgiiuu4OeffwZg7NixxMTE8PnnnzNw4EBiYmJOSmDj4+OZPHkyF198McWLF6dDhw4AvPfee8TExBAZGcmwYcNOOu7s2bOpV68epUqVom3btuzcuTN927x586hVqxYlSpSgZs2afPTRRzn4E/D06NGDli1bEhUVddz6AwcO8PHHHzNkyBCio6O5//772bp1K6tXrwbgrbfe4p577iE2NpYWLVrQtGlT5syZk76tS5cu1K1bl8qVK9OvXz/efPPNHD8XERERkdwWTAv6pcBG59wm59wR4E2gY8YCzrndzrllQMqJO5tZFaAdcHb9OkVE8oilS5fSo0cPdu/eTUpKClOnTgXgoYce4uDBgzRr1ozJkydz8OBBVqxYcdL+zz//PNOnT2f//v089NBDALRv356DBw9y8803Z3q8vn37MmXKFPbs2UOjRo3o379/+vZ+/foxZswYkpOT+fjjj6lcuXIOnfmZbdy4kaJFixITE0OzZs3Y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/kWvXr1ITk5m1qxZefoGh4iIiMipaJI4EZEsePvtt0lOTua+++7jyy+/PGl7nz596NChA9HRx493veaaa5g/fz6//vorgwYNonv37uzduze3ws4R1atXp3bt2gwcODCo8gkJCURHR1O8eHHGjh3Lrl270rvHFy9enIMHD7Js2TLuvvtukpOTiYmJAeDOO++kSZMm1K9fn3bt2tGpUydKliyZY+clIiIi4hcl6CIiWVS4cGFGjRpFYmJi+iztabp168aECRNOuW90dDQDBgygaNGibN68OYcjzXnOOVavXp3l/czsuFbwCy64gHXr1qUvf/vtt9SqVQuAIkWKMHnyZHbs2MHatWsxMxo2bJj94EVERETCjBJ0EZGzEBkZyd13382YMWPOWHbVqlVMnTqVffv2kZqayhtvvEFKSkrQXcPDyRtvvMHq1atJTU3lxx9/ZMKECTRt2vS4MrNnz+b8889n+/bt6ev27dvHBx98wB9//MEff/zB6NGjKVeuXPoY9JtuuolJkyaxb98+Fi9eTGJiIp07dwbg0KFDbNy4kdTUVD755BNeeukl+vfvn3snLSIiIpJLNAZdROQs9e3bN70l/XRiYmKYMWMGDz74ICkpKVxwwQXMnj2bc845J5ciDZ29e/dyww03sGPHDooXL07btm1P6jFw4MABfvjhB1JSUtLXpaSk8NBDD7FhwwYiIyO55JJLePfdd4mMjATg/vvvZ926dVStWpXY2FimTJlC1apVAfjtt99o164dSUlJVKpUiWeeeeakmwIiIiIi+YESdBGRIG3ZsuW45djYWJKTk4GTZxoH2LZtW/rnjz76KEdjyy0DBw4845jz3r1707t37+PWlS1blq+//vqU+0RGRjJ16lSmTp160rayZcumz+guIiIikp8pQZfg/PILLFoEGzbAnj0QGQnly0O9enD55VCsmN8RioiIiIiI5GlK0OXUUlPhgw/gySdh4UJvGSA6Go4ehbTuq0WLwp//DHfdBVdfDXr8kYiIiIiISJYFNUmcmbUxs/VmttHMhmSyvbaZJZrZH2b2QIb1Vc1soZl9Z2ZrzezeUAYvOWjNGrjiCmjfHtavh4cegiVLYP9++O03+OMP2LULPvwQbr/d23bNNXDppfDFF35HLyIiIiIikuecMUE3s8LA08CfgTpAdzOrc0KxX4B7gBOfLXQU+Jtz7kKg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UqQI8fHxDBs2jJSUFAAWLVrEVVddBUCrVq3Sv5tFixad8vgff/wxbdu2pWLFihQrVox69erxf//3fxw7duy05x4fH59+7oULF8bMmDZtWvr5pA0fONPvioiIiIhkTgl6XrNwoZdsqnv7mZl54/R/+AFee83vaHxRsWJFBg4cyAsvvMDWrVtPWW716tU0b96cX3/9lWnTpjF9+nQOHDhA8+bNWbVqFQDPPPMMjRo1okGDBiQmJpKYmMgzzzwDQFJSEpdddhmrVq3iySefZO7cuTRu3Jjrr7+euXPnph8nLZEL9fjtv//972zcuJGpU6cyceJEEhMTufnmm0+7zy233EJiYiL/+Mc/mD9/PpMmTaJKlSr89ttvWTp2+/bt2b59O88++ywfffQR48aNIyoqitTU1JDE3atXL8aNG8ett97Ke++9R58+fRg/fjy9evUCoHHjxjz99NMATJo0Kf27ady48SmPu2nTJlq2bMnUqVOZN28evXr1YtSoUTz88MOnjXfOnDnpNznSjtOuXbuTyp3ud0VERERETk1d3POaBQugWDFQd9LgpLWiP/II3HxzgRyLPnjwYJ5//nlGjx7N1KlTMy0zZswYoqKiWLBgAbGxsYDXGhsfH8/o0aOZPXs2derUoWTJkhw9evSk7syjRo3COcfixYspU6YMANdeey1JSUmMGDGCDh06AF7rc+HChY/rGh0K5513Hq+//nr68p49e3jwwQfZsWMHlSpVynSfxMRExo4de1xCfOONN2bpuD///DMbNmzgnXfeST9HgB49eoQk7m+++YY33njjuEnpWrduTeHChRk+fDhDhgyhQYMG1KlTB4ALL7wwqK7md9xxR/pn5xzNmjXjyJEjTJgwgbFjx57y+2nUqBGVA0NrMh7nxKEGp/tdAYiMjEz/XRARERGR/1ELel7zySfQvDkUKeJ3JHlD2lj0H36ADIlQQVK6dGn+9re/MX36dNavX59pmc8++4z27dunJ+cAJUuWpEOHDixevPiMx/jwww9p27Yt55xzDkePHk1/XXvttaxatYoDBw4AXkJ69OhRRowYEZqTCzixFbd+/foA/Pjjj6fc55JLLuEf//gHEydOZM2aNTjnsnzcMmXKUL16dYYMGcKLL77Ihg0bQhr3Z599BkDPnj2PK5e2HMx3k5mdO3fyl7/8hfPOO48iRYoQGRnJsGHD2Ldv3xm7+IdCiRIliImJwcxy/FgiIiIieYkS9Lxk2zZYtw6uucbvSPKWDh3goou8VvQCOhb9/vvvp3Tp0qdMjH/55RcqVqx40voKFSrw66+/nrH+3bt3M336dCIjI497PfjggwDs3bs3eydwBqVLlz5uOSoqCoDDhw+fcp8ZM2bQoUMHHn/8cRo0aEDlypUZM2ZMUF3T05gZ8+fPJyEhgaFDh3LBBRdQvXp1nn322ZDE/csvvwCc9N2kTfiXtj0rUlNT6dChA++99x7Dhg3j008/ZdmyZend20/3MwuVc845h5iYmBw/jpyZmRU2s6/N7L3Acmkzm29mGwLvpc5Uh4iIiISOEvS8ZMEC771lS3/jyGvSWtE3biywregxMTEMHTqUt956i//+978nbS9dujS7du06af2uXbtOSiIzU6ZMGW644QaWLVuW6etU3cz9VK5cOZ5++mm2b9/OunXr6N27NyNHjuT555/PUj3Vq1dn+vTp7Nmzh6+//pqrr76aAQMG8MEHH2Q7xrSf/YnfTdpy2nCCrPjhhx9Yvnw548eP5/bbb6dZs2YkJCTkanfzXr16sWPHjlw7npzWvcB3GZaHAAucczWBBYFlERERySVK0POSBQugbFkIdIOVLOjY0WtFL8Azug8YMIDKlSunz+yeUfPmzZk3bx7Jycnp65KTk3n33Xdp3rx5+rqoqCh+//33k/Zv06YNq1evpm7duiQkJJz0SmsZDle1atVi7NixlCpVim+++eas6jAzLrroIp544gmAs64no7Sf/Ztvvnnc+tcCkx5eeeWVwP9a3jP7bk6UNgleZGRk+rqUlJT0OkPlVL8rEj7MrArQDngpw+qOwCuBz68AnXI7LhERkYKs4M2YlVc5540/b9kSQjzBVoGQ1oreuTO88QbccovfEeW6qKgoRowYQf/+/U/aNnz4cN577z1atmzJ4MGDMTPGjx/Pb7/9dly3+Dp16vDMM88wY8YMatSoQYkSJahVqxZjxozh0ksv5corr2TgwIHEx8fz66+/8s0337Bp06b0yem2bt1KjRo1GDFiRMjHoWfF/v37ueaaa7j55pupXbs2kZGRvPPOO/z666+0bt066HpWr17NvffeS9euXTn//PM5duwY06ZNIyIigquvvjrbcdatW5fu3bszatQojh49yuWXX05iYiKPPPII3bt3p0GDBgBc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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "if (Nexp > 1) :\n", " \n", " fig2, ax2 = plt.subplots(nrows=2, ncols=2, figsize=(14,10))\n", " ax2 = ax2.flatten()\n", "\n", " # Distribution of alpha0 values:\n", " ax2[0].hist(array_alpha0, bins=60, range=(0.0, 6.0), histtype='step')\n", " ax2[0].set_title('Histogram of alpha0')\n", " string = \" Entries {:>6} \\n Mean {:>9.3f} \\n RMS {:>10.3f}\".format(len(array_alpha0), array_alpha0.mean(), array_alpha0.std(ddof=1))\n", " ax2[0].text(0.05, 0.95, string, family='monospace', transform=ax2[0].transAxes, fontsize=12, verticalalignment='top')\n", "\n", " # Distribution of alpha1 values:\n", " ax2[1].hist(array_alpha1, bins=50, range=(-0.2, 0.80), histtype='step')\n", " ax2[1].set_title('Histogram of alpha1')\n", " string = \" Entries {:>6} \\n Mean {:>9.3f} \\n RMS {:>10.3f}\".format(len(array_alpha1), array_alpha1.mean(), array_alpha1.std(ddof=1))\n", " ax2[1].text(0.05, 0.95, string, family='monospace', transform=ax2[1].transAxes, fontsize=12, verticalalignment='top')\n", "\n", " # Distribution (normed) of Chi2 values, along with Chi2-distribution (for Ndof=7) drawn on top:\n", " ax2[2].hist(array_Chi2, bins=25, range=(0.0, 25.0), histtype='step', density=True)\n", " ax2[2].set_title('Histogram of Chi2')\n", " string = \" Entries {:>6} \\n Mean {:>9.3f} \\n RMS {:>10.3f}\".format(len(array_Chi2), array_Chi2.mean(), array_Chi2.std(ddof=1))\n", " ax2[2].text(0.62, 0.95, string, family='monospace', transform=ax2[2].transAxes, fontsize=12, verticalalignment='top')\n", " x_axis = np.linspace(0, 20, 1000)\n", " y_axis = stats.chi2.pdf(x_axis, df=7)\n", " ax2[2].plot(x_axis, y_axis, 'r-')\n", " ax2[2].text(0.45, 0.65, \"Note: This is not a fit!\", transform=ax2[2].transAxes, fontsize=16, verticalalignment='top')\n", "\n", " # Distribution of Chi2 fit probabilities:\n", " ax2[3].hist(array_Prob, bins=20, range=(0.0, 1.0), histtype='step')\n", " ax2[3].set_title('Histogram of Prob')\n", " string = \" Entries {:>6} \\n Mean {:>9.3f} \\n RMS {:>10.3f}\".format(len(array_Prob), array_Prob.mean(), array_Prob.std(ddof=1))\n", " ax2[3].text(0.3, 0.2, string, family='monospace', transform=ax2[3].transAxes, fontsize=12, verticalalignment='top')\n", " \n", " plt.tight_layout()\n", " if (save_plots) :\n", " fig2.savefig('FitResultDistributions.pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Remark on $\\chi^2$ rule of thumb:\n", "A general rule is that the \"reduced chisquare\" (defined as $\\chi^2$/Ndof) should be \"around 1\". That is true, but the rule definitely has its limitations, since \"around\" depends on the size of Ndof! This is examplified below, considering two cases with the same reduced chisquare of 1.5, but with **very** different conclusions.\n", "\n", "The reason for this can be found in the mean and width of the $\\chi^2$ distribution (with Ndof = k), which are k and sqrt(2k). From the central limit theorem, the $\\chi^2$ should approach a Gaussian for \"large\" values of k (k > 50 is probably enough), but the **relative** width (i.e. width/mean) becomes smaller and smaller as k grows, and a reduced chisquare of e.g. 1.5 becomes more and more unlikely, as k increases." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "lines_to_next_cell": 2, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Considering the relation between Chi2/Ndof ratio and Prob(Chi2,Ndof) vs. Ndof:\n", " Low number of degrees of freedom: Prob( 3.0, 2) = 0.2231302\n", " High number of degrees of freedom: Prob(300.0,200) = 0.0000059\n" ] } ], "source": [ "# Numbers to illustrate the point, that using the ratio Chi2/Ndof (\"reduced chisquare\") is only a rule of thumb:\n", "print(\"\\n Considering the relation between Chi2/Ndof ratio and Prob(Chi2,Ndof) vs. Ndof:\")\n", "print(\" Low number of degrees of freedom: Prob( 3.0, 2) = %9.7f\"%(stats.chi2.sf( 3.0, 2)))\n", "print(\" High number of degrees of freedom: Prob(300.0,200) = %9.7f\"%(stats.chi2.sf(300.0, 200)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The conclusion is, that while the reduced $\\chi^2$ is a good rule of thumb, it is NOT the correct way to consider a $\\chi^2$ value." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---------------------------------------------------------------------------------- \n", "\n", "\n", "\n", "# Questions:\n", "1) Run the code such that it does exactly one fit (initial setting), and take a look at the line fitted.\n", " Does this look reasonable, and are you satisfied with the fit probability? Does the fit reproduce the input\n", " numbers well (include the uncertainties in your answer)?\n", " \n", "Example answer 1:\n", "When looking at the result of the plotted fit, then the fitting parameters \"cover\" the input values nicely, and so the answer is \"yes\". The line of thinking is, that one should calculate the number of $\\sigma$s between the input values and the fit result, and consider if these are reasonable.\n", "\n", "---\n", "\n", "2) What is the chance that the input for the data could actually be from a flat distribution, i.e. without the slope?\n", " [There is a correct (slower) way of doing this, and another quick but approximate way of testing this].\n", " \n", "Example answer 2:\n", "The correct (slower) answer is, that one should refit the data with the flat (i.e. constant) distribution assumption, and see the change in $\\chi^2$ (we will have much more on hypothesis testing later), and if it still remains \"reasonable\", whatever that might be.\n", "\n", "However, if the data is not yours, and you just see a plot, then an approximate option is to consider the significance of the slope, alpha1, and see how consistent it is with zero. In the given case, it is $2 \\sigma$ away from zero, which means that it is most likely not zero, but that there is a small (2.5%) chance, that it is in fact zero (or smaller).\n", "\n", "---\n", "\n", " 3) Now increase the number of experiments to e.g. 1000, and rerun the macro. Figure\n", " out what you see in the window split in 2-by-2, and go through each of these to\n", " see, if you understand every feature of the distributions shown, and if you are\n", " happy with them! Is this what you expected? Are they also as wide as you would expect?\n", " Possibly try to make some fits of these output distributions to check, if you're satisfied!\n", "
\n", " This somehow makes this the \"long\" question without any leading questions.\n", " But you should try to be statistically minded enough and have an idea of what to\n", " look for, at least to some degree. We will discuss this further in class.\n", "\n", "Example answer 3:\n", "The parameter results of 1000 fits shows nice Gaussian distributions, which are centered at the input values, so there is no bias in the fit. Additionally, the width of these Gaussians correspond nicely to the uncertainty on the fit parameter, so the result indeed varies as much as the uncertainty suggests that it should.\n", "\n", "The distribution of $\\chi^2$ values should follow a $\\chi^2$ distribution with 9-2=7 degrees of freedom, which it does beautifully, and so this distribution is also satisfactory. Finally, the distribution of probabilities is seemingly flat, as it should be (see below).\n", "\n", "---\n", "\n", " 4) Investigate if the distributions of probabilities is flat, or if it has some\n", " slope to it. Do you understand why the distributions of probabilities is flat?\n", " (This is typically conceptually hard to begin with, but don't worry!)\n", " \n", "Example answer 4:\n", "If the $\\chi^2$ probability yields 50%, then this means that if the hypothesis (i.e. fit function) indeed matches the data, then the chance of getting something worse is 50%. In our case, the hypothesis matches (it was generated this way), and so one should expect that half the fits have lower values than 50%. But the same goes for 25% and any other percentage, and in order to fulfill this, the distribution of probabilities has to be flat (if hypothesis is correct and there are not bugs/errors).\n", "\n", "---\n", "\n", " 5) Find the line of code where the random points for the line are generated, and add a\n", " quadratic term in x with the coefficient alpha2 = -0.04. Run the program again with Nexp=1,\n", " and start by looking at the single fit in the graph. Can you see this change?\n", " Now run 1000 experiments again, and see what has changed in the distributions\n", " in the 2-by-2 window when including such a term. Are these changes as you would\n", " have expected them?\n", "
\n", " NOTE: The reason why the quadratic term is more clear in the latter case is NOT\n", " that it is a better method. It is simply because there is 1000 times more statistics!\n", "\n", "Example answer 5:\n", "\n", "While you should not be able to see the effect in a single fit (this is still a good fit), it does show an effect on the distribution of p-values, which moves towards lower values, as one should expect from poorer fits.\n", "\n", "---\n", "\n", " 6) With the quadratic coefficient from question 5), the linear fit of course does\n", " not do very well. What changes are needed for the fit to be good again? Make\n", " these changes, and see that the condition in question 4) is again met.\n", " \n", "Example answer 6:\n", "\n", "The change needed is for the fitting function to be quadratic, which you should easily be able to do. However, note that this changes the number of degrees-of-freedom, Ndof, which you have to include in your change.\n", "\n", "\n", "\n", "### (Semi-)Advanced questions:\n", "\n", " 7) Try to generate data according to more advanced functions, and then fit the data with these.\n", " Do you still obtain a flat distribution in probability? Do you also manage to fit these with\n", " simpler/other functions and still maintain the flat distribution?\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "executable": "/usr/bin/env python", "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.7.6" }, "main_language": "python" }, "nbformat": 4, "nbformat_minor": 2 }