From 97b741c145d9af8affd61e4ba54d041f015a329f Mon Sep 17 00:00:00 2001 From: Hans Dembinski Date: Thu, 7 Dec 2023 15:53:11 +0100 Subject: [PATCH] improved text --- doc/notebooks/cost_functions.ipynb | 669 +++++++++++++++-------------- 1 file changed, 339 insertions(+), 330 deletions(-) diff --git a/doc/notebooks/cost_functions.ipynb b/doc/notebooks/cost_functions.ipynb index 7cd18bf7..9da36978 100644 --- a/doc/notebooks/cost_functions.ipynb +++ b/doc/notebooks/cost_functions.ipynb @@ -1,5 +1,5 @@ { - "cells": [ + "cells": [ { "cell_type": "markdown", "id": "negative-concord", @@ -7,11 +7,11 @@ "source": [ "# Cost functions\n", "\n", - "We give an in-depth guide on how to use the builtin cost functions.\n", + "We give an in-depth guide on how to use the built-in cost functions.\n", "\n", "The iminuit package comes with a couple of common cost functions that you can import from `iminuit.cost` for convenience. Of course, you can write your own cost functions to use with iminuit, but most of the cost function is always the same. What really varies is the statistical model which predicts the probability density as a function of the parameter values. This you still have to provide yourself and the iminuit package will not include machinery to build statistical models (that is out of scope).\n", "\n", - "Using the builtin cost functions is not only convenient, they also have some extra features.\n", + "Using the built-in cost functions is not only convenient, they also have some extra features.\n", "\n", "* Support of fitted weighted histograms.\n", "* Technical tricks improve numerical stability.\n", @@ -19,12 +19,12 @@ "* Cost functions can be added to fit data sets with shared parameters.\n", "* Temporarily mask data.\n", "\n", - "We demonstrate each cost function on an standard example from high-energy physics, the fit of a peak over some smooth background (here taken to be constant)." + "We demonstrate each cost function on a standard example from high-energy physics, the fit of a peak over some smooth background (here taken to be constant)." ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 12, "id": "lucky-canvas", "metadata": {}, "outputs": [], @@ -44,18 +44,18 @@ "id": "absent-missile", "metadata": {}, "source": [ - "We generate our data. We sample from a Gaussian peak and from exponential background in the range 0 to 2. We then bin the original data. One can fit the original or the binned data." + "We generate our data by sampling from a Gaussian peak and from exponential background in the range 0 to 2. The original data is then binned. One can fit the original or the binned data." ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 13, "id": "destroyed-fusion", "metadata": {}, "outputs": [ { "data": { - "image/png": "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QabuU2UdGmP085//XNdff738fv8xy7ph/d188816/PHHtXnzZlVXVx+zrFv2hVM2oPj9fp133nnatGlTZl46ndamTZuy/od9uLq6uqzykvT0009nys+bN08VFRVZZaLRqJ5//vmjvmY+jaWN0uDZ19/97nf15JNP6vzzzz/u++zZs0fvvvuuKisrc1LvEzXW9h3OcRzt3LkzU3c3rcOTad8jjzyieDyuz372s8d9n4laf2NxvO9gLrYJN3jooYf0+c9/Xg899FDWJeJH09vbq7fffntSrMORvPzyy5m6T5V1uHXrVr311lsn9J+EiVx/xhjdfPPNevTRR/XMM89o3rx5x32Oa/aFOTvd1oUefvhhEwgEzPr1681rr71mvvjFL5qSkhLT0dFhjDHm+uuvN9/4xjcy5f/4xz8ar9drfvCDH5jXX3/d3HHHHcbn85mdO3dmytx5552mpKTEPPbYY+Z//ud/zBVXXGHmzZtn+vv7x719xoy+jXfeeafx+/1mw4YNpr29PfPo6ekxxhjT09NjvvrVr5rm5mbT0tJi/vCHP5gPf/jD5oMf/KAZGBhwffu+/e1vm6eeesq8/fbbZseOHeaaa64xwWDQvPrqq5kyblqHo23fkI9//OPm6quvHjbfbeuvp6fHvPTSS+all14ykswPf/hD89JLL5l33nnHGGPMN77xDXP99ddnyv/lL38xhYWF5tZbbzWvv/66uffee41t2+bJJ5/MlDneZzbeRtvGX/7yl8br9Zp777036zt46NChTJmvfOUrZsuWLaalpcX88Y9/NIsWLTKzZs0yXV1drm/f3XffbX7729+aN9980+zcudOsXLnSeDwe84c//CFTxk3rcLTtG/LZz37WLFiwYMTXdNP6u+mmm0wkEjFbtmzJ2t76+voyZdy6L5zSAcUYY370ox+ZOXPmGL/fby644ALz3HPPZZZ94hOfMMuXL88q/+tf/9p86EMfMn6/35xxxhnmv/7rv7KWp9Np861vfcuUl5ebQCBgLrnkErNr167xaMpRjaaNc+fONZKGPe644w5jjDF9fX1m8eLFZvbs2cbn85m5c+eaL3zhCxP242/M6Nq3atWqTNny8nKzdOlS8+KLL2a9ntvW4Wi30TfeeMNIMr///e+HvZbb1t/QJadHPobatHz5cvOJT3xi2HPOPfdc4/f7zSmnnGLuv//+Ya97rM9svI22jZ/4xCeOWd6YwUurKysrjd/vN+973/vM1Vdfbd56663xbdh7Rtu+733ve+b973+/CQaDprS01CxcuNA888wzw17XLetwLNvooUOHTEFBgfn3f//3EV/TTetvpLZJyvpeuXVfaL3XAAAAANeYsuegAACAyYuAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXOf/A0qbx+orJ1afAAAAAElFTkSuQmCC", + "image/png": "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QabuU2UdGmP085//XNdff738fv8xy7ph/d188816/PHHtXnzZlVXVx+zrFv2hVM2oPj9fp133nnatGlTZl46ndamTZuy/od9uLq6uqzykvT0009nys+bN08VFRVZZaLRqJ5//vmjvmY+jaWN0uDZ19/97nf15JNP6vzzzz/u++zZs0fvvvuuKisrc1LvEzXW9h3OcRzt3LkzU3c3rcOTad8jjzyieDyuz372s8d9n4laf2NxvO9gLrYJN3jooYf0+c9/Xg899FDWJeJH09vbq7fffntSrMORvPzyy5m6T5V1uHXrVr311lsn9J+EiVx/xhjdfPPNevTRR/XMM89o3rx5x32Oa/aFOTvd1oUefvhhEwgEzPr1681rr71mvvjFL5qSkhLT0dFhjDHm+uuvN9/4xjcy5f/4xz8ar9drfvCDH5jXX3/d3HHHHcbn85mdO3dmytx5552mpKTEPPbYY+Z//ud/zBVXXGHmzZtn+vv7x719xoy+jXfeeafx+/1mw4YNpr29PfPo6ekxxhjT09NjvvrVr5rm5mbT0tJi/vCHP5gPf/jD5oMf/KAZGBhwffu+/e1vm6eeesq8/fbbZseOHeaaa64xwWDQvPrqq5kyblqHo23fkI9//OPm6quvHjbfbeuvp6fHvPTSS+all14ykswPf/hD89JLL5l33nnHGGPMN77xDXP99ddnyv/lL38xhYWF5tZbbzWvv/66uffee41t2+bJJ5/MlDneZzbeRtvGX/7yl8br9Zp777036zt46NChTJmvfOUrZsuWLaalpcX88Y9/NIsWLTKzZs0yXV1drm/f3XffbX7729+aN9980+zcudOsXLnSeDwe84c//CFTxk3rcLTtG/LZz37WLFiwYMTXdNP6u+mmm0wkEjFbtmzJ2t76+voyZdy6L5zSAcUYY370ox+ZOXPmGL/fby644ALz3HPPZZZ94hOfMMuXL88q/+tf/9p86EMfMn6/35xxxhnmv/7rv7KWp9Np861vfcuUl5ebQCBgLrnkErNr167xaMpRjaaNc+fONZKGPe644w5jjDF9fX1m8eLFZvbs2cbn85m5c+eaL3zhCxP242/M6Nq3atWqTNny8nKzdOlS8+KLL2a9ntvW4Wi30TfeeMNIMr///e+HvZbb1t/QJadHPobatHz5cvOJT3xi2HPOPfdc4/f7zSmnnGLuv//+Ya97rM9svI22jZ/4xCeOWd6YwUurKysrjd/vN+973/vM1Vdfbd56663xbdh7Rtu+733ve+b973+/CQaDprS01CxcuNA888wzw17XLetwLNvooUOHTEFBgfn3f//3EV/TTetvpLZJyvpeuXVfaL3XAAAAANeYsuegAACAyYuAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXIeAAgAAXOf/A0qbx+orJ1afAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -87,18 +87,18 @@ "id": "5c50cab3", "metadata": {}, "source": [ - "We also generate some 2D data to demonstrate multivariate fits. In this case, a gaussian along axis 1 and independently an exponential along axis 2. In this case, the distributions are not restricted to some range in x and y." + "We also generate some 2D data to demonstrate multivariate fits. In this case, a Gaussian along axis 1 and independently an exponential along axis 2. In this case, the distributions are not restricted to some range in x and y." ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 14, "id": "b62cbb46", "metadata": {}, "outputs": [ { "data": { - "image/png": "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8mPU1rnw0avbwx4TTuBrPaIhqtfHRHjjfw3qMRoh/zcrRBz/8hZR+PHHHwUAsX37dr/n77jjDlFQUBDyNffdd5+AHH7wi1/84he/+MWvLv515MiRaEKHqMS9++buu+/G7bffrn5fWVmJfv364fjx47Db7fG+vGY4HA7k5ubixIkTSE5O7uzb6TB833zfPQHfN993T1BVVYW+ffsiLS0tbteIKijJyMhAQkICTp486ff8yZMnkZ2dHfI1JpMJJpMp6Hm73d6jPkxFcnIy33cPwvfds/B99yw99X3rdPFbMo/qzEajEaNHj8bGjc27dXq9XmzcuBGFhYXtfnNERETUc0S9fHP77bdj8eLFGDNmDAoKCvDkk0/C6XSq3ThEREREsYg6KLnmmmtQVlaGe++9F6WlpRg5ciQ2bNiAXr16RfR6k8mE++67L+SSTnfG98333RPwffN99wR83/F735IQ8eztISIiIopMBwx4ICIiImodgxIiIiLSBAYlREREpAkMSoiIiEgT2hyUPP300+jfvz/MZjPGjh2LXbt2tXj866+/jry8PJjNZuTn5+P999/3+7kQAvfeey9ycnJgsVgwbdo0HD58uK232e6ied8vvPACLrroIqSmpiI1NRXTpk0LOn7JkiWQJMnva8aMGfF+G1GL5n2vXLky6D2ZzWa/Y7rj5z158uSg9y1JEmbNmqUe0xU+761bt2LOnDno3bs3JEnC22+/3eprNm/ejFGjRsFkMmHQoEFYuXJl0DHR/n9GR4v2fb/11lu45JJLkJmZieTkZBQWFuKDDz7wO+aPf/xj0Oedl5cXx3cRvWjf9+bNm0P+d15aWup3XHf7vEP92ZUkCUOHDlWP0frnvWzZMlxwwQVISkpCVlYWrrjiChw6dKjV13XE399tCkpee+013H777bjvvvuwd+9ejBgxAtOnT8epU6dCHr99+3Zcd911uPHGG/HFF1/giiuuwBVXXIEDBw6ox/zpT3/C//7v/+LZZ5/FZ599BpvNhunTp6OuruXNtjpStO978+bNuO666/DJJ59gx44dyM3NxaWXXooff/zR77gZM2agpKRE/XrllVc64u1ELNr3DcgTD33f0/fff+/38+74eb/11lt+7/nAgQNISEjAvHnz/I7T+uftdDoxYsQIPP300xEdf/ToUcyaNQsXX3wx9u3bh9tuuw033XST31/Qsfw31NGifd9bt27FJZdcgvfffx979uzBxRdfjDlz5uCLL77wO27o0KF+n/e//vWveNx+zKJ934pDhw75va+srCz1Z93x837qqaf83u+JEyeQlpYW9Odby5/3li1bsHTpUuzcuRMfffQRGhoacOmll8LpdIZ9TYf9/d2WjXMKCgrE0qVL1e89Ho/o3bu3WLZsWcjjr776ajFr1iy/58aOHSt+8YtfCCGE8Hq9Ijs7WzzyyCPqzysrK4XJZBKvvPJKW261XUX7vgM1NjaKpKQk8dJLL6nPLV68WFx++eXtfavtKtr3vWLFCmG328Oer6d83k888YRISkoSNTU16nNd4fP2BUCsW7euxWPuvPNOMXToUL/nrrnmGjF9+nT1+7b+Xna0SN53KOedd564//771e/vu+8+MWLEiPa7sTiL5H1/8sknAoA4c+ZM2GN6wue9bt06IUmSOHbsmPpcV/u8T506JQCILVu2hD2mo/7+jjlTUl9fjz179mDatGnqczqdDtOmTcOOHTtCvmbHjh1+xwPA9OnT1eOPHj2K0tJSv2PsdjvGjh0b9pwdLZb3HcjlcqGhoSFoU6PNmzcjKysLQ4YMwS9/+UuUl5e36723Razvu6amBv369UNubi4uv/xyfP311+rPesrn/eKLL+Laa6+FzWbze17Ln3csWvvz3R6/l12B1+tFdXV10J/vw4cPo3fv3jj77LOxYMECHD9+vJPusH2NHDkSOTk5uOSSS7Bt2zb1+Z7yeb/44ouYNm0a+vXr5/d8V/q8q6qqAKDFjfY66u/vmIOS06dPw+PxBE1y7dWrV9CaoqK0tLTF45XHaM7Z0WJ534F+97vfoXfv3n4f3owZM/Dyyy9j48aNePjhh7FlyxYUFRXB4/G06/3HKpb3PWTIEPztb3/DO++8g1WrVsHr9WL8+PH44YcfAPSMz3vXrl04cOAAbrrpJr/ntf55xyLcn2+Hw4Ha2tp2+bPTFTz66KOoqanB1VdfrT43duxYrFy5Ehs2bMAzzzyDo0eP4qKLLkJ1dXUn3mnb5OTk4Nlnn8Wbb76JN998E7m5uZg8eTL27t0LoH3+v1LrfvrpJ6xfvz7oz3dX+ry9Xi9uu+02TJgwAcOGDQt7XEf9/R31mHlqm+XLl+PVV1/F5s2b/Yo+r732WvXX+fn5GD58OAYOHIjNmzdj6tSpnXGrbVZYWOi3UeP48eNx7rnn4rnnnsMDDzzQiXfWcV588UXk5+ejoKDA7/nu+HkTsGbNGtx///145513/GorioqK1F8PHz4cY8eORb9+/bB27VrceOONnXGrbTZkyBAMGTJE/X78+PE4cuQInnjiCfz973/vxDvrOC+99BJSUlJwxRVX+D3flT7vpUuX4sCBA5qpeYk5U5KRkYGEhAScPHnS7/mTJ08iOzs75Guys7NbPF55jOacHS2W96149NFHsXz5cnz44YcYPnx4i8eeffbZyMjIQHFxcZvvuT205X0rDAYDzj//fPU9dffP2+l04tVXX43o/4S09nnHItyf7+TkZFgslnb5b0jLXn31Vdx0001Yu3ZtUJo7UEpKCgYPHtylP+9QCgoK1PfU3T9vIQT+9re/4frrr4fRaGzxWK1+3rfeeiveffddfPLJJ+jTp0+Lx3bU398xByVGoxGjR4/Gxo0b1ee8Xi82btzo969jX4WFhX7HA8BHH32kHj9gwABkZ2f7HeNwOPDZZ5+FPWdHi+V9A3JV8gMPPIANGzZgzJgxrV7nhx9+QHl5OXJyctrlvtsq1vfty+PxYP/+/ep76s6fNyC3z7ndbixcuLDV62jt845Fa3++2+O/Ia165ZVXcMMNN+CVV17xa/0Op6amBkeOHOnSn3co+/btU99Td/68AbmDpbi4OKJ/dGjt8xZC4NZbb8W6deuwadMmDBgwoNXXdNjf31GV6AZ49dVXhclkEitXrhT//ve/xS233CJSUlJEaWmpEEKI66+/Xtx1113q8du2bRN6vV48+uij4ptvvhH33XefMBgMYv/+/eoxy5cvFykpKeKdd94RX331lbj88svFgAEDRG1tbVtutV1F+76XL18ujEajeOONN0RJSYn6VV1dLYQQorq6Wvz2t78VO3bsEEePHhUff/yxGDVqlDjnnHNEXV1dp7zHUKJ93/fff7/44IMPxJEjR8SePXvEtddeK8xms/j666/VY7rj56248MILxTXXXBP0fFf5vKurq8UXX3whvvjiCwFAPP744+KLL74Q33//vRBCiLvuuktcf/316vHfffedsFqt4o477hDffPONePrpp0VCQoLYsGGDekxrv5daEO37Xr16tdDr9eLpp5/2+/NdWVmpHvOb3/xGbN68WRw9elRs27ZNTJs2TWRkZIhTp051+PsLJ9r3/cQTT4i3335bHD58WOzfv1/86le/EjqdTnz88cfqMd3x81YsXLhQjB07NuQ5tf55//KXvxR2u11s3rzZ779Zl8ulHtNZf3+3KSgRQog///nPom/fvsJoNIqCggKxc+dO9WeTJk0Sixcv9jt+7dq1YvDgwcJoNIqhQ4eK9957z+/nXq9X/OEPfxC9evUSJpNJTJ06VRw6dKitt9nuonnf/fr1EwCCvu677z4hhBAul0tceumlIjMzUxgMBtGvXz9x8803a+oPriKa933bbbepx/bq1UvMnDlT7N271+983fHzFkKIgwcPCgDiww8/DDpXV/m8lZbPwC/lvS5evFhMmjQp6DUjR44URqNRnH322WLFihVB523p91ILon3fkyZNavF4IeTW6JycHGE0GsVZZ50lrrnmGlFcXNyxb6wV0b7vhx9+WAwcOFCYzWaRlpYmJk+eLDZt2hR03u72eQsht7paLBbx/PPPhzyn1j/vUO8XgN+f1876+1tqukEiIiKiTsW9b4iIiEgTGJQQERGRJjAoISIiIk1gUEJERESawKCEiIiINIFBCREREWkCgxIiIiLSBAYlREREpAkMSoiIiEgTGJQQERGRJjAoISIiIk1gUEJERESa8P8BQ4gHyiAcCmAAAAAASUVORK5CYII=", + "image/png": "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8mPU1rnw0avbwx4TTuBrPaIhqtfHRHjjfw3qMRoh/zcrRBz/8hZR+PHHHwUAsX37dr/n77jjDlFQUBDyNffdd5+AHH7wi1/84he/+MWvLv515MiRaEKHqMS9++buu+/G7bffrn5fWVmJfv364fjx47Db7fG+vGY4HA7k5ubixIkTSE5O7uzb6TB833zfPQHfN993T1BVVYW+ffsiLS0tbteIKijJyMhAQkICTp486ff8yZMnkZ2dHfI1JpMJJpMp6Hm73d6jPkxFcnIy33cPwvfds/B99yw99X3rdPFbMo/qzEajEaNHj8bGjc27dXq9XmzcuBGFhYXtfnNERETUc0S9fHP77bdj8eLFGDNmDAoKCvDkk0/C6XSq3ThEREREsYg6KLnmmmtQVlaGe++9F6WlpRg5ciQ2bNiAXr16RfR6k8mE++67L+SSTnfG98333RPwffN99wR83/F735IQ8eztISIiIopMBwx4ICIiImodgxIiIiLSBAYlREREpAkMSoiIiEgT2hyUPP300+jfvz/MZjPGjh2LXbt2tXj866+/jry8PJjNZuTn5+P999/3+7kQAvfeey9ycnJgsVgwbdo0HD58uK232e6ied8vvPACLrroIqSmpiI1NRXTpk0LOn7JkiWQJMnva8aMGfF+G1GL5n2vXLky6D2ZzWa/Y7rj5z158uSg9y1JEmbNmqUe0xU+761bt2LOnDno3bs3JEnC22+/3eprNm/ejFGjRsFkMmHQoEFYuXJl0DHR/n9GR4v2fb/11lu45JJLkJmZieTkZBQWFuKDDz7wO+aPf/xj0Oedl5cXx3cRvWjf9+bNm0P+d15aWup3XHf7vEP92ZUkCUOHDlWP0frnvWzZMlxwwQVISkpCVlYWrrjiChw6dKjV13XE399tCkpee+013H777bjvvvuwd+9ejBgxAtOnT8epU6dCHr99+3Zcd911uPHGG/HFF1/giiuuwBVXXIEDBw6ox/zpT3/C//7v/+LZZ5/FZ599BpvNhunTp6OuruXNtjpStO978+bNuO666/DJJ59gx44dyM3NxaWXXooff/zR77gZM2agpKRE/XrllVc64u1ELNr3DcgTD33f0/fff+/38+74eb/11lt+7/nAgQNISEjAvHnz/I7T+uftdDoxYsQIPP300xEdf/ToUcyaNQsXX3wx9u3bh9tuuw033XST31/Qsfw31NGifd9bt27FJZdcgvfffx979uzBxRdfjDlz5uCLL77wO27o0KF+n/e//vWveNx+zKJ934pDhw75va+srCz1Z93x837qqaf83u+JEyeQlpYW9Odby5/3li1bsHTpUuzcuRMfffQRGhoacOmll8LpdIZ9TYf9/d2WjXMKCgrE0qVL1e89Ho/o3bu3WLZsWcjjr776ajFr1iy/58aOHSt+8YtfCCGE8Hq9Ijs7WzzyyCPqzysrK4XJZBKvvPJKW261XUX7vgM1NjaKpKQk8dJLL6nPLV68WFx++eXtfavtKtr3vWLFCmG328Oer6d83k888YRISkoSNTU16nNd4fP2BUCsW7euxWPuvPNOMXToUL/nrrnmGjF9+nT1+7b+Xna0SN53KOedd564//771e/vu+8+MWLEiPa7sTiL5H1/8sknAoA4c+ZM2GN6wue9bt06IUmSOHbsmPpcV/u8T506JQCILVu2hD2mo/7+jjlTUl9fjz179mDatGnqczqdDtOmTcOOHTtCvmbHjh1+xwPA9OnT1eOPHj2K0tJSv2PsdjvGjh0b9pwdLZb3HcjlcqGhoSFoU6PNmzcjKysLQ4YMwS9/+UuUl5e36723Razvu6amBv369UNubi4uv/xyfP311+rPesrn/eKLL+Laa6+FzWbze17Ln3csWvvz3R6/l12B1+tFdXV10J/vw4cPo3fv3jj77LOxYMECHD9+vJPusH2NHDkSOTk5uOSSS7Bt2zb1+Z7yeb/44ouYNm0a+vXr5/d8V/q8q6qqAKDFjfY66u/vmIOS06dPw+PxBE1y7dWrV9CaoqK0tLTF45XHaM7Z0WJ534F+97vfoXfv3n4f3owZM/Dyyy9j48aNePjhh7FlyxYUFRXB4/G06/3HKpb3PWTIEPztb3/DO++8g1WrVsHr9WL8+PH44YcfAPSMz3vXrl04cOAAbrrpJr/ntf55xyLcn2+Hw4Ha2tp2+bPTFTz66KOoqanB1VdfrT43duxYrFy5Ehs2bMAzzzyDo0eP4qKLLkJ1dXUn3mnb5OTk4Nlnn8Wbb76JN998E7m5uZg8eTL27t0LoH3+v1LrfvrpJ6xfvz7oz3dX+ry9Xi9uu+02TJgwAcOGDQt7XEf9/R31mHlqm+XLl+PVV1/F5s2b/Yo+r732WvXX+fn5GD58OAYOHIjNmzdj6tSpnXGrbVZYWOi3UeP48eNx7rnn4rnnnsMDDzzQiXfWcV588UXk5+ejoKDA7/nu+HkTsGbNGtx///145513/GorioqK1F8PHz4cY8eORb9+/bB27VrceOONnXGrbTZkyBAMGTJE/X78+PE4cuQInnjiCfz973/vxDvrOC+99BJSUlJwxRVX+D3flT7vpUuX4sCBA5qpeYk5U5KRkYGEhAScPHnS7/mTJ08iOzs75Guys7NbPF55jOacHS2W96149NFHsXz5cnz44YcYPnx4i8eeffbZyMjIQHFxcZvvuT205X0rDAYDzj//fPU9dffP2+l04tVXX43o/4S09nnHItyf7+TkZFgslnb5b0jLXn31Vdx0001Yu3ZtUJo7UEpKCgYPHtylP+9QCgoK1PfU3T9vIQT+9re/4frrr4fRaGzxWK1+3rfeeiveffddfPLJJ+jTp0+Lx3bU398xByVGoxGjR4/Gxo0b1ee8Xi82btzo969jX4WFhX7HA8BHH32kHj9gwABkZ2f7HeNwOPDZZ5+FPWdHi+V9A3JV8gMPPIANGzZgzJgxrV7nhx9+QHl5OXJyctrlvtsq1vfty+PxYP/+/ep76s6fNyC3z7ndbixcuLDV62jt845Fa3++2+O/Ia165ZVXcMMNN+CVV17xa/0Op6amBkeOHOnSn3co+/btU99Td/68AbmDpbi4OKJ/dGjt8xZC4NZbb8W6deuwadMmDBgwoNXXdNjf31GV6AZ49dVXhclkEitXrhT//ve/xS233CJSUlJEaWmpEEKI66+/Xtx1113q8du2bRN6vV48+uij4ptvvhH33XefMBgMYv/+/eoxy5cvFykpKeKdd94RX331lbj88svFgAEDRG1tbVtutV1F+76XL18ujEajeOONN0RJSYn6VV1dLYQQorq6Wvz2t78VO3bsEEePHhUff/yxGDVqlDjnnHNEXV1dp7zHUKJ93/fff7/44IMPxJEjR8SePXvEtddeK8xms/j666/VY7rj56248MILxTXXXBP0fFf5vKurq8UXX3whvvjiCwFAPP744+KLL74Q33//vRBCiLvuuktcf/316vHfffedsFqt4o477hDffPONePrpp0VCQoLYsGGDekxrv5daEO37Xr16tdDr9eLpp5/2+/NdWVmpHvOb3/xGbN68WRw9elRs27ZNTJs2TWRkZIhTp051+PsLJ9r3/cQTT4i3335bHD58WOzfv1/86le/EjqdTnz88cfqMd3x81YsXLhQjB07NuQ5tf55//KXvxR2u11s3rzZ779Zl8ulHtNZf3+3KSgRQog///nPom/fvsJoNIqCggKxc+dO9WeTJk0Sixcv9jt+7dq1YvDgwcJoNIqhQ4eK9957z+/nXq9X/OEPfxC9evUSJpNJTJ06VRw6dKitt9nuonnf/fr1EwCCvu677z4hhBAul0tceumlIjMzUxgMBtGvXz9x8803a+oPriKa933bbbepx/bq1UvMnDlT7N271+983fHzFkKIgwcPCgDiww8/DDpXV/m8lZbPwC/lvS5evFhMmjQp6DUjR44URqNRnH322WLFihVB523p91ILon3fkyZNavF4IeTW6JycHGE0GsVZZ50lrrnmGlFcXNyxb6wV0b7vhx9+WAwcOFCYzWaRlpYmJk+eLDZt2hR03u72eQsht7paLBbx/PPPhzyn1j/vUO8XgN+f1876+1tqukEiIiKiTsW9b4iIiEgTGJQQERGRJjAoISIiIk1gUEJERESawKCEiIiINIFBCREREWkCgxIiIiLSBAYlREREpAkMSoiIiEgTGJQQERGRJjAoISIiIk1gUEJERESa8P8BQ4gHyiAcCmAAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -121,18 +121,18 @@ "source": [ "## Maximum-likelihood fits\n", "\n", - "Maximum-likelihood fits are the state-of-the-art when it comes to fitting models to data. The can be applied to unbinned and binned data (histograms).\n", + "Maximum-likelihood fits are the state-of-the-art when it comes to fitting models to data. They can be applied to unbinned and binned data (histograms).\n", "\n", - "* Unbinned fits are the easiest to use, because they can be apply directly to the raw sample. They become slow when the sample size is large.\n", + "* Unbinned fits are the easiest to use, because no data binning is needed. They become slow when the sample size is large.\n", "* Binned fits require you to appropriately bin the data. The binning has to be fine enough to retain all essential information. Binned fits are much faster when the sample size is large.\n", "\n", "### Unbinned fit\n", "\n", "Unbinned fits are ideal when the data samples are not too large or very high dimensional. There is no need to worry about the appropriate binning of the data. Unbinned fits are inefficient when the samples are very large and can become numerically unstable, too. Binned fits are a better choice then.\n", "\n", - "The cost function for an unbinned maximum-likelihood fit is really simple, it is the sum of the logarithm of the pdf evaluated at each sample point (times -1 to turn maximimization into minimization). You can easily write this yourself, but a naive implementation will suffer from instabilities when the pdf becomes locally zero. Our implementation mitigates the instabilities to some extend.\n", + "The cost function for an unbinned maximum-likelihood fit is really simple, it is the sum of the logarithm of the pdf evaluated at each sample point (times -1 to turn maximization into minimization). You can easily write this yourself, but a naive implementation will suffer from instabilities when the pdf becomes locally zero. Our implementation mitigates the instabilities to some extent.\n", "\n", - "To perform the unbinned fit you need to provide the pdf of the model, which must be vectorized (a numpy ufunc). The pdf must be normalized, which means that the integral over the sample value range must be a constant for any combination of model parameters.\n", + "To perform the unbinned fit you need to provide the pdf of the model, which must be vectorized (a Numpy ufunc). The pdf must be normalized, which means that the integral over the sample value range must be a constant for any combination of model parameters.\n", "\n", "The model pdf in this case is a linear combination of the normal and the exponential pdfs. The parameters are $z$ (the weight), $\\mu$ and $\\sigma$ of the normal distribution and $\\tau$ of the exponential. The cost function detects the parameter names.\n", "\n", @@ -141,12 +141,12 @@ "* $\\sigma > 0$,\n", "* $\\tau > 0$.\n", "\n", - "In addition, it can be beneficial to use $0 < \\mu < 2$, but it is not required. We use `truncnorm` and `truncexpon`, which are normalised inside the data range (0, 2)." + "In addition, it can be beneficial to use $0 < \\mu < 2$, but it is not required. We use `truncnorm` and `truncexpon`, which are normalized inside the data range (0, 2)." ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 15, "id": "uniform-drama", "metadata": {}, "outputs": [ @@ -277,11 +277,11 @@ " \n", " \n", " \n", - " 2023-11-22T17:19:11.878527\n", + " 2023-12-07T15:17:34.829088\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.8.2, https://matplotlib.org/\n", + " Matplotlib v3.7.2, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -442,18 +442,18 @@ "L 62.624197 214.706937 \n", "L 43.992832 209.470047 \n", "z\n", - "\" clip-path=\"url(#pf95ad3f105)\" style=\"fill: #1f77b4\"/>\n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: #1f77b4\"/>\n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -499,7 +499,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -566,7 +566,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -582,7 +582,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -610,7 +610,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -642,7 +642,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -658,7 +658,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -674,7 +674,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -690,7 +690,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -708,12 +708,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -726,7 +726,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -740,7 +740,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -754,7 +754,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -768,7 +768,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -783,7 +783,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -798,7 +798,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -813,7 +813,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -828,7 +828,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -844,158 +844,158 @@ " \n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p294bc31c62)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\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", - " \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", + " \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", @@ -1083,7 +1083,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1120,7 +1120,7 @@ "└───────┴─────────────────────────────────────────┘" ] }, - "execution_count": 4, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -1149,7 +1149,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 16, "id": "8081f7f5", "metadata": {}, "outputs": [ @@ -1280,11 +1280,11 @@ " \n", " \n", " \n", - " 2023-11-22T17:19:12.380438\n", + " 2023-12-07T15:17:35.366223\n", " image/svg+xml\n", " \n", " \n", - " Matplotlib v3.8.2, https://matplotlib.org/\n", + " Matplotlib v3.7.2, https://matplotlib.org/\n", " \n", " \n", " \n", @@ -1445,18 +1445,18 @@ "L 62.624197 214.712033 \n", "L 43.992832 209.476359 \n", "z\n", - "\" clip-path=\"url(#p101e5aee04)\" style=\"fill: #1f77b4\"/>\n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: #1f77b4\"/>\n", " \n", " \n", " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1502,7 +1502,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1569,7 +1569,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1585,7 +1585,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1613,7 +1613,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1645,7 +1645,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1661,7 +1661,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1677,7 +1677,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1693,7 +1693,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1711,12 +1711,12 @@ " \n", " \n", " \n", - " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1729,7 +1729,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1743,7 +1743,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1757,7 +1757,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1771,7 +1771,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1786,7 +1786,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1801,7 +1801,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1816,7 +1816,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1831,7 +1831,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1847,158 +1847,158 @@ " \n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n", " \n", + "\" clip-path=\"url(#p2d0ebcb8a1)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\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", - " \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", + " \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", @@ -2086,7 +2086,7 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -2123,7 +2123,7 @@ "└───────┴─────────────────────────────────────────┘" ] }, - "execution_count": 5, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -2134,7 +2134,7 @@ "\n", "c = cost.UnbinnedNLL(xmix, pdf, grad=grad)\n", "\n", - "m = Minuit(c, z=0.4, mu=1, sigma=0.2, tau=1, grad=c.grad)\n", + "m = Minuit(c, z=0.4, mu=1, sigma=0.2, tau=1)\n", "m.limits[\"z\"] = (0, 1)\n", "m.limits[\"mu\"] = (0, 2)\n", "m.limits[\"sigma\", \"tau\"] = (0, None)\n", @@ -2146,12 +2146,12 @@ "id": "380b6ca6", "metadata": {}, "source": [ - "We can also fit a multivariate model to multivariate data. We pass model as a logpdf this time, which works well because the pdfs factorise." + "We can also fit a multivariate model to multivariate data. We pass model as a logpdf this time, which works well because the pdfs factorize." ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 17, "id": "9da33a94", "metadata": {}, "outputs": [ @@ -2283,7 +2283,7 @@ "└───────┴────────────────────────────┘" ] }, - "execution_count": 6, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -2309,7 +2309,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 18, "id": "220d17c6", "metadata": {}, "outputs": [ @@ -2319,13 +2319,13 @@ "text": [ "(0.9998931767086212, 0.16217159778984394, 0.6799538081830168)\n", "(0.9998386768107258, 0.15051842436022747, 0.6889258188275142)\n", - "(0.9984242446776961, 0.14035148868243788, 0.6972384519516452)\n", - "(0.9957007127518905, 0.11291210424930095, 0.7891108969531584)\n", - "(0.9945860415151112, 0.0964466496734315, 0.8508773815573261)\n", - "(0.9936608100330487, 0.1008389348477756, 0.9609503937682308)\n", - "(0.9957186730752515, 0.09933118850725643, 0.968145566787976)\n", - "(0.9945806067471112, 0.09860577681686375, 0.9707538004865558)\n", - "(0.9945745786396141, 0.09863321444431694, 0.971510125496902)\n" + "(0.9984242446776961, 0.14035148868243807, 0.6972384519516458)\n", + "(0.995700712751885, 0.1129121042492769, 0.7891108969534214)\n", + "(0.9945860415151221, 0.09644664967345094, 0.8508773815570648)\n", + "(0.9936608100330468, 0.10083893484776896, 0.9609503937682806)\n", + "(0.9957186730752492, 0.09933118850725797, 0.9681455667879805)\n", + "(0.9945806067471119, 0.09860577681686127, 0.9707538004865539)\n", + "(0.994574578639614, 0.09863321444431876, 0.9715101254968863)\n" ] }, { @@ -2341,7 +2341,7 @@ " \n", " \n", " EDM = 3.73e-05 (Goal: 0.0002) \n", - " \n", + " time = 0.3 sec \n", " \n", " \n", " Valid Minimum \n", @@ -2432,7 +2432,7 @@ "│ Migrad │\n", "├──────────────────────────────────┬──────────────────────────────────────┤\n", "│ FCN = 147.6 │ Nfcn = 81, Ngrad = 9 │\n", - "│ EDM = 3.73e-05 (Goal: 0.0002) │ │\n", + "│ EDM = 3.73e-05 (Goal: 0.0002) │ time = 0.3 sec │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", "│ Valid Minimum │ Below EDM threshold (goal x 10) │\n", "├──────────────────────────────────┼──────────────────────────────────────┤\n", @@ -2456,7 +2456,7 @@ "└───────┴────────────────────────────┘" ] }, - "execution_count": 7, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -2467,14 +2467,14 @@ " return jacobi(lambda p: logpdf(xy, *p), par)[0].T\n", "\n", "c = cost.UnbinnedNLL((xdata, ydata), logpdf, log=True, grad=grad)\n", - "m = Minuit(c, mu=1, sigma=2, tau=2, grad=c.grad)\n", + "m = Minuit(c, mu=1, sigma=2, tau=2)\n", "m.limits[\"sigma\", \"tau\"] = (0, None)\n", "m.migrad()" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 19, "id": "4f9704d9", "metadata": {}, "outputs": [], @@ -2501,7 +2501,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "expanded-japanese", "metadata": {}, "outputs": [ @@ -3508,8 +3508,10 @@ ], "source": [ "def density(x, s, b, mu, sigma, tau):\n", - " return s + b, (s * truncnorm.pdf(x, *xr, mu, sigma) + \n", - " b * truncexpon.pdf(x, *xr, 0, tau))\n", + " return s + b, (\n", + " s * truncnorm.pdf(x, *xr, mu, sigma) + b * truncexpon.pdf(x, *xr, 0, tau)\n", + " )\n", + "\n", "\n", "c = cost.ExtendedUnbinnedNLL(xmix, density)\n", "\n", @@ -3528,7 +3530,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "governmental-hardware", "metadata": {}, "outputs": [ @@ -3552,12 +3554,12 @@ "id": "262567e0", "metadata": {}, "source": [ - "Once again, we fit 2D data, using the logdensity mode." + "Once again, we fit 2D data, using the log-density mode." ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "68ba4583", "metadata": {}, "outputs": [ @@ -3738,14 +3740,14 @@ "\n", "Binned fits are computationally more efficient and numerically more stable when samples are large. The caveat is that one has to choose an appropriate binning. The binning should be fine enough so that the essential information in the original is retained. Using large bins does not introduce a bias, but the parameters have a larger-than-minimal variance.\n", "\n", - "In this case, 50 bins are fine enough to retain all information. Using a large number of bins is safe, since the maximum-likelihood method correctly takes poisson statistics into account, which works even if bins have zero entries. Using more bins than necessary just increases the computational cost.\n", + "In this case, 50 bins are fine enough to retain all information. Using many bins is safe, since the maximum-likelihood method correctly takes Poisson statistics into account, which works even if bins have zero entries. Using more bins than necessary just increases the computational cost.\n", "\n", "Instead of a pdf, you need to provide a cdf for a binned fit (which must be vectorized). " ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "robust-groove", "metadata": {}, "outputs": [ @@ -4594,7 +4596,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "838d5fcc-e2b2-4eb6-9831-205ca2753810", "metadata": {}, "outputs": [ @@ -5421,19 +5423,26 @@ ], "source": [ "import functools\n", + "\n", + "\n", "def pdf(xe, z, mu, sigma, tau):\n", - " return (z * truncnorm.pdf(xe, *xr, mu, sigma) + \n", - " (1-z) * truncexpon.pdf(xe, *xr, 0, tau))\n", - " \n", + " return z * truncnorm.pdf(xe, *xr, mu, sigma) + (1 - z) * truncexpon.pdf(\n", + " xe, *xr, 0, tau\n", + " )\n", + "\n", + "\n", "def approximate_cdf(pdf):\n", " @functools.wraps(pdf)\n", " def _cdf(xe, *args, **kwargs):\n", - " return np.r_[0, np.cumsum(pdf((xe[1:]+xe[:-1])/2, *args, **kwargs)*np.diff(xe))]\n", - " \n", + " return np.r_[\n", + " 0, np.cumsum(pdf((xe[1:] + xe[:-1]) / 2, *args, **kwargs) * np.diff(xe))\n", + " ]\n", + "\n", " _cdf.__name__ += \"_cdf\"\n", " _cdf.__qualname__ += \"_cdf\"\n", " return _cdf\n", "\n", + "\n", "cdf = approximate_cdf(pdf)\n", "\n", "c = cost.BinnedNLL(n, xe, cdf)\n", @@ -5463,7 +5472,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "fad40fc9", "metadata": {}, "outputs": [ @@ -6496,7 +6505,7 @@ "id": "a6c8ae4e", "metadata": {}, "source": [ - "The automatically provided visualization for multi-dimensional data set is often not very pretty, but still helps to judge whether the fit is reasonable. There is no obvious way to draw higher dimensional data with error bars in comparison to a model, and so the automatic visualization shows all data bins as a single sequence. You can override the default visualization by assigning a plot function to the cost function `BinnedNLL` (monkey patching), by deriving your own class from `BinnedNLL`, or by calling `Minuit.visualize` with your own plotting function." + "The automatically provided visualization for multidimensional data set is often not very pretty, but still helps to judge whether the fit is reasonable. There is no obvious way to draw higher dimensional data with error bars in comparison to a model, and so the automatic visualization shows all data bins as a single sequence. You can override the default visualization by calling `Minuit.visualize` with your own plotting function, or by assigning a plot function to the cost function `BinnedNLL` (monkey patching), or by deriving your own class from `BinnedNLL`." ] }, { @@ -6513,7 +6522,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "suitable-fetish", "metadata": {}, "outputs": [ @@ -7385,7 +7394,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "aeb53009", "metadata": {}, "outputs": [ @@ -8450,7 +8459,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "id": "ruled-society", "metadata": {}, "outputs": [ @@ -9306,7 +9315,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "happy-diabetes", "metadata": {}, "outputs": [ @@ -9340,7 +9349,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "id": "accredited-dispute", "metadata": {}, "outputs": [ @@ -10209,7 +10218,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "id": "recreational-pride", "metadata": {}, "outputs": [ @@ -11097,7 +11106,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "id": "packed-penguin", "metadata": {}, "outputs": [ @@ -11131,7 +11140,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "id": "arabic-plant", "metadata": {}, "outputs": [ @@ -11854,7 +11863,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "id": "former-dominant", "metadata": {}, "outputs": [ @@ -11881,7 +11890,7 @@ ], "source": [ "m1.visualize()\n", - "plt.plot(c.x, model(c.x, *truth), ls=\"--\", label=\"truth\")" + "plt.plot(c.x, model(c.x, *truth), ls=\"--\", label=\"truth\");" ] }, { @@ -11894,7 +11903,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "id": "c253cfa6", "metadata": {}, "outputs": [ @@ -11935,7 +11944,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "id": "766174be", "metadata": {}, "outputs": [ @@ -12083,14 +12092,14 @@ "id": "2f3f181e", "metadata": {}, "source": [ - "Multivarate fits are difficult to check by eye. Here we use color to indicate the function value.\n", + "Multivariate fits are difficult to check by eye. Here we use color to indicate the function value.\n", "\n", "To guarantee that plot of the function and the plot of the data use the same color scale, we use the same normalising function for pyplot.pcolormesh and pyplot.scatter." ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "id": "bdf44a64", "metadata": {}, "outputs": [ @@ -12124,7 +12133,7 @@ "source": [ "### Robust least-squares\n", "\n", - "The builtin least-squares function also supports robust fitting with an alternative loss functions. See the documentation of `iminuit.cost.LeastSquares` for details. Users can pass their own loss functions. Builtin loss functions are:\n", + "The built-in least-squares function also supports robust fitting with an alternative loss functions. See the documentation of `iminuit.cost.LeastSquares` for details. Users can pass their own loss functions. Builtin loss functions are:\n", "\n", "* `linear` (default): gives ordinary weighted least-squares\n", "* `soft_l1`: quadratic ordinary loss for small deviations ($\\ll 1\\sigma$), linear loss for large deviations ($\\gg 1\\sigma$), and smooth interpolation in between\n", @@ -12134,7 +12143,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "id": "seasonal-singles", "metadata": {}, "outputs": [ @@ -12849,7 +12858,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "id": "available-organic", "metadata": {}, "outputs": [ @@ -12876,7 +12885,7 @@ ], "source": [ "m3.visualize()\n", - "plt.plot(c.x, model(c.x, 1, 2), ls=\"--\", label=\"truth\")" + "plt.plot(c.x, model(c.x, 1, 2), ls=\"--\", label=\"truth\");" ] }, { @@ -12891,7 +12900,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "id": "cheap-truth", "metadata": {}, "outputs": [ @@ -13604,7 +13613,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "id": "regulated-default", "metadata": {}, "outputs": [ @@ -13633,12 +13642,12 @@ "\n", "Robust fitting is very useful if the data are contaminated with small amounts of outliers. It comes with a price, however, the uncertainties are in general larger and the errors computed by Minuit are not correct anymore.\n", "\n", - "Calculating the parameter uncertainty properly for this case requires a so-called sandwich estimator, which is currently not implemented. As an alternative, one can use the bootstrap to compute parameter uncertaintes. We use the `resample` library to do this." + "Calculating the parameter uncertainty properly for this case requires a so-called sandwich estimator, which is currently not implemented. As an alternative, one can use the bootstrap to compute parameter uncertainties. We use the `resample` library to do this." ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "id": "1e9732ca", "metadata": {}, "outputs": [ @@ -13684,7 +13693,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "id": "indoor-wallet", "metadata": {}, "outputs": [ @@ -14403,7 +14412,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "id": "abaee0b1", "metadata": {}, "outputs": [ @@ -14445,7 +14454,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.6" + "version": "3.9.18" }, "vscode": { "interpreter": {