1
0
Fork 0
mirror of https://gitlab.rlp.net/pgp/pgp1-python-einfuehrung synced 2024-10-12 13:24:22 +00:00
pgp1-python-einfuehrung/IminuitExample.ipynb

5108 lines
1.1 MiB
Text
Raw Normal View History

{
"cells": [
{
"cell_type": "markdown",
"id": "8c7b32df-d0c4-4777-89b5-8684b8cb3bc4",
"metadata": {},
"source": [
"# Keywords Script:\n",
"\n",
"* Wiederholen sie die aus dem PGP1 bekannten Konzepte:\n",
" * Messunsicherheiten (Messfehler), statistische und systematische Unsicherheit\n",
" * Korrelation und Antikorrelation\n",
" * Gaussverteilung (Normalverteilung)\n",
" * Arthmetirsches Mittel und Standardabweichung\n",
" * Zentraler Grenzwertsatz\n",
" * Wahrscheinlichkeitsverteilung\n",
"* Binominal-Verteilung (Not sure if needed)\n",
"* Poisson-Verteilung\n",
"\n",
"\n",
"# Aufgaben zur Vorbereitung:\n",
"\n",
"\n",
"* Verknüpfen des Zentralengrenzwertsatzs, der Normalverteilung und des arithmetrishen Mittels (in Python):\n",
" 1. Nimm random nicht Gaußverteilung, e.g., exponential decay\n",
" 2. Plotte Zerfallsverteilung.\n",
" 3. Ziehe 2, 5, 10, 100 verschieden \"Messungen\"\n",
" 4. Berechne Mittelwert von \"gemessenen\" Werte und plote"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 5,
"id": "8f008534-a7a3-482e-9495-611866787c05",
"metadata": {},
"outputs": [],
"source": [
"# import matplotlib.pyplot as plt\n",
"# import numpy as np\n",
"\n",
"# import iminuit\n",
"\n",
"# print(iminuit.__version__)"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 6,
"id": "36435872-d6c4-4e16-8814-82f90342d84d",
"metadata": {},
"outputs": [],
"source": [
"# # Truth\n",
"# R = 10*10**3 # Ohm\n",
"# C = 10*10**-6 # F\n",
"# I0 = 10/R\n",
"\n",
"# def discharge_current(t, I0, R, C):\n",
"# return I0 * np.exp(-t/(R*C))\n",
"\n",
"\n",
"# time_truth = np.arange(0, 1, 0.1)\n",
"\n",
"\n",
"# # Make psuedo measured values:\n",
"# sigma_time = 0.02\n",
"# dtime = np.random.normal(0, sigma_time, len(time_truth))\n",
"# time_mess = time_truth + dtime\n",
"\n",
"# sigma_current = 0.05\n",
"# current_truth = discharge_current(time_truth, I0, R, C)/10**-3\n",
"# current_mes = current_truth + np.random.normal(0, sigma_current, len(current_truth))\n"
]
},
{
"cell_type": "markdown",
"id": "94c87544-8084-4994-8025-44e789b6d9f2",
"metadata": {},
"source": [
"TODO but relastic values not floats with infinit digits add header..."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 7,
"id": "e77a7824-f8fa-43b2-ad98-009e17c05c72",
"metadata": {},
"outputs": [],
"source": [
"# import pandas as pd\n",
"# df = pd.DataFrame()\n",
"# df['time'] = time_mess\n",
"# df['current'] = current_mes\n",
"# df['delta_current'] = sigma_current\n",
"# df['delta_time'] = np.abs(dtime)"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 8,
"id": "54c27237-effd-4396-91d8-b6b4d43d589c",
"metadata": {},
"outputs": [],
"source": [
"# df.to_csv('data/discharge_data.csv')"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 9,
"id": "f03f0f86-7452-4528-b0a1-7e4411dbc410",
"metadata": {},
"outputs": [],
"source": [
"# plt.plot(time_truth, discharge_current(time_truth, I0, R, C)/10**-3, marker='.')\n",
"# plt.errorbar(time_mess, current_mes, xerr=sigma_time, yerr=np.abs(sigma_current), ls='', marker='.')\n",
"# plt.ylabel('Current [mA]')\n",
"# plt.xlabel('Time [s]')\n",
"# plt.show()"
]
},
{
"cell_type": "markdown",
"id": "c9a4045f-f389-40f5-9f19-32f8bbebc75d",
"metadata": {},
"source": [
"# Methode der kleinsten Quadrate\n",
"\n",
"Im folgenden wolllen wir die **Methode der kleinsten Quadrate (Least Squares)** näher beleuchten. Diese Methode wird oft benutzt, um eine Funktion $\\lambda(x; \\ $**$\\phi$**$)$ mit den Funktionsparametern $\\mathbf{\\phi}$ an die gemessenen Punkte **$(x,y)$** anzupassen. Um jedoch die **Methode der kleinsten Quadrate** zu verstehen, wollen wir sie erst einmal anschaulich und halb-mathematisch herleiten. Dabei stüzen wir uns im Folgenden auf eine Herleitung aus dem Buch **\"Statistical Data Analysis\"** von **Glen Cowan**."
]
},
{
"cell_type": "markdown",
"id": "5a8f4ef9-222c-440f-8621-e612a8988fd0",
"metadata": {},
"source": [
"Bevor wir dies jedoch tun, schauen wir uns das Problem des Fittens doch erst einmal anschaulich an. \n",
"\n",
"<figure class=\"image\">\n",
"<img src=\"images/SketchLeastSquares.png\" alt=\"{{ Beispiel PDF }}\" width=70%>\n",
"</figure>\n",
"\n",
"Beim fitten, zum Beispiel einer Geraden (lila) an eine Reihe von Messpunkten (schwarz), wollen wir den Abstand zwischen den einzelnen Messpunkten und der Geraden (orange) möglichst klein halten. Sprich die Summe über alle $\\Delta Y_i$ \n",
"\n",
"$$\\sum_i \\Delta Y_i $$\n",
"\n",
"sollte möglichst klein sein, wobei $\\Delta Y_i$ durch \n",
"\n",
"$$ \\Delta Y_i = y_i f(x_i, \\vec{\\theta})$$\n",
"\n",
"gegeben ist und $f(x, \\vec{\\theta})$ unsere Fitfunktion repräsentiert. Hierbei Symbolisiert $\\vec{\\theta}$ die Parameter unserer Funktion. Sprich im Fall einer Geraden die Steigung $m$ und den Offset $y_0$ ($\\vec{\\theta}=(m, y_0)$). \n",
"\n",
"Darüber hinaus sollte die Richtung des Abstandes, sprich ob ein Messpunkt unterhalb oder oberhalb der Fitfunktion liegt keine Rolle spielen. Daher quadrieren wir das Ganze und erhalten somit\n",
"\n",
"$$ LS = \\sum_i = (y_i f(x_i, \\theta))^2$$\n",
"\n",
"Dies ist die allgemeinste Form der Methode der kleinsten Quadrate. Sie besagt, dass die Funktion welche die Messpunkte am besten beschreibt, sprich die optimalen Werte für $\\vec{\\theta}$ aufweist, den Ausdruck LS minimiert. \n",
"\n",
"Nun weisen unsere Messpunkte nicht nur Werte für X und Y aus, sondern sind noch zusätzlich durch einen Messunsicherheit (Messfehler) charakterisiert. Diese sollte wir natürlich bei der Überlegung unserer Parameter $\\vec{\\theta}$ berücksichtigen. Sprich Messwerte mit einer großen Unsicherheit sollten weniger stark berücksichtigt werden wie Messwerte mit einer kleinen Unsicherheit. Dies können wir gewährleisten sofern wir die Distanzen $\\Delta Y_i$ mit den jeweiligen Unsicherheiten $\\Delta y_i$ gewichten, sprich \n",
"\n",
"$$ \\chi^2 = \\sum_i =\\frac{(y_i f(x_i, \\theta))^2}{\\Delta y_i^2}$$\n",
"\n",
"berechnen. Das Quadrieren der Unsicherheiten sorgt dafür, dass der Ausdruck dimensionslos wird. Diese besondere Form der kleinsten Quadrate nennt man auch oft $\\chi^2$-Fit. Wir werden später noch einmal genauer beleuchten warum. "
]
},
{
"cell_type": "markdown",
"id": "1153a474-8afe-44ae-8511-b403a4ad861d",
"metadata": {},
"source": [
"Nun wollen wir uns erst einmal ein Beispiel angucken, wie dies in der Praxis aussieht. In der nachfolgenden Animation wird ein Ohmschwer Widerstand an eine Reihe von Spannungs- und Strommessungen gefittet. Dies entspricht unserem obigen Geradenbeispiel. \n",
"<figure class=\"image\">\n",
"<img src=\"images/MaterialPythonkurs092018/Fitting_gif.gif\" alt=\"{{ Least Square Beispiel }}\" width=100%>\n",
"</figure>\n",
"<span style=\"color:red\">TODO: Update animation use only LS without uncertainties?</span>\n",
"Wie die Animation zeigt, werden so lange verschiedene Widerstände ausprobiert, bis ein Wert gefunden wurde bei dem das $\\chi^2$ klein wird. Dieses variieren der Widerstandswerte passiert nicht zufällig, sondern basiert auf einem Algorithmus für ein Optimierungsverfahren. \n",
"\n",
"Es gibt verschiedene Arten von Algorithmen um Minimierungsprobleme zu lösen. Wie diese genau aufgebaut sind, lernen Sie in anderen Progrmmierveranstaltungen wie zum Beispiel *Programmieren für Physiker* oder *Computer in der Wissenschaft*. Zum Glück haben uns bereits in Python andere Menschen diese Arbeit abgenommen. Im folgenden wollen wir uns das package `imnuit` etwas genauer angucken, welches bereits ein sehr umfangreiches und mächtiges Fittingtool darstellt. \n",
"\n",
"[iminuit](https://iminuit.readthedocs.io/en/stable/tutorials.html) verfügt auch über eine exzellente Dokumentation, mit Hilfe dessen Sie auch komplexere Probleme lösen können."
]
},
{
"cell_type": "markdown",
"id": "702b9a12-539d-43b5-8314-7f8dcdf93cda",
"metadata": {},
"source": [
"Um mit Hilfe von `imnuit` etwas zu fitten brauchen wir zunächst einmal ein paar Messdaten und ein Fitmodel. Im Folgenden wollen wir die Entladekurve eines Kondensators mit der Kapazität $C$ über einen Widerstand $R$ bestimmen. Die Entladekurve ist durch eine einfache Exponentialfunktion der Form \n",
"\n",
"$$ I = I_0 \\exp\\{-t/RC\\}$$\n",
"\n",
"gegeben. Die Messdaten befinden sich in einer CSV-Datei im Ordner `data`. Die CSV-Datei kann mit Hilfe des `pandas` package eingelesen werden. [pandas](https://pandas.pydata.org/) ist ähnlich wie `numpy` ein package welches eine Fülle an Funktionen zum Verarbeiten und Verwalten von Daten bereitstellt. Es gehört ähnlich wie auch `numpy`, `scipy` und `matplotlib` zu den Standardbibliotheken, welche sehr häufig in der Wissenschaft verwendet werden. Aufgrund der zeitlichen Limitierung des Versuchstages können wir leider nicht auf alle Funktionen von `pandas` eingehen und wollen uns im Folgenden lediglich auf die Basics beschränken. Für ihre zukünftigen Praktika lohnt es sich jedoch noch mehr über `pandas` in Ihrer Eigenstudienzeit zu lernen."
]
},
{
"cell_type": "markdown",
"id": "5215840a-1276-49c1-9181-274cd8a2b4bf",
"metadata": {},
"source": [
"CSV-Datein können Sie wie folgt eingelesen werden\n",
"<span style=\"color:red\">TODO: Add dummy file with dummy header to show things...</span>"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 10,
"id": "f8ef1be0-a42d-4a11-b674-c2ed099fefcb",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"data_frame = pd.read_csv('data/discharge_data.csv')"
]
},
{
"cell_type": "markdown",
"id": "15800aa8-8a7f-4d59-ab06-3edc6bb1e443",
"metadata": {},
"source": [
"Dabei gibt pandas die Daten als so genannten DataFrames zurück. Dies sind Objekte welche ähnlich wie strukturierte `numpy.arrays` zu behandeln sind. DataFrames werden allgemein als Tabellen dargestellt."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 11,
"id": "f14ca80f-e0d7-4447-9335-b3744f7a028f",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unnamed: 0</th>\n",
" <th>time</th>\n",
" <th>current</th>\n",
" <th>delta_current</th>\n",
" <th>delta_time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>0.000637</td>\n",
" <td>1.066538</td>\n",
" <td>0.05</td>\n",
" <td>0.000637</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>0.088553</td>\n",
" <td>0.406316</td>\n",
" <td>0.05</td>\n",
" <td>0.011447</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>0.194773</td>\n",
" <td>0.143093</td>\n",
" <td>0.05</td>\n",
" <td>0.005227</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>0.306413</td>\n",
" <td>0.078141</td>\n",
" <td>0.05</td>\n",
" <td>0.006413</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>0.405285</td>\n",
" <td>0.065042</td>\n",
" <td>0.05</td>\n",
" <td>0.005285</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>5</td>\n",
" <td>0.507390</td>\n",
" <td>0.011885</td>\n",
" <td>0.05</td>\n",
" <td>0.007390</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>6</td>\n",
" <td>0.613279</td>\n",
" <td>-0.018824</td>\n",
" <td>0.05</td>\n",
" <td>0.013279</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>7</td>\n",
" <td>0.707501</td>\n",
" <td>0.044513</td>\n",
" <td>0.05</td>\n",
" <td>0.007501</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>8</td>\n",
" <td>0.790479</td>\n",
" <td>0.006881</td>\n",
" <td>0.05</td>\n",
" <td>0.009521</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>9</td>\n",
" <td>0.883672</td>\n",
" <td>-0.019052</td>\n",
" <td>0.05</td>\n",
" <td>0.016328</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Unnamed: 0 time current delta_current delta_time\n",
"0 0 0.000637 1.066538 0.05 0.000637\n",
"1 1 0.088553 0.406316 0.05 0.011447\n",
"2 2 0.194773 0.143093 0.05 0.005227\n",
"3 3 0.306413 0.078141 0.05 0.006413\n",
"4 4 0.405285 0.065042 0.05 0.005285\n",
"5 5 0.507390 0.011885 0.05 0.007390\n",
"6 6 0.613279 -0.018824 0.05 0.013279\n",
"7 7 0.707501 0.044513 0.05 0.007501\n",
"8 8 0.790479 0.006881 0.05 0.009521\n",
"9 9 0.883672 -0.019052 0.05 0.016328"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_frame"
]
},
{
"cell_type": "markdown",
"id": "fc24d5fa-d3c0-4866-b18a-9dd07768a222",
"metadata": {},
"source": [
"Um die Daten aus einer Bestimmente Spalte zu bekommen können diese einfach mit dem Spaltennamen aufgerufen werden:"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 12,
"id": "93b7cbb1-1095-4a53-83d9-7b32f068daea",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 0.000637\n",
"1 0.088553\n",
"2 0.194773\n",
"3 0.306413\n",
"4 0.405285\n",
"5 0.507390\n",
"6 0.613279\n",
"7 0.707501\n",
"8 0.790479\n",
"9 0.883672\n",
"Name: time, dtype: float64"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_frame['time']"
]
},
{
"cell_type": "markdown",
"id": "4476302c-eb65-409a-b1aa-2342ecbd9c88",
"metadata": {},
"source": [
"oder"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 13,
"id": "969d8afa-5d52-4e01-8b64-ddab090891b8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 1.066538\n",
"1 0.406316\n",
"2 0.143093\n",
"3 0.078141\n",
"4 0.065042\n",
"5 0.011885\n",
"6 -0.018824\n",
"7 0.044513\n",
"8 0.006881\n",
"9 -0.019052\n",
"Name: current, dtype: float64"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_frame['current']"
]
},
{
"cell_type": "markdown",
"id": "32249263-ec9f-44de-81b7-7a6c69e23332",
"metadata": {},
"source": [
"Einzelne Messwerte lassen sich mit Hilfe von `.loc` bestimemn."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 14,
"id": "e4b44637-8e25-46c1-863d-3cd7604f52dd",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.0118852615051639"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_frame.loc[5, 'current']"
]
},
{
"cell_type": "markdown",
"id": "a2c0c04b-be37-482d-aabc-802bfa2965d2",
"metadata": {},
"source": [
"Sollten Sie eine Spalte an Messdaten in ein `numpy.array` umwandeln wollen so können Sie dies über"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 15,
"id": "f246f55e-5fc8-427c-990d-3e97799b5aeb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.06653795, 0.40631626, 0.1430927 , 0.07814083, 0.06504185,\n",
" 0.01188526, -0.01882397, 0.04451315, 0.00688072, -0.01905164])"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_frame['current'].values"
]
},
{
"cell_type": "markdown",
"id": "3d2bd9ed-852d-4448-a051-a6f677ea891d",
"metadata": {},
"source": [
"Die Messdaten können Sie auch wie gewohnt mit Hilfe von `matplotlib` darstellen."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 16,
"id": "e3898686-3926-48a0-be4c-4d460a1792f3",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"plt.errorbar(\n",
" data_frame['time'], \n",
" data_frame['current'], \n",
" data_frame['delta_current'], \n",
" ls='', \n",
" marker='.', \n",
" color='k'\n",
")\n",
"plt.xlabel('Time []')\n",
"plt.ylabel('Current []')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "100a4fe4-a5c4-4be3-a7f7-13337b97a194",
"metadata": {},
"source": [
"Nun wollen wir die Messdaten mit Hilfe von `iminuit` fitten. Hierzu müssen wir zunächste zwei Module des packages importieren und eine Funktion für die Entladekurve des Kondensators definieren:"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 17,
"id": "2ffe340b-cd0f-45ec-b5b8-42e7a0349d4c",
"metadata": {},
"outputs": [],
"source": [
"from iminuit import Minuit, cost\n",
"import numpy as np\n",
"\n",
"def discharge_current(t, I0, R, C):\n",
" return I0 * np.exp(-t/(R*C))"
]
},
{
"cell_type": "markdown",
"id": "ef87da8f-7af9-4e3f-af63-c28a2e1d9830",
"metadata": {},
"source": [
"Nun können wir den fit selbst durchführen. Hierzu muss zuerst mittels dem `cost` Modul eine sogenannte Kostenfunktion erstellt werden. Die Kostenfunktion ist im Grunde unsere $\\chi^2$ \n",
"\n",
"$$ \\chi^2 = \\sum_i =\\frac{(y_i f(x_i, \\theta))^2}{\\Delta y_i^2}$$\n",
"\n",
"Funktion welche minimiert werden soll. Dies ist bereits bei `iminuit` für uns vordefiniert. Anschließend können wir die genutzt Kostenfunktion über `Minuit` minimieren lassen. Hierzu müssen wir zunächst geeignete Startwerte für den Minimierungsprozess vorgeben. Diese sollten im Idealfall nicht allzu weit von den wahren Werten entfernt liegen. Wir werden an einem späteren Beispiel noch einmal genauer zeigen, wie man hier vorgehen kann. Um den Minimierungsprozess zu starten muss noch am Ende `migrad()` aufgerufen werden."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 18,
"id": "bf36b7b9-fb20-47b7-8538-479026b48fb2",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 2.707 (χ²/ndof = 0.4) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 87 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 2.18e-10 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> time = 0.5 sec </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#FFF79A;color:black\" title=\"Is covariance matrix accurate?\"> APPROXIMATE </td>\n",
" <td style=\"text-align:center;background-color:#c15ef7;color:black\" title=\"Is covariance matrix positive definite?\"> NOT pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#c15ef7;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> FORCED </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> I0 </td>\n",
" <td> 1.07 </td>\n",
" <td> 0.05 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> R </td>\n",
" <td> 0.03e6 </td>\n",
" <td> 0.05e6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> C </td>\n",
" <td> 3e-6 </td>\n",
" <td> 5e-6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> I0 </th>\n",
" <th> R </th>\n",
" <th> C </th>\n",
" </tr>\n",
" <tr>\n",
" <th> I0 </th>\n",
" <td> 0.00253 </td>\n",
" <td style=\"background-color:rgb(248,248,250);color:black\"> -34.3309 <strong>(-0.014)</strong> </td>\n",
" <td style=\"background-color:rgb(248,248,250);color:black\"> -3.459e-9 <strong>(-0.014)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> R </th>\n",
" <td style=\"background-color:rgb(248,248,250);color:black\"> -34.3309 <strong>(-0.014)</strong> </td>\n",
" <td> 2.25e+09 </td>\n",
" <td style=\"background-color:rgb(120,120,250);color:black\"> -224.592785048e-3 <strong>(-0.997)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> C </th>\n",
" <td style=\"background-color:rgb(248,248,250);color:black\"> -3.459e-9 <strong>(-0.014)</strong> </td>\n",
" <td style=\"background-color:rgb(120,120,250);color:black\"> -224.592785048e-3 <strong>(-0.997)</strong> </td>\n",
" <td> 2.25e-11 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 2.707 (χ²/ndof = 0.4) │ Nfcn = 87 │\n",
"│ EDM = 2.18e-10 (Goal: 0.0002) │ time = 0.5 sec │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │APPROXIMATE│NOT pos. def.│ FORCED │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
"│ 0 │ I0 │ 1.07 │ 0.05 │ │ │ │ │ │\n",
"│ 1 │ R │ 0.03e6 │ 0.05e6 │ │ │ │ │ │\n",
"│ 2 │ C │ 3e-6 │ 5e-6 │ │ │ │ │ │\n",
"└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌────┬───────────────────────────────────────────────────────┐\n",
"│ │ I0 R C │\n",
"├────┼───────────────────────────────────────────────────────┤\n",
"│ I0 │ 0.00253 -34.3309 -3.459e-9 │\n",
"│ R │ -34.3309 2.25e+09 -224.592785048e-3 │\n",
"│ C │ -3.459e-9 -224.592785048e-3 2.25e-11 │\n",
"└────┴───────────────────────────────────────────────────────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Kostenfunktion:\n",
"ls = cost.LeastSquares(\n",
" data_frame['time'],\n",
" data_frame['current'], \n",
" data_frame['delta_current'], \n",
" discharge_current,\n",
")\n",
"\n",
"# Minimierung\n",
"mi = Minuit(ls, # Kostenfunktion \n",
" I0=0.9, # Startwerte\n",
" R=10*10**3, \n",
" C=10**-6\n",
" )\n",
"mi.migrad()"
]
},
{
"cell_type": "markdown",
"id": "b5df2d60-8284-4757-96c8-7f26afc17942",
"metadata": {},
"source": [
"Wie ihr seht gibt euch minuit euch vier (<span style=\"color:red\">Old iminuit version does not show plot... Check which version is used on jupyter hub.. </span>) verschiedene Objekte zurück. Für euch am wichtigsten ist die erste Tabelle, welche euch zeigt, ob euer Fit funktioniert hat. Im Allgemeinen gilt sind hier alle Felder grün hat euer Fit funktioniert, gelbe Felder können ein Problem andeuten müssen sie aber nicht und lila Felder bedeuten, dass etwas mit eurem Fit nicht in Ordnung ist. Die Bedeutungen der einzelnen Felder für unseren obigen Fit sind auch nochmal in der nachfolgenden Abbildung einzeln erklärt. Die Bedeutung der meisten Felder werden wir noch im laufe des Kurses kennen lernen. \n",
"\n",
"<figure class=\"image\">\n",
"<img src=\"images/FitPerformance.png\" alt=\"{{Fit Performance }}\" width=100%>\n",
"</figure>\n",
"\n",
"Wie wir unserer Tabelle entnehmen können gibt es also ein Problem mit unserem Fit um besser verstehen zu können was das Problem sein könnte wollen wir uns auch noch die anderen Outputs angucken.\n",
"\n",
"Die zweite Tabelle zeigt uns die bestimmten Werte für die Parameter in der Spalte `Value` und die deren Unsicherheiten in der Spalte `Hess error`. Hierbei fällt auf das für unseren obigen Fit die Unsicherheiten der Parameter $R$ und $C$ größer sind als die bestimmten Werte selbst. \n",
"\n",
"Die dritte Tabelle ist die sogennnante **Kovarianzmatrix**. Die Kovarianzmatrix hat als Einträge auf ihrer **Hauptdiagonalen** die **Varianzen der entsprechenden Parameter** auf der **Nebendiagonalen** stehen die **Kovarianzen**. Die Werte in Klammern gibt die **Korrelation** zwischen den entspechenden Parameters an. Sind zwei Parameter stark **korreliert** wird das entsprechende Feld **blau** dargestellt, bei einer **antikorrelation** ist das Feld **rot**. \n",
"\n",
"Die letzte Ausgabe ist ein Plot unserer Messwerte zusammen mit der Fitfunktion basierend auf den Parametern des besten Fits."
]
},
{
"cell_type": "markdown",
"id": "72665daa-1d74-41da-8b9a-1e4c427eed07",
"metadata": {},
"source": [
"Obwohl unser Fit unsere Messdaten gut Widerspiegelt scheint es ein Problem mit der Bestimmung einiger Parameter zu geben. Die große Unsicherheit in $R$ und $C$ deutet an, dass hier das Problem liegt. Um dies zu bestätigen können wir uns einmal das reduzierte $\\chi^2(x, I_0, R, C)$ als Funktion des entsprechenden Parameters von `iminuit` plotten lassen, während wir die anderen Parameter, so wie die x-Werte konstant lassen. \n",
"\n",
"Für $I_0$ sieht das entsprechende Profil so aus:"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 19,
"id": "d3230cb6-fbe3-4093-ba09-5271dc168a4d",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/opt/XENONnT/anaconda/envs/XENONnT_development/lib/python3.9/site-packages/iminuit/minuit.py:2353: IMinuitWarning: Specified nsigma bound, but error matrix is not accurate\n",
" warnings.warn(\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mi.draw_profile('I0')\n",
"plt.ylabel('$\\chi^2(I_0, x, R, C)/ndof$')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "b837e542-d3c9-4f61-a8d1-4f22db7d5137",
"metadata": {},
"source": [
"Bei den anderen beiden Parametern ist dies nicht der Fall:"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 20,
"id": "af339c6e-f0e7-40cd-a2cf-61aaaa4df1e4",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mi.draw_profile('R')\n",
"plt.ylabel('$\\chi^2(R, x, I_0, C)/ndof$')\n",
"plt.show()\n",
"\n",
"mi.draw_profile('C')\n",
"plt.ylabel('$\\chi^2(C, x, I_0 R)/ndof$')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "499ffb9a-00a7-4c06-ada4-1d3a41a7f1d4",
"metadata": {},
"source": [
"Das liegt daran, dass $R$ und $C$ vollständig korreliert sind. Reduziert `iminuit` $C$ um ein Faktor zwei so wird dies dadurch kompenziert, dass das optimale Minimum verlangt, dass $R$ um einen Faktor zwei größer sein muss. Sprich es ist ohne weitere Infromation nicht möglich $R$ und $C$ näher zu bestimmen lediglich das Produkt der beiden Größen.\n",
"\n",
"Sprich wir müssen in unser Fitfunktion $R$ und $C$ durch die Zerfallszeit $\\tau$ ersetzen und schreiben\n",
"\n",
"$$ I = I_0 \\exp\\{-t/\\tau\\}$$\n",
"\n",
"mit $\\tau = R \\cdot C$.\n",
"\n",
"Fürhen wir nun erneut den Fit durch erhalten wir ein richtiges Ergebniss..."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 21,
"id": "847419a7-d77b-4207-8607-44af9d615ffc",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 2.707 (χ²/ndof = 0.3) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 87 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 1.11e-05 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> I0 </td>\n",
" <td> 1.07 </td>\n",
" <td> 0.05 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> tau </td>\n",
" <td> 0.097 </td>\n",
" <td> 0.011 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> I0 </th>\n",
" <th> tau </th>\n",
" </tr>\n",
" <tr>\n",
" <th> I0 </th>\n",
" <td> 0.00254 </td>\n",
" <td style=\"background-color:rgb(198,198,250);color:black\"> -0.22e-3 <strong>(-0.396)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau </th>\n",
" <td style=\"background-color:rgb(198,198,250);color:black\"> -0.22e-3 <strong>(-0.396)</strong> </td>\n",
" <td> 0.000116 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 2.707 (χ²/ndof = 0.3) │ Nfcn = 87 │\n",
"│ EDM = 1.11e-05 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
"│ 0 │ I0 │ 1.07 │ 0.05 │ │ │ │ │ │\n",
"│ 1 │ tau │ 0.097 │ 0.011 │ │ │ │ │ │\n",
"└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌─────┬───────────────────┐\n",
"│ │ I0 tau │\n",
"├─────┼───────────────────┤\n",
"│ I0 │ 0.00254 -0.22e-3 │\n",
"│ tau │ -0.22e-3 0.000116 │\n",
"└─────┴───────────────────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from iminuit import Minuit, cost\n",
"\n",
"def discharge_current2(t, I0, tau):\n",
" return I0 * np.exp(-t/tau)\n",
"\n",
"ls = cost.LeastSquares(\n",
" data_frame['time'],\n",
" data_frame['current'], \n",
" data_frame['delta_current'], \n",
" discharge_current2\n",
")\n",
"mi = Minuit(ls, I0=0.9, tau=0.3)\n",
"mi.migrad()"
]
},
{
"cell_type": "markdown",
"id": "a46c76ec-5b00-48f4-9a46-2ea083ca5dba",
"metadata": {},
"source": [
"... und die Werte und Fehler lassen sich über ..."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 22,
"id": "69f540a5-e89b-4c24-aa7e-b03eaedb28d1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.0670397937137222"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mi.values['I0']"
]
},
{
"cell_type": "markdown",
"id": "66733c05-692d-46e3-ae82-6f84d66ef28c",
"metadata": {},
"source": [
"... bzw. ..."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 23,
"id": "66e6da5b-ff32-4982-a3aa-5b9b93262073",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.050402330240634355"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mi.errors['I0']"
]
},
{
"cell_type": "markdown",
"id": "c670cd3f-fcfb-4cfc-a8d4-eded75e9a669",
"metadata": {},
"source": [
"... für jeden Parameter auslesen. Dies lässt sich nun auch nutzen, um unsere Messwerte samt Fit in einem etwas schöneren Plot mit Achsenbeschriftungen darzustellen. Hierbei können wir ausnutzen, dass `iminuit` die Parameter in der Reihenfolge der Argumente unser definierten Fitfunktion speichert."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 24,
"id": "45fcf856-c58e-424d-8fd7-15037cb6698e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.errorbar(data_frame['time'], \n",
" data_frame['current'], \n",
" xerr=data_frame['delta_time'], \n",
" yerr=data_frame['delta_current'], \n",
" ls='', \n",
" marker='.',\n",
" label='Data'\n",
" )\n",
"x = np.arange(0, 1, 0.01)\n",
"plt.plot(x, \n",
" discharge_current2(x, *mi.values), # Sternchen operator zum entpacken der Werte\n",
" color='k',\n",
" label='Best fit'\n",
" )\n",
"plt.legend()\n",
"plt.ylabel('Current [mA]')\n",
"plt.xlabel('Time [s]')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "b47df6fb-7fd6-473c-b3d7-af937b5518f0",
"metadata": {},
"source": [
"# <span style=\"color:red\">ADD TASK HERE </span>"
]
},
{
"cell_type": "markdown",
"id": "1cd73609-8593-4725-a7c4-317d6a48a72f",
"metadata": {},
"source": [
"# Mathematisch motivierete Herleitung des $\\chi^2$-Fits:\n",
"\n",
"Nach diesen anfänglichen Beispielen wollen wir uns eine semi-mathematische Herleitung des $\\chi^2$-Fits angucken um etwas besser zu verstehen, warum diese Methode für uns in der Physik so wichtig ist. In unserem Grundpraktikum haben wir bereits gelernt, dass Messwerte durch Zufallszahlen $x_i$ representiert werden und einer gewissen **Wahrscheinlichkeitsdichtefunktion (probability density function)** $f(x)$ unterliegen.\n",
"\n",
"<figure class=\"image\">\n",
"<img src=\"images/MaterialPythonkurs092018/PorbDensFun.png\" alt=\"{{ Beispiel PDF }}\" width=70%>\n",
"</figure>\n",
"\n",
"\n",
"Eine **pdf** gibt an, mit welcher **Wahrscheinlichkeit ein Wert $x_i$** innerhalb eines **infinitesimalen Intervals $\\text{d}x_i$** zu finden ist. Des Weitren gilt, dass die Gesamtwahrscheinlichkeit gegeben ist durch $\\int_S f(x) dx = 1$. \n",
"\n",
"Nun betrachten wir folgendes Beispiel: In unserem Labor messen wir genau drei mal die Raumtemperartur T. Auch hier gilt, dass unsere Messung der einzelnen $T_i$ einer gewissen **Wahrscheinlichkeitsdichtefunktion** folgen. Betrachten Sie nun das folgende Bild; Welche **Wahrscheinlichkeitsdichtefunktion** passt besser zu den gezeigten Daten und **Warum?**\n",
"\n",
"<figure class=\"image\">\n",
"<img src=\"images/MaterialPythonkurs092018/ProbMaxTemp.png\" alt=\"{{ Beispiel PDF }}\" width=100%>\n",
"</figure>\n",
"\n",
"Die rechte Verteilung spiegelt unsere Messdaten besser wieder. Dies können wir auch mathematisch ausdrücken. Für $N$ voreinander unabhängige Zufallszahlen bzw. Messpunkte (in unserem Beispiel $N = 3$) ist die Gesamtwahrscheinlichkeit gegeben durch das Produkt der einzelnen Wahrscheinlichkeitsdichten $f(x_i, \\theta)$ multipliziert mit dem jeweiligen infinitesimalen element $dx_i$\n",
"\n",
"$$\\prod_{i = 1}^{N} f(x_i,\\theta) \\ dx_i \\text{ für alle } x_i \\text{ in } [x_i, x_i + dx_i]$$\n",
"\n",
"wobei $x_i$ in unserem Beispiel den Messpunkten $T_i$ und $f(x_i,\\theta)$ unserer Gausverteilung mit $\\theta = (\\mu, \\sigma)$ entspricht. Sprich sofern unsere Werte gut von der jeweiligen **Wahrscheinlichkeitsdichtefunktion** repräsentiert werden, d.h. wir die richtigen Parameter $\\theta$ gewählt haben (wie im rechten oberen Plot), gilt \n",
"\n",
"$$ \\prod_{i = 1}^{N} f(x_i,\\theta) dx_i \\ \\ \\text{ist} \\ \\textbf{maximal.}$$\n",
"\n",
"Da die einzelnen $dx_i$ von unseren Parametern $\\theta$ unabhängig sind, gilt die gleiche Argumentation auch für \n",
"\n",
"$$ \\mathcal{L}(x_1 ... x_N; \\theta_1 ... \\theta_N) = \\prod_{i = 1}^{N} f(x_i,\\theta)$$ \n",
"\n",
"wobei $\\mathcal{L}(x_1 ... x_N; \\theta_1 ... \\theta_N)$ die sogenannte **\"likelihood\"** function darstellt.\n",
"\n",
"Wie kommen wir nun von der **likelihood function** auf unsere **Methode der kleinsten Quadrate** und das Fitten einer Funktion $\\lambda(x; \\ $**$\\phi$**$)$ an die gemessenen Punkte **$(x,y)$**? Dazu brauche wir noch einen Zwischenschritt. Oftmals ist es einfacher, statt die **likelihood function** zu maximieren, die so genannte **log likelihood function**\n",
"\n",
"$$ \\log( \\mathcal{L}(x_1 ... x_N; \\theta_1 ... \\theta_N)) = \\sum_{i = 1}^{N} \\log(f(x_i,\\theta))$$\n",
"\n",
"zu maximieren. Dies ist im Grunde das Gleiche, da der Logarithmus eine monoton-steigende Funktion ist. Auch in unserem Fall der **Methode der kleinsten Quadrate** benötigen wir die **log likelihood function**. \n",
"\n",
"Stellen Sie sich nun vor, wir haben eine Messung mit $N$ voneinander unabhängigen Messpunkten (x,y). Des Weiteren nehmen wir an, dass alle $x_i$ ohne Fehler sind und dass unsere $y_i$ gaußförmig um einen unbekannten Wahrenwert $\\lambda_i$ (sprich $\\lambda_i$ entspricht dem Erwartungswert $\\mu_i$ unserer Gaußverteilung) mit einer bekannten Varianz $\\Delta y_i^2$ verteilt sind (Diese Annahme lässt sich mit dem zentralen Grenzwertsatz begründen, so lange der Fehler sich aus der Summe kleiner Fehler zusammensetzt). Die dazugehörige **likelihood function** ist dann gegeben durch:\n",
"\n",
"$$ \\mathcal{L}(y_1 ... y_N; \\lambda_1 ... \\lambda_N, \\Delta y_1 ... \\Delta y_N)) = \\prod_{i = 1}^{N}\\frac{1}{\\sqrt{2 \\pi \\Delta y_i^2}} \\cdot \\exp \\bigg( \\frac{ -(y_i - \\lambda_i)^2}{2 \\cdot \\Delta y_i^2}\\bigg)$$\n",
"\n",
"Beziehungsweise die **log likelihood function** mit $\\lambda_i = \\lambda(x_i; \\phi)$ ergibt sich zu\n",
"\n",
"$$ \\log(\\mathcal{L}(y, \\theta)) \\approx -\\frac{1}{2} \\sum_{i = 1}^{N}\\bigg( \\frac{ (y_i - \\lambda(x_i; \\phi))^2}{\\Delta y_i^2}\\bigg)$$\n",
"\n",
"wobei die konstanten Terme, welche nicht von unserer Funktion $\\lambda(x_i; \\phi)$ abhängen, vernachlässigt worden sind. Durch den Faktor $-\\frac{1}{2}$ ist das Maximieren dieser **log likelihood function** gleich dem Minimieren von\n",
"\n",
"$$ \\chi(\\phi_1 ... \\phi_N)^2 = \\sum_{i = 1}^{N} \\frac{ (y_i - \\lambda(x_i; \\phi))^2}{\\Delta y_i^2}$$\n",
"\n",
"Diese Funktion ist unsere gesuchte **Methode der kleinsten Quadrate**. Mit ihrer Hilfe kann eine beliebige Funktion $\\lambda(x; \\phi)$, welche liniear in ihren Parametern $\\phi$ ist, an unsere Messdaten $(x,y\\pm\\Delta y)$ gefittet werden. Dabei stellt der Fitprozess selbst lediglich ein Minimierungsproblem dar. Im Folgenden sind unsere Annahmen noch einmal grafisch in einem Beispiel dargestellt.\n",
"\n",
"<figure class=\"image\">\n",
"<img src=\"images/MaterialPythonkurs092018/LeastSquare.png\" alt=\"{{ Least Square Beispiel }}\" width=100%>\n",
"</figure>\n",
"\n",
"\n",
"Need to update figure above... sigma is touching best fit too often..."
]
},
{
"cell_type": "markdown",
"id": "be4a8d21-29db-4866-9117-8746b80d5945",
"metadata": {},
"source": [
"How does optimization work.... ? \n",
"\n",
"Use verbose mode to check steps.... \n",
"\n",
"=> Alternating specific value check if cost function minimizes.... If yes continue if not start changing other parameter:"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 41,
"id": "43bfd15e-7b68-4b70-bc06-0b23f89f7bff",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2023-08-14 15:01:33 +00:00
"(0.9, 10000.0, 1e-06) -> 99.20912665811522\n",
"(0.9000900000000001, 10000.0, 1e-06) -> 99.19412063461034\n",
"(0.89991, 10000.0, 1e-06) -> 99.22413838602546\n",
"(0.9002604809700815, 10000.0, 1e-06) -> 99.16571136645308\n",
"(0.8997395190299186, 10000.0, 1e-06) -> 99.25258973321158\n",
"(0.9, 10001.0, 1e-06) -> 99.2081333982375\n",
"(0.9, 9999.0, 1e-06) -> 99.21012010104333\n",
"(0.9, 10010.0, 1e-06) -> 99.19920228362008\n",
"(0.9, 9990.0, 1e-06) -> 99.21906933767059\n",
"(0.9, 10000.0, 1.0001e-06) -> 99.2081333982375\n",
"(0.9, 10000.0, 9.999e-07) -> 99.21012010104333\n",
"(0.9, 10000.0, 1.001e-06) -> 99.19920228362008\n",
"(0.9, 10000.0, 9.989999999999999e-07) -> 99.21906933767059\n",
"(1.1367992341436675, 15426.65629293471, 1.5426656292934658e-06) -> 71.48428998018905\n",
"(1.1639942960414291, 16049.877285679564, 1.6049877285679507e-06) -> 69.75101904460233\n",
"(1.308096945474447, 19352.234036123315, 1.9352234036123227e-06) -> 64.0373348681763\n",
"(1.377047580024234, 20932.354834379075, 2.093235483437897e-06) -> 65.47264288596953\n",
"(1.3083067929414927, 19352.234036123315, 1.9352234036123227e-06) -> 64.06897571595725\n",
"(1.3078870980074015, 19352.234036123315, 1.9352234036123227e-06) -> 64.00572838249478\n",
"(1.308096945474447, 19363.537683275055, 1.9352234036123227e-06) -> 63.99858990110189\n",
"(1.308096945474447, 19340.930388971574, 1.9352234036123227e-06) -> 64.0760877366588\n",
"(1.308096945474447, 19352.234036123315, 1.9365250134806992e-06) -> 63.99272090590841\n",
"(1.308096945474447, 19352.234036123315, 1.933921793743946e-06) -> 64.08195930724722\n",
"(1.308096945474447, 19352.234036123315, 1.9374628097120974e-06) -> 63.96058355345421\n",
"(1.308096945474447, 19352.234036123315, 1.932983997512548e-06) -> 64.11411719500667\n",
"(1.4518988196469205, 28189.753065444456, 2.8189750163700463e-06) -> 61.272614820982845\n",
"(1.385496103118641, 24108.893380587735, 2.4108891818768406e-06) -> 49.65617486041412\n",
"(1.385672043336562, 24108.893380587735, 2.4108891818768406e-06) -> 49.694760759553645\n",
"(1.3853201629007201, 24108.893380587735, 2.4108891818768406e-06) -> 49.61761439538809\n",
"(1.385496103118641, 24122.984567537602, 2.4108891818768406e-06) -> 49.6271750967005\n",
"(1.385496103118641, 24094.80219363787, 2.4108891818768406e-06) -> 49.6852350578246\n",
"(1.385496103118641, 24117.03763372327, 2.4108891818768406e-06) -> 49.63940655944544\n",
"(1.385496103118641, 24100.7491274522, 2.4108891818768406e-06) -> 49.67296334907033\n",
"(1.385496103118641, 24108.893380587735, 2.4128655527857186e-06) -> 49.61551806057589\n",
"(1.385496103118641, 24108.893380587735, 2.4089128109679626e-06) -> 49.69695054357015\n",
"(1.385496103118641, 24108.893380587735, 2.411780041418529e-06) -> 49.63783388084468\n",
"(1.385496103118641, 24108.893380587735, 2.409998322335152e-06) -> 49.67453999473487\n",
"(1.3346958218375284, 26342.987535930857, 2.6342989994964907e-06) -> 32.40412806990936\n",
"(1.218308580069807, 31461.464245752708, 3.146147591686242e-06) -> 14.072342058026457\n",
"(1.2041974408796614, 32082.043754269307, 3.2082056542278777e-06) -> 13.53676656364805\n",
"(1.1905385220654157, 32682.73552056781, 3.2682749389683696e-06) -> 13.309190968111414\n",
"(1.1906296495547257, 32682.73552056781, 3.2682749389683696e-06) -> 13.321746128711856\n",
"(1.1904473945761056, 32682.73552056781, 3.2682749389683696e-06) -> 13.296643836281426\n",
"(1.1905385220654157, 32687.064556715202, 3.2682749389683696e-06) -> 13.31564880356511\n",
"(1.1905385220654157, 32678.40648442042, 3.2682749389683696e-06) -> 13.302737182521517\n",
"(1.1905385220654157, 32682.73552056781, 3.2687484177659625e-06) -> 13.316254288012424\n",
"(1.1905385220654157, 32682.73552056781, 3.2678014601707767e-06) -> 13.30213249281902\n",
"(0.9801502312575129, 30448.619847559406, 3.0448628816425382e-06) -> 6.96972301330329\n",
"(1.0625849715773497, 31323.995300450377, 3.1324006189341594e-06) -> 2.723232319724203\n",
"(1.0626278234687758, 31323.995300450377, 3.1324006189341594e-06) -> 2.723145418857497\n",
"(1.0625421196859235, 31323.995300450377, 3.1324006189341594e-06) -> 2.723320943276277\n",
"(1.0625849715773497, 31326.53248355612, 3.1324006189341594e-06) -> 2.7233762521216955\n",
"(1.0625849715773497, 31321.458117344635, 3.1324006189341594e-06) -> 2.7230896436266336\n",
"(1.0625849715773497, 31323.995300450377, 3.132687245408039e-06) -> 2.7233950126392372\n",
"(1.0625849715773497, 31323.995300450377, 3.13211399246028e-06) -> 2.72307123013582\n",
"(1.0663872573694309, 31176.616934344333, 3.117662764856898e-06) -> 2.707996462603649\n",
"(1.0676346425311973, 31128.267705196715, 3.112827836211991e-06) -> 2.7070251240566323\n",
"(1.0676780500361664, 31128.267705196715, 3.112827836211991e-06) -> 2.70705000293859\n",
"(1.0675912350262282, 31128.267705196715, 3.112827836211991e-06) -> 2.707002005340193\n",
"(1.0676346425311973, 31130.901765918446, 3.112827836211991e-06) -> 2.707043830842127\n",
"(1.0676346425311973, 31125.633644474983, 3.112827836211991e-06) -> 2.7070077881609484\n",
"(1.0676346425311973, 31128.267705196715, 3.113128792280756e-06) -> 2.7070466092241365\n",
"(1.0676346425311973, 31128.267705196715, 3.112526880143226e-06) -> 2.7070054284929457\n",
"(1.067212269933915, 31118.34694378787, 3.1118357598238063e-06) -> 2.706823247817995\n",
"(1.067168761630552, 31117.325013151873, 3.1117335667347323e-06) -> 2.706821465977302\n",
"(1.0672122600973335, 31117.325013151873, 3.1117335667347323e-06) -> 2.7068223416968538\n",
"(1.0671252631637707, 31117.325013151873, 3.1117335667347323e-06) -> 2.706822357390249\n",
"(1.067168761630552, 31119.94657401041, 3.1117335667347323e-06) -> 2.706822163448656\n",
"(1.067168761630552, 31114.703452293335, 3.1117335667347323e-06) -> 2.7068221260943885\n",
"(1.067168761630552, 31117.325013151873, 3.112032662687679e-06) -> 2.7068223708425214\n",
"(1.067168761630552, 31117.325013151873, 3.1114344707817854e-06) -> 2.7068223282441966\n",
"(1.067168761630552, 31117.325013151873, 3.1117335667347323e-06) -> 2.706821465977302\n",
"(1.0672122600973335, 31117.325013151873, 3.1117335667347323e-06) -> 2.7068223416968538\n",
"(1.0671252631637707, 31117.325013151873, 3.1117335667347323e-06) -> 2.706822357390249\n",
"(1.067168761630552, 31119.94657401041, 3.1117335667347323e-06) -> 2.706822163448656\n",
"(1.067168761630552, 31114.703452293335, 3.1117335667347323e-06) -> 2.7068221260943885\n",
"(1.067168761630552, 31117.325013151873, 3.112032662687679e-06) -> 2.7068223708425214\n",
"(1.067168761630552, 31117.325013151873, 3.1114344707817854e-06) -> 2.7068223282441966\n",
"(1.0671774613239084, 31117.325013151873, 3.1117335667347323e-06) -> 2.706821499750613\n",
"(1.0671600619371957, 31117.325013151873, 3.1117335667347323e-06) -> 2.706821502889292\n",
"(1.067168761630552, 31117.84932532358, 3.1117335667347323e-06) -> 2.7068214968699196\n",
"(1.067168761630552, 31116.800700980166, 3.1117335667347323e-06) -> 2.7068214893882208\n",
"(1.067168761630552, 31117.325013151873, 3.1117933859253217e-06) -> 2.7068215055878295\n",
"(1.067168761630552, 31117.325013151873, 3.111673747544143e-06) -> 2.7068214970520583\n",
"(1.0672122600973335, 31119.94657401041, 3.1117335667347323e-06) -> 2.70682365283658\n",
"(1.0672122600973335, 31117.325013151873, 3.112032662687679e-06) -> 2.7068239467067996\n",
"(1.067168761630552, 31119.94657401041, 3.112032662687679e-06) -> 2.7068246172709194\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 2.707 (χ²/ndof = 0.4) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 87 </td>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 2.18e-10 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#FFF79A;color:black\" title=\"Is covariance matrix accurate?\"> APPROXIMATE </td>\n",
" <td style=\"text-align:center;background-color:#c15ef7;color:black\" title=\"Is covariance matrix positive definite?\"> NOT pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#c15ef7;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> FORCED </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> I0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 1.07 </td>\n",
" <td> 0.05 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> R </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 0.03e6 </td>\n",
" <td> 0.05e6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> C </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 3e-6 </td>\n",
" <td> 5e-6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> I0 </th>\n",
" <th> R </th>\n",
" <th> C </th>\n",
" </tr>\n",
" <tr>\n",
" <th> I0 </th>\n",
2023-08-14 15:01:33 +00:00
" <td> 0.00253 </td>\n",
" <td style=\"background-color:rgb(248,248,250);color:black\"> -34.3309 <strong>(-0.014)</strong> </td>\n",
" <td style=\"background-color:rgb(248,248,250);color:black\"> -3.459e-9 <strong>(-0.014)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> R </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(248,248,250);color:black\"> -34.3309 <strong>(-0.014)</strong> </td>\n",
" <td> 2.25e+09 </td>\n",
" <td style=\"background-color:rgb(120,120,250);color:black\"> -224.592785048e-3 <strong>(-0.997)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> C </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(248,248,250);color:black\"> -3.459e-9 <strong>(-0.014)</strong> </td>\n",
" <td style=\"background-color:rgb(120,120,250);color:black\"> -224.592785048e-3 <strong>(-0.997)</strong> </td>\n",
" <td> 2.25e-11 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ FCN = 2.707 (χ²/ndof = 0.4) │ Nfcn = 87 │\n",
"│ EDM = 2.18e-10 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │APPROXIMATE│NOT pos. def.│ FORCED │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
2023-08-14 15:01:33 +00:00
"│ 0 │ I0 │ 1.07 │ 0.05 │ │ │ │ │ │\n",
"│ 1 │ R │ 0.03e6 │ 0.05e6 │ │ │ │ │ │\n",
"│ 2 │ C │ 3e-6 │ 5e-6 │ │ │ │ │ │\n",
"└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌────┬───────────────────────────────────────────────────────┐\n",
"│ │ I0 R C │\n",
"├────┼───────────────────────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ I0 │ 0.00253 -34.3309 -3.459e-9 │\n",
"│ R │ -34.3309 2.25e+09 -224.592785048e-3 │\n",
"│ C │ -3.459e-9 -224.592785048e-3 2.25e-11 │\n",
"└────┴───────────────────────────────────────────────────────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
2023-08-14 15:01:33 +00:00
"ls = cost.LeastSquares(data_frame['time'], data_frame['current'], data_frame['delta_current'], discharge_current, verbose=1)\n",
"\n",
"\n",
"mi = Minuit(ls, I0=0.9, R=10*10**3, C=10**-6)\n",
"mi.migrad()"
]
},
{
"cell_type": "markdown",
"id": "c664e4f0-0226-4be0-91f4-7c28aee16a4a",
"metadata": {},
"source": [
"General problem LeastSquares only accounts for uncertainty in y but not x! Needs always to be kept in mind... "
]
},
{
"cell_type": "markdown",
"id": "8c68c1c7-5568-4fc8-a2c6-7ca6791ad2f6",
"metadata": {},
"source": [
"Box yellow -> Pay attention to result think about it \n",
"\n",
"Box purple -> Fit did not converege cannot be used... \n",
"\n",
"\n",
"Limits can also be specified only as onsided as e.g. `(lower_boundary, None)` ..."
]
},
{
"cell_type": "markdown",
"id": "75f63b27-cd52-49b5-8c97-12615b808a2e",
"metadata": {},
"source": [
"Now more complex example to show other minuit features:\n",
"\n",
"-> Counting experiment\n",
"\n",
"-> Poisson statistics -> uncertainty sqrt n..."
]
},
{
"cell_type": "code",
"execution_count": 105,
"id": "143a2a23-0a62-439f-9d28-9f555ae85589",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'Number of counts per bin')"
]
},
"execution_count": 105,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"rnd_bkd = np.random.exponential(39.7, 5000)\n",
"rnd_bkd += 40\n",
"\n",
"peak1 = np.random.normal(53.3, 2.1, 5000)\n",
"peak2 = np.random.normal(60.5, 2.78, 12000)\n",
"data = np.concatenate([rnd_bkd, peak1, peak2])\n",
"\n",
"entries, edges = np.histogram(data, bins=120, range=(40, 80))\n",
"center = edges[:-1] + np.diff(edges)/2\n",
"\n",
"plt.errorbar(center, entries, np.sqrt(entries), ls='', marker='.')\n",
"plt.xlabel('Energy [keV]')\n",
"plt.ylabel('Number of counts per bin')"
]
},
{
"cell_type": "markdown",
"id": "9a9f1ac1-fe1c-44b6-99a2-30f7bd0f6c98",
"metadata": {},
"source": [
"Concept entries PER BIN ! Differential plot...\n",
"\n",
"-> Binnded fit problem, how to choose binning?"
]
},
{
"cell_type": "markdown",
"id": "b582615c-9251-409d-bcfc-d19fd579e161",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Zunächst wollen wir das Fitmodel in der Form\n",
"\n",
"$$f(x) = A_1 \\cdot \\exp \\bigg\\{\\frac{-(x - \\mu_1)^2}{2 \\cdot \\sigma_1^2}\\bigg\\} + A_2 \\cdot \\exp \\bigg\\{\\frac{-(x - \\mu_2)^2}{2 \\cdot \\sigma_2^2}\\bigg\\} + A_3 \\exp\\{-x/\\tau\\}$$\n",
"\n",
2023-08-14 15:01:33 +00:00
"definieren. Hier lohnt es sich erst Funktionen für die einzelnen Komponenten zu definieren und dann das Gesamtmodel. Hierdurch lassen sich später die einzelnen Komponenten besser darstellen."
]
},
{
"cell_type": "code",
"execution_count": 106,
"id": "f84d7527-c0d2-475d-966d-5363a8e09369",
"metadata": {},
"outputs": [],
"source": [
"def peak(x, A, mu, sigma):\n",
" return A*np.exp(-(x-mu)**2/(2*sigma**2))\n",
"\n",
"def bkg(x, A, tau):\n",
" return A*np.exp(-x/tau)\n",
"\n",
"def fit_model(x, A_p1, A_p2, mu_p1, mu_p2, sigma_p1, sigma_p2, A_bkg, tau_bkg):\n",
" return peak(x, A_p1, mu_p1, sigma_p1) + peak(x, A_p2, mu_p2, sigma_p2) + bkg(x, A_bkg, tau_bkg)"
]
},
{
"cell_type": "markdown",
"id": "32014861-316c-4692-9d52-48f2fb71321c",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Nun wollen wir wieder die Kostenfunktion und den Minimierungsfunktion definieren. Startwerte können wir anhand unseres Plots ablesen, lediglich $\\tau$ lässt sich auf diese weise nicht gut bestimmen."
]
},
{
"cell_type": "code",
"execution_count": 109,
"id": "a31901cf-a0ce-4db8-a072-a661fbbb7296",
"metadata": {},
"outputs": [],
"source": [
"ls = cost.LeastSquares(center, entries, np.sqrt(entries), fit_model)\n",
"\n",
"mi = Minuit(ls, \n",
" A_p1 = 400, \n",
" A_p2 = 700,\n",
" mu_p1 = 54,\n",
" mu_p2 = 60,\n",
" sigma_p1 = 2,\n",
" sigma_p2 = 2,\n",
" A_bkg = 100,\n",
" tau_bkg = 10, \n",
" )\n",
2023-08-14 15:01:33 +00:00
"mi.limits['tau_bkg'] = (0, None)"
]
},
{
"cell_type": "code",
"execution_count": 110,
"id": "1e69a046-770f-4c38-9b91-0176bb0686a1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fbb14f5cdc0>"
]
},
"execution_count": 110,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.errorbar(center, entries, np.sqrt(entries), ls='', marker='.')\n",
"plt.xlabel('Energy [keV]')\n",
"plt.ylabel('Number of counts per bin')\n",
"\n",
"x = np.arange(40, 80, 0.1)\n",
"plt.plot(x, fit_model(x, *mi.values), color='k', label='Initial guess')\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"id": "89f755f4-b780-43a6-a923-49662c4c701a",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Unser Startparameter sind bereits nicht schlecht, aber weichen noch stark von den Daten ab. Bei komplexeren Daten und Fitmodellen lohnt es sich den fit schrittweise durchzuführen. Bevor wir uns den beiden Peaks widmen, welche uns eigentlich interessieren, sollten wir Versuchen den Untergrund etwas besser zu beschreiben. Um den Untergrund besser fitten zu können sollten wir erst den Fitbereich auf einen Energiebereich limitieren, in welchem der Untergrund dominiert. Dem Plot können wir entnehmen, dass dies für alle Werte unterhalb von 45 keV und oberhalb von 70 keV der Fall ist. Im allgemeinen können wir Wertebereiche in python mit Hilfe von „Masken“ selektieren. Eine Maske lässt sich wie folg erstellen:"
]
},
{
"cell_type": "code",
"execution_count": 111,
2023-08-14 15:01:33 +00:00
"id": "d53e8386-ea7f-43fa-b4fe-65229308a2ec",
"metadata": {},
"outputs": [],
"source": [
"mask_outside_of_peaks = (center < 45) | (center >= 70)"
]
},
{
"cell_type": "markdown",
"id": "84cef7a6-13a0-4ba8-ac40-eb86a54411dc",
"metadata": {},
"source": [
"Die Maske hat hierbei die Selbe länge wie unseren Daten…"
]
},
{
"cell_type": "code",
"execution_count": 112,
2023-08-14 15:01:33 +00:00
"id": "d1d06116-d726-4163-b414-6ccde6a19027",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(120, 120)"
2023-08-14 15:01:33 +00:00
]
},
"execution_count": 112,
2023-08-14 15:01:33 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(mask_outside_of_peaks), len(mask_outside_of_peaks)"
]
},
{
"cell_type": "markdown",
"id": "80db0ae0-5cbd-4db9-b184-610d77bf1c58",
"metadata": {},
"source": [
"… und beinhaltet Wahrheitswerte True und False, bzw. 1 und 0 mit welchen wir unsere Daten wie folgt selektieren können:"
]
},
{
"cell_type": "code",
"execution_count": 113,
2023-08-14 15:01:33 +00:00
"id": "f24d19d8-3483-45b5-aee9-1d3f8755da22",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([ True, True, True, True, True, True, True, True, True,\n",
" True, True, True, True, True, True, False, False, False,\n",
" False, False, False, False, False, False, False, False, False,\n",
" False, False, False, False, False, False, False, False, False,\n",
2023-08-14 15:01:33 +00:00
" False, False, False, False, False, False, False, False, False,\n",
" False, False, False, False, False, False, False, False, False,\n",
" False, False, False, False, False, False, False, False, False,\n",
" False, False, False, False, False, False, False, False, False,\n",
" False, False, False, False, False, False, False, False, False,\n",
" False, False, False, False, False, False, False, False, False,\n",
" True, True, True, True, True, True, True, True, True,\n",
2023-08-14 15:01:33 +00:00
" True, True, True, True, True, True, True, True, True,\n",
" True, True, True, True, True, True, True, True, True,\n",
" True, True, True]),\n",
" array([40.16666667, 40.5 , 40.83333333, 41.16666667, 41.5 ,\n",
" 41.83333333, 42.16666667, 42.5 , 42.83333333, 43.16666667,\n",
" 43.5 , 43.83333333, 44.16666667, 44.5 , 44.83333333,\n",
" 70.16666667, 70.5 , 70.83333333, 71.16666667, 71.5 ,\n",
" 71.83333333, 72.16666667, 72.5 , 72.83333333, 73.16666667,\n",
" 73.5 , 73.83333333, 74.16666667, 74.5 , 74.83333333,\n",
" 75.16666667, 75.5 , 75.83333333, 76.16666667, 76.5 ,\n",
" 76.83333333, 77.16666667, 77.5 , 77.83333333, 78.16666667,\n",
" 78.5 , 78.83333333, 79.16666667, 79.5 , 79.83333333]))"
2023-08-14 15:01:33 +00:00
]
},
"execution_count": 113,
2023-08-14 15:01:33 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mask_outside_of_peaks, center[mask_outside_of_peaks]"
]
},
{
"cell_type": "markdown",
"id": "5b5c07e7-1865-48f2-bd9e-0540661fd71e",
"metadata": {},
"source": [
"Wir können auch verschieden Masken mit Hilfe von Wahrheitsoperatoren kombinieren\n",
"\n",
"TODO add operators and examples +/*\n",
"\n",
" \n",
"Unsere Selektion können wir an unsere Kostenfunktion direkt übergeben. Außerdem müssen wir noch alle Fitparameter festhalten, welche nicht zum Untergrund beitragen. "
]
},
{
"cell_type": "code",
"execution_count": 114,
2023-08-14 15:01:33 +00:00
"id": "3034bb22-0b96-498d-9736-ed9bb2189460",
"metadata": {},
"outputs": [],
"source": [
"ls.mask = (center < 45) | (center >= 70)\n",
"mi.fixed[:] = True"
]
},
{
"cell_type": "markdown",
"id": "77a664fd-513e-4c89-ba52-945b6f68512f",
"metadata": {},
"source": [
"Nun können wir nochmal unsere Funktion und Messwerte für den ausgewählten Bereich plotten…"
]
},
{
"cell_type": "code",
"execution_count": 115,
"id": "81232354-a7b8-4e2a-9ac0-159ce0a03da4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fbb14dee3a0>"
]
},
"execution_count": 115,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.errorbar(center[ls.mask], entries[ls.mask], np.sqrt(entries[ls.mask]), ls='', marker='.', label='Not masked')\n",
"plt.errorbar(center[~ls.mask], entries[~ls.mask], np.sqrt(entries[~ls.mask]), ls='', marker='.', label='Masked')\n",
"plt.xlabel('Energy [keV]')\n",
"plt.ylabel('Number of counts per bin')\n",
"\n",
"x = np.arange(40, 80, 0.1)\n",
"plt.plot(x, fit_model(x, *mi.values), color='k', label='Initial guess')\n",
"plt.legend()"
]
},
2023-08-14 15:01:33 +00:00
{
"cell_type": "markdown",
"id": "c5a8d247-5b71-42ae-9706-d16192374686",
"metadata": {},
"source": [
"… bevor wir die Minmierung starten, und das Resultat darstellen."
]
},
{
"cell_type": "code",
"execution_count": 119,
"id": "4a93a1c2-17df-46c2-b38e-9a509fe16fc7",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 35.17 (χ²/ndof = 0.8) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 77 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 4.56e-06 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
" <td> 400 </td>\n",
" <td> 4 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
" <td> 700 </td>\n",
" <td> 7 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
" <td> 54.0 </td>\n",
" <td> 0.5 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
" <td> 60.0 </td>\n",
" <td> 0.6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
" <td> 2.00 </td>\n",
" <td> 0.02 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
" <td> 2.00 </td>\n",
" <td> 0.02 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> A_bkg </td>\n",
" <td> 108 </td>\n",
" <td> 12 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 7 </th>\n",
" <td> tau_bkg </td>\n",
" <td> 39.9 </td>\n",
" <td> 3.0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> A_p1 </th>\n",
" <th> A_p2 </th>\n",
" <th> mu_p1 </th>\n",
" <th> mu_p2 </th>\n",
" <th> sigma_p1 </th>\n",
" <th> sigma_p2 </th>\n",
" <th> A_bkg </th>\n",
" <th> tau_bkg </th>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p1 </th>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 152 </td>\n",
" <td style=\"background-color:rgb(125,125,250);color:black\"> -36 <strong>(-0.963)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(125,125,250);color:black\"> -36 <strong>(-0.963)</strong> </td>\n",
" <td> 9.16 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 35.17 (χ²/ndof = 0.8) │ Nfcn = 77 │\n",
"│ EDM = 4.56e-06 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
"│ 0 │ A_p1 │ 400 │ 4 │ │ │ │ │ yes │\n",
"│ 1 │ A_p2 │ 700 │ 7 │ │ │ │ │ yes │\n",
"│ 2 │ mu_p1 │ 54.0 │ 0.5 │ │ │ │ │ yes │\n",
"│ 3 │ mu_p2 │ 60.0 │ 0.6 │ │ │ │ │ yes │\n",
"│ 4 │ sigma_p1 │ 2.00 │ 0.02 │ │ │ │ │ yes │\n",
"│ 5 │ sigma_p2 │ 2.00 │ 0.02 │ │ │ │ │ yes │\n",
"│ 6 │ A_bkg │ 108 │ 12 │ │ │ │ │ │\n",
"│ 7 │ tau_bkg │ 39.9 │ 3.0 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────┤\n",
"│ A_p1 │ 0 0 0 0 0 0 0 0 │\n",
"│ A_p2 │ 0 0 0 0 0 0 0 0 │\n",
"│ mu_p1 │ 0 0 0 0 0 0 0 0 │\n",
"│ mu_p2 │ 0 0 0 0 0 0 0 0 │\n",
"│ sigma_p1 │ 0 0 0 0 0 0 0 0 │\n",
"│ sigma_p2 │ 0 0 0 0 0 0 0 0 │\n",
"│ A_bkg │ 0 0 0 0 0 0 152 -36 │\n",
"│ tau_bkg │ 0 0 0 0 0 0 -36 9.16 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
"execution_count": 119,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mi.fixed[['tau_bkg', 'A_bkg']] = False\n",
"mi"
]
},
{
"cell_type": "code",
"execution_count": 120,
"id": "3e90c2ed-c282-47c2-b0fe-3063f9545639",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 35.17 (χ²/ndof = 0.8) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 91 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 2.29e-12 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
" <td> 400 </td>\n",
" <td> 4 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
" <td> 700 </td>\n",
" <td> 7 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
" <td> 54.0 </td>\n",
" <td> 0.5 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
" <td> 60.0 </td>\n",
" <td> 0.6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
" <td> 2.00 </td>\n",
" <td> 0.02 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
" <td> 2.00 </td>\n",
" <td> 0.02 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> A_bkg </td>\n",
" <td> 108 </td>\n",
" <td> 12 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 7 </th>\n",
" <td> tau_bkg </td>\n",
" <td> 39.9 </td>\n",
" <td> 3.0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> A_p1 </th>\n",
" <th> A_p2 </th>\n",
" <th> mu_p1 </th>\n",
" <th> mu_p2 </th>\n",
" <th> sigma_p1 </th>\n",
" <th> sigma_p2 </th>\n",
" <th> A_bkg </th>\n",
" <th> tau_bkg </th>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p1 </th>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 152 </td>\n",
" <td style=\"background-color:rgb(125,125,250);color:black\"> -36 <strong>(-0.963)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(125,125,250);color:black\"> -36 <strong>(-0.963)</strong> </td>\n",
" <td> 9.15 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 35.17 (χ²/ndof = 0.8) │ Nfcn = 91 │\n",
"│ EDM = 2.29e-12 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
"│ 0 │ A_p1 │ 400 │ 4 │ │ │ │ │ yes │\n",
"│ 1 │ A_p2 │ 700 │ 7 │ │ │ │ │ yes │\n",
"│ 2 │ mu_p1 │ 54.0 │ 0.5 │ │ │ │ │ yes │\n",
"│ 3 │ mu_p2 │ 60.0 │ 0.6 │ │ │ │ │ yes │\n",
"│ 4 │ sigma_p1 │ 2.00 │ 0.02 │ │ │ │ │ yes │\n",
"│ 5 │ sigma_p2 │ 2.00 │ 0.02 │ │ │ │ │ yes │\n",
"│ 6 │ A_bkg │ 108 │ 12 │ │ │ │ │ │\n",
"│ 7 │ tau_bkg │ 39.9 │ 3.0 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────┤\n",
"│ A_p1 │ 0 0 0 0 0 0 0 0 │\n",
"│ A_p2 │ 0 0 0 0 0 0 0 0 │\n",
"│ mu_p1 │ 0 0 0 0 0 0 0 0 │\n",
"│ mu_p2 │ 0 0 0 0 0 0 0 0 │\n",
"│ sigma_p1 │ 0 0 0 0 0 0 0 0 │\n",
"│ sigma_p2 │ 0 0 0 0 0 0 0 0 │\n",
"│ A_bkg │ 0 0 0 0 0 0 152 -36 │\n",
"│ tau_bkg │ 0 0 0 0 0 0 -36 9.15 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
"execution_count": 120,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mi.migrad()"
]
},
{
"cell_type": "markdown",
"id": "4837389e-098b-43a0-ad42-2fd354fa7c6e",
"metadata": {},
"source": [
"Now next step first peak..."
]
},
{
"cell_type": "code",
"execution_count": 121,
"id": "0b435af3-73ea-42de-9ab7-6a16ae9dbceb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fbb14a6cd00>"
]
},
"execution_count": 121,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.errorbar(center, entries, np.sqrt(entries), ls='', marker='.')\n",
"plt.xlabel('Energy [keV]')\n",
"plt.ylabel('Number of counts per bin')\n",
"\n",
"x = np.arange(40, 80, 0.1)\n",
"plt.plot(x, fit_model(x, *mi.values), color='k', label='Initial guess')\n",
"plt.legend()\n"
]
},
{
"cell_type": "markdown",
"id": "6def3e2b-5edf-48bb-99b8-2b7fdaae51c5",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Das Resultat sieht bereits sehr gut aus. Nun können wir uns den eigentlichen Peaks widmen und starten im folgenden mit dem kleineren der Beiden. Zunächst sollten wir den maskierten Bereich entweder neu definieren oder komplett entfernen. "
]
},
{
"cell_type": "code",
"execution_count": 122,
2023-08-14 15:01:33 +00:00
"id": "ebd77c40-6fcd-4881-bc1d-e3ca8ae0bf3b",
"metadata": {},
"outputs": [],
"source": [
"ls.mask = None"
]
},
{
"cell_type": "markdown",
"id": "7850ae53-ae2d-49aa-ac7b-dcef60a2dab7",
"metadata": {},
"source": [
"Außerdem können wir dem Plot entnehmen, dass durch den höheren Unterrund unsere Anfangsstartwerte nicht mehr ganz so gut passen diese können wir wie folgt aktualisieren:"
]
},
{
"cell_type": "code",
"execution_count": 123,
"id": "823e05a0-516c-4d30-8dc7-5381e0e2e617",
"metadata": {},
2023-08-14 15:01:33 +00:00
"outputs": [],
"source": [
"mi.values['A_p1'] = 700\n",
"mi.values['sigma_p1'] = 3"
]
},
{
"cell_type": "markdown",
"id": "8648bf00-901e-40dc-ada2-9a6b684e8f31",
"metadata": {},
"source": [
"Nun sollten wir alle Parameter wieder festhalten und nur die Parameter des ersten Peaks freigeben."
]
},
{
"cell_type": "code",
"execution_count": 124,
2023-08-14 15:01:33 +00:00
"id": "3c83690c-103e-47ff-b18f-13ac763ee87d",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 1416 (χ²/ndof = 12.1) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 169 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 3.27e-05 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
" <td> 345 </td>\n",
" <td> 6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
" <td> 700 </td>\n",
" <td> 7 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
" <td> 53.47 </td>\n",
" <td> 0.04 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
" <td> 60.0 </td>\n",
" <td> 0.6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
" <td> 2.138 </td>\n",
" <td> 0.034 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
" <td> 2.00 </td>\n",
" <td> 0.02 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> A_bkg </td>\n",
" <td> 108 </td>\n",
" <td> 12 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 7 </th>\n",
" <td> tau_bkg </td>\n",
" <td> 39.9 </td>\n",
" <td> 3.0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> A_p1 </th>\n",
" <th> A_p2 </th>\n",
" <th> mu_p1 </th>\n",
" <th> mu_p2 </th>\n",
" <th> sigma_p1 </th>\n",
" <th> sigma_p2 </th>\n",
" <th> A_bkg </th>\n",
" <th> tau_bkg </th>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p1 </th>\n",
" <td> 40 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 0.0064 <strong>(0.024)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(179,179,250);color:black\"> -0.1170 <strong>(-0.544)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 0.0064 <strong>(0.024)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td> 0.00171 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,219,219);color:black\"> 0.0003 <strong>(0.207)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
" <td style=\"background-color:rgb(179,179,250);color:black\"> -0.1170 <strong>(-0.544)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,219,219);color:black\"> 0.0003 <strong>(0.207)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td> 0.00116 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 1416 (χ²/ndof = 12.1) │ Nfcn = 169 │\n",
"│ EDM = 3.27e-05 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
"│ 0 │ A_p1 │ 345 │ 6 │ │ │ │ │ │\n",
"│ 1 │ A_p2 │ 700 │ 7 │ │ │ │ │ yes │\n",
"│ 2 │ mu_p1 │ 53.47 │ 0.04 │ │ │ │ │ │\n",
"│ 3 │ mu_p2 │ 60.0 │ 0.6 │ │ │ │ │ yes │\n",
"│ 4 │ sigma_p1 │ 2.138 │ 0.034 │ │ │ │ │ │\n",
"│ 5 │ sigma_p2 │ 2.00 │ 0.02 │ │ │ │ │ yes │\n",
"│ 6 │ A_bkg │ 108 │ 12 │ │ │ │ │ yes │\n",
"│ 7 │ tau_bkg │ 39.9 │ 3.0 │ │ │ 0 │ │ yes │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────┤\n",
"│ A_p1 │ 40 0 0.0064 0 -0.1170 0 0 0 │\n",
"│ A_p2 │ 0 0 0.0000 0 0.0000 0 0 0 │\n",
"│ mu_p1 │ 0.0064 0.0000 0.00171 0.0000 0.0003 0.0000 0.0000 0.0000 │\n",
"│ mu_p2 │ 0 0 0.0000 0 0.0000 0 0 0 │\n",
"│ sigma_p1 │ -0.1170 0.0000 0.0003 0.0000 0.00116 0.0000 0.0000 0.0000 │\n",
"│ sigma_p2 │ 0 0 0.0000 0 0.0000 0 0 0 │\n",
"│ A_bkg │ 0 0 0.0000 0 0.0000 0 0 0 │\n",
"│ tau_bkg │ 0 0 0.0000 0 0.0000 0 0 0 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
"execution_count": 124,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mi.fixed[:] = True\n",
"mi.fixed[['A_p1', 'mu_p1', 'sigma_p1']] = False\n",
"mi.migrad()"
]
},
{
"cell_type": "markdown",
"id": "34df75bf-3750-4186-ae12-4f6bb9e49931",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Jetzt wiederholen wir das ganze für den zweiten Peak…"
]
},
{
"cell_type": "code",
"execution_count": 125,
"id": "264a9891-423c-479a-8906-c048aac2fd2e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 133.6 (χ²/ndof = 1.1) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 232 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 3.64e-06 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
" <td> 345 </td>\n",
" <td> 6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
" <td> 572 </td>\n",
" <td> 7 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
" <td> 53.47 </td>\n",
" <td> 0.04 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
" <td> 60.652 </td>\n",
" <td> 0.032 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
" <td> 2.138 </td>\n",
" <td> 0.034 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
" <td> 2.710 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 0.027 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> A_bkg </td>\n",
" <td> 108 </td>\n",
" <td> 12 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 7 </th>\n",
" <td> tau_bkg </td>\n",
" <td> 39.9 </td>\n",
" <td> 3.0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> A_p1 </th>\n",
" <th> A_p2 </th>\n",
" <th> mu_p1 </th>\n",
" <th> mu_p2 </th>\n",
" <th> sigma_p1 </th>\n",
" <th> sigma_p2 </th>\n",
" <th> A_bkg </th>\n",
" <th> tau_bkg </th>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p1 </th>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 50 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 0.0065 <strong>(0.029)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(174,174,250);color:black\"> -112.0e-3 <strong>(-0.586)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 0.0065 <strong>(0.029)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </td>\n",
" <td> 0.00103 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </td>\n",
" <td style=\"background-color:rgb(222,222,250);color:black\"> -0.2e-3 <strong>(-0.217)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(174,174,250);color:black\"> -112.0e-3 <strong>(-0.586)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(222,222,250);color:black\"> -0.2e-3 <strong>(-0.217)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0.00073 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 133.6 (χ²/ndof = 1.1) │ Nfcn = 232 │\n",
"│ EDM = 3.64e-06 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
"│ 0 │ A_p1 │ 345 │ 6 │ │ │ │ │ yes │\n",
"│ 1 │ A_p2 │ 572 │ 7 │ │ │ │ │ │\n",
"│ 2 │ mu_p1 │ 53.47 │ 0.04 │ │ │ │ │ yes │\n",
"│ 3 │ mu_p2 │ 60.652 │ 0.032 │ │ │ │ │ │\n",
"│ 4 │ sigma_p1 │ 2.138 │ 0.034 │ │ │ │ │ yes │\n",
"│ 5 │ sigma_p2 │ 2.710 │ 0.027 │ │ │ │ │ │\n",
"│ 6 │ A_bkg │ 108 │ 12 │ │ │ │ │ yes │\n",
"│ 7 │ tau_bkg │ 39.9 │ 3.0 │ │ │ 0 │ │ yes │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────────────┤\n",
"│ A_p1 │ 0 0 0 0.000 0 0 0 0 │\n",
"│ A_p2 │ 0 50 0 0.0065 0 -112.0e-3 0 0 │\n",
"│ mu_p1 │ 0 0 0 0.000 0 0 0 0 │\n",
"│ mu_p2 │ 0.000 0.0065 0.000 0.00103 0.000 -0.2e-3 0.000 0.000 │\n",
"│ sigma_p1 │ 0 0 0 0.000 0 0 0 0 │\n",
"│ sigma_p2 │ 0 -112.0e-3 0 -0.2e-3 0 0.00073 0 0 │\n",
"│ A_bkg │ 0 0 0 0.000 0 0 0 0 │\n",
"│ tau_bkg │ 0 0 0 0.000 0 0 0 0 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────────────┘"
]
},
"execution_count": 125,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mi.fixed[:] = True\n",
"mi.fixed[['A_p2', 'mu_p2', 'sigma_p2']] = False\n",
"mi.migrad()"
]
},
{
"cell_type": "markdown",
"id": "32d67543-870f-4bd9-bba4-2d01086c671a",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Bevor wir ein letztes mal wieder alle Parameter freigeben und einen letzten fit durchführen. "
]
},
{
"cell_type": "code",
"execution_count": 126,
"id": "72d43004-cd80-418a-996a-f1e7a7133ce9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 110.2 (χ²/ndof = 1.0) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 490 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 7.62e-06 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
" <td> 314 </td>\n",
" <td> 7 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
" <td> 568 </td>\n",
" <td> 7 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
" <td> 53.27 </td>\n",
" <td> 0.08 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
" <td> 60.53 </td>\n",
" <td> 0.06 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
" <td> 2.13 </td>\n",
" <td> 0.06 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
" <td> 2.81 </td>\n",
" <td> 0.04 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> A_bkg </td>\n",
" <td> 109 </td>\n",
" <td> 12 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 7 </th>\n",
" <td> tau_bkg </td>\n",
" <td> 39.7 </td>\n",
" <td> 2.8 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> A_p1 </th>\n",
" <th> A_p2 </th>\n",
" <th> mu_p1 </th>\n",
" <th> mu_p2 </th>\n",
" <th> sigma_p1 </th>\n",
" <th> sigma_p2 </th>\n",
" <th> A_bkg </th>\n",
" <th> tau_bkg </th>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p1 </th>\n",
" <td> 48.4 </td>\n",
" <td style=\"background-color:rgb(250,228,228);color:black\"> 10 <strong>(0.147)</strong> </td>\n",
" <td style=\"background-color:rgb(250,212,212);color:black\"> 0.138 <strong>(0.254)</strong> </td>\n",
" <td style=\"background-color:rgb(250,203,203);color:black\"> 0.1230 <strong>(0.316)</strong> </td>\n",
" <td style=\"background-color:rgb(231,231,250);color:black\"> -0.0575 <strong>(-0.144)</strong> </td>\n",
" <td style=\"background-color:rgb(202,202,250);color:black\"> -0.1117 <strong>(-0.373)</strong> </td>\n",
" <td style=\"background-color:rgb(245,245,250);color:black\"> -0 <strong>(-0.039)</strong> </td>\n",
" <td style=\"background-color:rgb(250,244,244);color:black\"> 1 <strong>(0.040)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
" <td style=\"background-color:rgb(250,228,228);color:black\"> 10 <strong>(0.147)</strong> </td>\n",
" <td> 49.5 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.001 </td>\n",
" <td style=\"background-color:rgb(250,241,241);color:black\"> 0.0227 <strong>(0.058)</strong> </td>\n",
" <td style=\"background-color:rgb(242,242,250);color:black\"> -0.0262 <strong>(-0.065)</strong> </td>\n",
" <td style=\"background-color:rgb(197,197,250);color:black\"> -0.1235 <strong>(-0.407)</strong> </td>\n",
" <td style=\"background-color:rgb(247,247,250);color:black\"> -0 <strong>(-0.020)</strong> </td>\n",
" <td style=\"background-color:rgb(250,247,247);color:black\"> 0 <strong>(0.018)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
" <td style=\"background-color:rgb(250,212,212);color:black\"> 0.138 <strong>(0.254)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.001 </td>\n",
" <td> 0.00612 </td>\n",
" <td style=\"background-color:rgb(250,138,138);color:black\"> 0.0033 <strong>(0.749)</strong> </td>\n",
" <td style=\"background-color:rgb(250,147,147);color:black\"> 0.0031 <strong>(0.684)</strong> </td>\n",
" <td style=\"background-color:rgb(161,161,250);color:black\"> -0.0023 <strong>(-0.684)</strong> </td>\n",
" <td style=\"background-color:rgb(242,242,250);color:black\"> -0.057 <strong>(-0.064)</strong> </td>\n",
" <td style=\"background-color:rgb(250,238,238);color:black\"> 0.018 <strong>(0.080)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
" <td style=\"background-color:rgb(250,203,203);color:black\"> 0.1230 <strong>(0.316)</strong> </td>\n",
" <td style=\"background-color:rgb(250,241,241);color:black\"> 0.0227 <strong>(0.058)</strong> </td>\n",
" <td style=\"background-color:rgb(250,138,138);color:black\"> 0.0033 <strong>(0.749)</strong> </td>\n",
" <td> 0.00313 </td>\n",
" <td style=\"background-color:rgb(250,153,153);color:black\"> 0.0021 <strong>(0.646)</strong> </td>\n",
" <td style=\"background-color:rgb(159,159,250);color:black\"> -0.0017 <strong>(-0.696)</strong> </td>\n",
" <td style=\"background-color:rgb(239,239,250);color:black\"> -0.0529 <strong>(-0.082)</strong> </td>\n",
" <td style=\"background-color:rgb(250,239,239);color:black\"> 0.0118 <strong>(0.074)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
" <td style=\"background-color:rgb(231,231,250);color:black\"> -0.0575 <strong>(-0.144)</strong> </td>\n",
" <td style=\"background-color:rgb(242,242,250);color:black\"> -0.0262 <strong>(-0.065)</strong> </td>\n",
" <td style=\"background-color:rgb(250,147,147);color:black\"> 0.0031 <strong>(0.684)</strong> </td>\n",
" <td style=\"background-color:rgb(250,153,153);color:black\"> 0.0021 <strong>(0.646)</strong> </td>\n",
" <td> 0.00331 </td>\n",
" <td style=\"background-color:rgb(181,181,250);color:black\"> -0.0013 <strong>(-0.528)</strong> </td>\n",
" <td style=\"background-color:rgb(224,224,250);color:black\"> -0.1336 <strong>(-0.203)</strong> </td>\n",
" <td style=\"background-color:rgb(250,225,225);color:black\"> 0.0273 <strong>(0.167)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
" <td style=\"background-color:rgb(202,202,250);color:black\"> -0.1117 <strong>(-0.373)</strong> </td>\n",
" <td style=\"background-color:rgb(197,197,250);color:black\"> -0.1235 <strong>(-0.407)</strong> </td>\n",
" <td style=\"background-color:rgb(161,161,250);color:black\"> -0.0023 <strong>(-0.684)</strong> </td>\n",
" <td style=\"background-color:rgb(159,159,250);color:black\"> -0.0017 <strong>(-0.696)</strong> </td>\n",
" <td style=\"background-color:rgb(181,181,250);color:black\"> -0.0013 <strong>(-0.528)</strong> </td>\n",
" <td> 0.00186 </td>\n",
" <td style=\"background-color:rgb(250,229,229);color:black\"> 0.0695 <strong>(0.141)</strong> </td>\n",
" <td style=\"background-color:rgb(227,227,250);color:black\"> -0.0218 <strong>(-0.177)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
" <td style=\"background-color:rgb(245,245,250);color:black\"> -0 <strong>(-0.039)</strong> </td>\n",
" <td style=\"background-color:rgb(247,247,250);color:black\"> -0 <strong>(-0.020)</strong> </td>\n",
" <td style=\"background-color:rgb(242,242,250);color:black\"> -0.057 <strong>(-0.064)</strong> </td>\n",
" <td style=\"background-color:rgb(239,239,250);color:black\"> -0.0529 <strong>(-0.082)</strong> </td>\n",
" <td style=\"background-color:rgb(224,224,250);color:black\"> -0.1336 <strong>(-0.203)</strong> </td>\n",
" <td style=\"background-color:rgb(250,229,229);color:black\"> 0.0695 <strong>(0.141)</strong> </td>\n",
" <td> 131 </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -32 <strong>(-0.966)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
" <td style=\"background-color:rgb(250,244,244);color:black\"> 1 <strong>(0.040)</strong> </td>\n",
" <td style=\"background-color:rgb(250,247,247);color:black\"> 0 <strong>(0.018)</strong> </td>\n",
" <td style=\"background-color:rgb(250,238,238);color:black\"> 0.018 <strong>(0.080)</strong> </td>\n",
" <td style=\"background-color:rgb(250,239,239);color:black\"> 0.0118 <strong>(0.074)</strong> </td>\n",
" <td style=\"background-color:rgb(250,225,225);color:black\"> 0.0273 <strong>(0.167)</strong> </td>\n",
" <td style=\"background-color:rgb(227,227,250);color:black\"> -0.0218 <strong>(-0.177)</strong> </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -32 <strong>(-0.966)</strong> </td>\n",
" <td> 8.11 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 110.2 (χ²/ndof = 1.0) │ Nfcn = 490 │\n",
"│ EDM = 7.62e-06 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
"│ 0 │ A_p1 │ 314 │ 7 │ │ │ │ │ │\n",
"│ 1 │ A_p2 │ 568 │ 7 │ │ │ │ │ │\n",
"│ 2 │ mu_p1 │ 53.27 │ 0.08 │ │ │ │ │ │\n",
"│ 3 │ mu_p2 │ 60.53 │ 0.06 │ │ │ │ │ │\n",
"│ 4 │ sigma_p1 │ 2.13 │ 0.06 │ │ │ │ │ │\n",
"│ 5 │ sigma_p2 │ 2.81 │ 0.04 │ │ │ │ │ │\n",
"│ 6 │ A_bkg │ 109 │ 12 │ │ │ │ │ │\n",
"│ 7 │ tau_bkg │ 39.7 │ 2.8 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────┤\n",
"│ A_p1 │ 48.4 10 0.138 0.1230 -0.0575 -0.1117 -0 1 │\n",
"│ A_p2 │ 10 49.5 0.001 0.0227 -0.0262 -0.1235 -0 0 │\n",
"│ mu_p1 │ 0.138 0.001 0.00612 0.0033 0.0031 -0.0023 -0.057 0.018 │\n",
"│ mu_p2 │ 0.1230 0.0227 0.0033 0.00313 0.0021 -0.0017 -0.0529 0.0118 │\n",
"│ sigma_p1 │ -0.0575 -0.0262 0.0031 0.0021 0.00331 -0.0013 -0.1336 0.0273 │\n",
"│ sigma_p2 │ -0.1117 -0.1235 -0.0023 -0.0017 -0.0013 0.00186 0.0695 -0.0218 │\n",
"│ A_bkg │ -0 -0 -0.057 -0.0529 -0.1336 0.0695 131 -32 │\n",
"│ tau_bkg │ 1 0 0.018 0.0118 0.0273 -0.0218 -32 8.11 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
"execution_count": 126,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mi.fixed[:] = False\n",
"mi.migrad()"
]
},
2023-08-14 15:01:33 +00:00
{
"cell_type": "markdown",
"id": "1510691d-6fbc-466f-a802-647bbc5e9fd2",
"metadata": {},
"source": [
"TODO: Add indivdiual components to the plot..."
]
},
{
"cell_type": "code",
"execution_count": 127,
"id": "067fbf6f-14c4-4a46-afb3-71753d06af23",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fbb14cdd190>"
]
},
"execution_count": 127,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.errorbar(center, entries, np.sqrt(entries), ls='', marker='.')\n",
"plt.xlabel('Energy [keV]')\n",
"plt.ylabel('Number of counts per bin')\n",
"\n",
"x = np.arange(40, 80, 0.1)\n",
"plt.plot(x, fit_model(x, *mi.values), color='k', label='Best fit')\n",
2023-08-14 15:01:33 +00:00
"plt.plot(x, peak(x, *mi.values['A_p1', 'mu_p1', 'sigma_p1']), color='gray', ls='--')\n",
"plt.plot(x, peak(x, *mi.values['A_p2', 'mu_p2', 'sigma_p2']), color='gray', ls='-.')\n",
"plt.plot(x, bkg(x, *mi.values['A_bkg', 'tau_bkg']), color='gray')\n",
"plt.legend()\n"
]
},
{
"cell_type": "markdown",
"id": "7ef19633-0947-4568-b537-a1c69e42b7c2",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Das Ergebnis sieht sehr gut aus. Alle Kacheln sind grün und die Daten scheinen durch die Funktion gut beschrieben zu werden. Natürlich können wir auch das Gesamte Fitverfahren etwas kompakter in einer Zelle darstellen:"
]
},
{
"cell_type": "code",
"execution_count": 128,
"id": "2311f135-8410-4f35-8d58-b9bcef0fed53",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 110.2 (χ²/ndof = 1.0) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 536 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 3.81e-07 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
" <td> 314 </td>\n",
" <td> 7 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
" <td> 568 </td>\n",
" <td> 7 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
" <td> 53.27 </td>\n",
" <td> 0.08 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
" <td> 60.53 </td>\n",
" <td> 0.06 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
" <td> 2.13 </td>\n",
" <td> 0.06 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
" <td> 2.81 </td>\n",
" <td> 0.04 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> A_bkg </td>\n",
" <td> 109 </td>\n",
" <td> 12 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 7 </th>\n",
" <td> tau_bkg </td>\n",
" <td> 39.7 </td>\n",
" <td> 2.8 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> A_p1 </th>\n",
" <th> A_p2 </th>\n",
" <th> mu_p1 </th>\n",
" <th> mu_p2 </th>\n",
" <th> sigma_p1 </th>\n",
" <th> sigma_p2 </th>\n",
" <th> A_bkg </th>\n",
" <th> tau_bkg </th>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p1 </th>\n",
" <td> 48.4 </td>\n",
" <td style=\"background-color:rgb(250,228,228);color:black\"> 10 <strong>(0.147)</strong> </td>\n",
" <td style=\"background-color:rgb(250,212,212);color:black\"> 0.138 <strong>(0.254)</strong> </td>\n",
" <td style=\"background-color:rgb(250,203,203);color:black\"> 0.1230 <strong>(0.316)</strong> </td>\n",
" <td style=\"background-color:rgb(231,231,250);color:black\"> -0.0575 <strong>(-0.144)</strong> </td>\n",
" <td style=\"background-color:rgb(202,202,250);color:black\"> -0.1117 <strong>(-0.373)</strong> </td>\n",
" <td style=\"background-color:rgb(245,245,250);color:black\"> -0 <strong>(-0.039)</strong> </td>\n",
" <td style=\"background-color:rgb(250,244,244);color:black\"> 1 <strong>(0.040)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
" <td style=\"background-color:rgb(250,228,228);color:black\"> 10 <strong>(0.147)</strong> </td>\n",
" <td> 49.5 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.001 </td>\n",
" <td style=\"background-color:rgb(250,241,241);color:black\"> 0.0227 <strong>(0.058)</strong> </td>\n",
" <td style=\"background-color:rgb(242,242,250);color:black\"> -0.0262 <strong>(-0.065)</strong> </td>\n",
" <td style=\"background-color:rgb(197,197,250);color:black\"> -0.1235 <strong>(-0.407)</strong> </td>\n",
" <td style=\"background-color:rgb(247,247,250);color:black\"> -0 <strong>(-0.020)</strong> </td>\n",
" <td style=\"background-color:rgb(250,247,247);color:black\"> 0 <strong>(0.018)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
" <td style=\"background-color:rgb(250,212,212);color:black\"> 0.138 <strong>(0.254)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.001 </td>\n",
" <td> 0.00611 </td>\n",
" <td style=\"background-color:rgb(250,138,138);color:black\"> 0.0033 <strong>(0.749)</strong> </td>\n",
" <td style=\"background-color:rgb(250,147,147);color:black\"> 0.0031 <strong>(0.684)</strong> </td>\n",
" <td style=\"background-color:rgb(161,161,250);color:black\"> -0.0023 <strong>(-0.684)</strong> </td>\n",
" <td style=\"background-color:rgb(242,242,250);color:black\"> -0.057 <strong>(-0.064)</strong> </td>\n",
" <td style=\"background-color:rgb(250,238,238);color:black\"> 0.018 <strong>(0.080)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
" <td style=\"background-color:rgb(250,203,203);color:black\"> 0.1230 <strong>(0.316)</strong> </td>\n",
" <td style=\"background-color:rgb(250,241,241);color:black\"> 0.0227 <strong>(0.058)</strong> </td>\n",
" <td style=\"background-color:rgb(250,138,138);color:black\"> 0.0033 <strong>(0.749)</strong> </td>\n",
" <td> 0.00313 </td>\n",
" <td style=\"background-color:rgb(250,153,153);color:black\"> 0.0021 <strong>(0.646)</strong> </td>\n",
" <td style=\"background-color:rgb(159,159,250);color:black\"> -0.0017 <strong>(-0.696)</strong> </td>\n",
" <td style=\"background-color:rgb(239,239,250);color:black\"> -0.0529 <strong>(-0.082)</strong> </td>\n",
" <td style=\"background-color:rgb(250,239,239);color:black\"> 0.0118 <strong>(0.074)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
" <td style=\"background-color:rgb(231,231,250);color:black\"> -0.0575 <strong>(-0.144)</strong> </td>\n",
" <td style=\"background-color:rgb(242,242,250);color:black\"> -0.0262 <strong>(-0.065)</strong> </td>\n",
" <td style=\"background-color:rgb(250,147,147);color:black\"> 0.0031 <strong>(0.684)</strong> </td>\n",
" <td style=\"background-color:rgb(250,153,153);color:black\"> 0.0021 <strong>(0.646)</strong> </td>\n",
" <td> 0.00331 </td>\n",
" <td style=\"background-color:rgb(181,181,250);color:black\"> -0.0013 <strong>(-0.528)</strong> </td>\n",
" <td style=\"background-color:rgb(224,224,250);color:black\"> -0.1338 <strong>(-0.203)</strong> </td>\n",
" <td style=\"background-color:rgb(250,225,225);color:black\"> 0.0273 <strong>(0.167)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
" <td style=\"background-color:rgb(202,202,250);color:black\"> -0.1117 <strong>(-0.373)</strong> </td>\n",
" <td style=\"background-color:rgb(197,197,250);color:black\"> -0.1235 <strong>(-0.407)</strong> </td>\n",
" <td style=\"background-color:rgb(161,161,250);color:black\"> -0.0023 <strong>(-0.684)</strong> </td>\n",
" <td style=\"background-color:rgb(159,159,250);color:black\"> -0.0017 <strong>(-0.696)</strong> </td>\n",
" <td style=\"background-color:rgb(181,181,250);color:black\"> -0.0013 <strong>(-0.528)</strong> </td>\n",
" <td> 0.00186 </td>\n",
" <td style=\"background-color:rgb(250,229,229);color:black\"> 0.0696 <strong>(0.141)</strong> </td>\n",
" <td style=\"background-color:rgb(227,227,250);color:black\"> -0.0218 <strong>(-0.178)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
" <td style=\"background-color:rgb(245,245,250);color:black\"> -0 <strong>(-0.039)</strong> </td>\n",
" <td style=\"background-color:rgb(247,247,250);color:black\"> -0 <strong>(-0.020)</strong> </td>\n",
" <td style=\"background-color:rgb(242,242,250);color:black\"> -0.057 <strong>(-0.064)</strong> </td>\n",
" <td style=\"background-color:rgb(239,239,250);color:black\"> -0.0529 <strong>(-0.082)</strong> </td>\n",
" <td style=\"background-color:rgb(224,224,250);color:black\"> -0.1338 <strong>(-0.203)</strong> </td>\n",
" <td style=\"background-color:rgb(250,229,229);color:black\"> 0.0696 <strong>(0.141)</strong> </td>\n",
" <td> 131 </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -32 <strong>(-0.966)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
" <td style=\"background-color:rgb(250,244,244);color:black\"> 1 <strong>(0.040)</strong> </td>\n",
" <td style=\"background-color:rgb(250,247,247);color:black\"> 0 <strong>(0.018)</strong> </td>\n",
" <td style=\"background-color:rgb(250,238,238);color:black\"> 0.018 <strong>(0.080)</strong> </td>\n",
" <td style=\"background-color:rgb(250,239,239);color:black\"> 0.0118 <strong>(0.074)</strong> </td>\n",
" <td style=\"background-color:rgb(250,225,225);color:black\"> 0.0273 <strong>(0.167)</strong> </td>\n",
" <td style=\"background-color:rgb(227,227,250);color:black\"> -0.0218 <strong>(-0.178)</strong> </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -32 <strong>(-0.966)</strong> </td>\n",
" <td> 8.12 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 110.2 (χ²/ndof = 1.0) │ Nfcn = 536 │\n",
"│ EDM = 3.81e-07 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
"│ 0 │ A_p1 │ 314 │ 7 │ │ │ │ │ │\n",
"│ 1 │ A_p2 │ 568 │ 7 │ │ │ │ │ │\n",
"│ 2 │ mu_p1 │ 53.27 │ 0.08 │ │ │ │ │ │\n",
"│ 3 │ mu_p2 │ 60.53 │ 0.06 │ │ │ │ │ │\n",
"│ 4 │ sigma_p1 │ 2.13 │ 0.06 │ │ │ │ │ │\n",
"│ 5 │ sigma_p2 │ 2.81 │ 0.04 │ │ │ │ │ │\n",
"│ 6 │ A_bkg │ 109 │ 12 │ │ │ │ │ │\n",
"│ 7 │ tau_bkg │ 39.7 │ 2.8 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────┤\n",
"│ A_p1 │ 48.4 10 0.138 0.1230 -0.0575 -0.1117 -0 1 │\n",
"│ A_p2 │ 10 49.5 0.001 0.0227 -0.0262 -0.1235 -0 0 │\n",
"│ mu_p1 │ 0.138 0.001 0.00611 0.0033 0.0031 -0.0023 -0.057 0.018 │\n",
"│ mu_p2 │ 0.1230 0.0227 0.0033 0.00313 0.0021 -0.0017 -0.0529 0.0118 │\n",
"│ sigma_p1 │ -0.0575 -0.0262 0.0031 0.0021 0.00331 -0.0013 -0.1338 0.0273 │\n",
"│ sigma_p2 │ -0.1117 -0.1235 -0.0023 -0.0017 -0.0013 0.00186 0.0696 -0.0218 │\n",
"│ A_bkg │ -0 -0 -0.057 -0.0529 -0.1338 0.0696 131 -32 │\n",
"│ tau_bkg │ 1 0 0.018 0.0118 0.0273 -0.0218 -32 8.12 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
"execution_count": 128,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ls = cost.LeastSquares(center, entries, np.sqrt(entries), fit_model)\n",
"\n",
"mi = Minuit(ls, \n",
" A_p1 = 800, \n",
" A_p2 = 1400,\n",
" mu_p1 = 54,\n",
" mu_p2 = 60,\n",
" sigma_p1 = 2,\n",
" sigma_p2 = 2,\n",
" A_bkg = 100,\n",
" tau_bkg = 10, \n",
" )\n",
"mi.limits['tau_bkg'] = (0, None)\n",
"mi.fixed[:] = True\n",
"ls.mask = (center < 45) | (center >= 70)\n",
"mi.fixed[['tau_bkg', 'A_bkg']] = False\n",
"mi.migrad()\n",
"ls.mask = None\n",
"mi.values['A_p1'] = 700\n",
"mi.values['sigma_p1'] = 3\n",
"mi.fixed[:] = True\n",
"mi.fixed[['A_p1', 'mu_p1', 'sigma_p1']] = False\n",
"mi.migrad()\n",
"mi.fixed[:] = True\n",
"mi.fixed[['A_p2', 'mu_p2', 'sigma_p2']] = False\n",
"mi.migrad()\n",
"mi.fixed[:] = False\n",
"mi.migrad()"
]
},
{
"cell_type": "markdown",
"id": "3f25d0b2-aeca-45d6-ac95-00a45b4886c0",
"metadata": {},
"source": [
"### Add task here"
]
},
{
"cell_type": "markdown",
"id": "b2d4c8e9-da2c-489e-9b2f-de24f042c341",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
" # Wann fittet ein Fit?\n",
"Nach dem wir nun unser Model an unsere Daten angepasst haben stellt sich die Frage: „Spiegelt unser Model unsere Daten gut wider?“. Um diese Frage beantworten zu könne gibt es verschiedene Möglichkeiten, welche wir uns im Folgenden etwas näher angucken wollen. \n",
"## Fit Residuan: \n",
"Schauen wir uns zunächst noch einmal an, wie das Chi-Quadrat definiert ist:\n",
"$$$$\n",
"Wir minimieren den Abstand zwischen einem Messwert und unserer Model und Gewichten diesen mit den Unsicherheiten unserer Messwerte. Fitresiduan spiegeln genau dies wider. Sie sind definiert als \n",
"$$$$\n",
"Für unseren Fit sehen sie wie folgt aus. \n"
]
},
{
"cell_type": "code",
"execution_count": 129,
"id": "30cafddc-ea17-4158-82cc-f132dee2c8de",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'Residuals [$\\\\sigma$]')"
]
},
"execution_count": 129,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"residuals = (entries - fit_model(center, *mi.values))/np.sqrt(entries)\n",
"\n",
"plt.plot(center, residuals, ls='', marker='.')\n",
"plt.xlabel('Energy [keV]')\n",
"plt.ylabel('Residuals [$\\sigma$]')"
]
},
{
"cell_type": "markdown",
"id": "d0ef61ca-afc5-472d-8e8e-b4726ef2a3dd",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Als einzelner Plot sind sie noch nicht sehr informative. Hilfreicher ist es bereits sofern wir die Residuanen zusammen mit unseren Daten und Fitmodel darstellen. "
]
},
{
"cell_type": "code",
"execution_count": 130,
"id": "d9fbe83b-3146-4d72-89a4-084c29752e24",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
2023-08-14 15:01:33 +00:00
"/tmp/jobs/29593351/ipykernel_11778/53208542.py:7: UserWarning: The figure layout has changed to tight\n",
" fig_fit.tight_layout()\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig_fit = plt.figure(constrained_layout=True)\n",
"gs = fig_fit.add_gridspec(5, 5, hspace=0)\n",
"\n",
"\n",
"main_axis = fig_fit.add_subplot(gs[:4, :])\n",
"res_axis = fig_fit.add_subplot(gs[4:, :], sharex=main_axis)\n",
"fig_fit.tight_layout()\n",
"\n",
"\n",
"main_axis.errorbar(center, entries, np.sqrt(entries), ls='', marker='.', color='k')\n",
"\n",
2023-08-14 15:01:33 +00:00
"main_axis.plot(x, peak(x, *mi.values['A_p1', 'mu_p1', 'sigma_p1']), color='gray', ls='--')\n",
"main_axis.plot(x, peak(x, *mi.values['A_p2', 'mu_p2', 'sigma_p2']), color='gray', ls='-.')\n",
"main_axis.plot(x, bkg(x, *mi.values['A_bkg', 'tau_bkg']), color='gray')\n",
"\n",
"x = np.arange(40, 80, 0.1)\n",
"main_axis.plot(x, fit_model(x, *mi.values), color='purple', label='Best fit')\n",
"main_axis.legend()\n",
"main_axis.set_ylabel('Number of entries per bin')\n",
"main_axis.xaxis.set_tick_params(direction='inout')\n",
"main_axis.tick_params(axis='x', labelcolor=(0, 0, 0, 0))\n",
"main_axis.set_xlim(40, 80)\n",
"\n",
"res_axis.set_xlabel('Energy [keV]')\n",
"res_axis.set_ylabel('Res [$\\sigma$]')\n",
"res_axis.set_ylim(-3, 3)\n",
"res_axis.set_yticks([-2, 0, 2])\n",
"res_axis.fill_between((40, 80), -1, 1, alpha=0.3, color='purple')\n",
"res_axis.fill_between((40, 80), -2, 2, alpha=0.3, color='purple')\n",
"res_axis.axhline(0, color='purple')\n",
"res_axis.set_xlim(40, 80)\n",
"res_axis.plot(center, \n",
" residuals,\n",
" color='k', marker='.', ls=''\n",
" )\n",
"plt.tight_layout()"
]
},
{
"cell_type": "markdown",
"id": "dbe65a21-572e-4618-bcd8-78f13e945e8a",
"metadata": {},
"source": [
"Sofern wir einen unser Fitmodel unsere Daten gut widerspiegelt erwarten wir, dass die Residuen sich Gaußförmig zufällig um den Wert 0 herum verteilen. Dies folgt direkt aus der Annahme, dass de Unsicherheiten unserer Messwerte sich durch eine Gaußverteilung darstellen lassen. Dies können wir direkt überprüfen, sofern wir unsere Residuen in ein Histogramm eintragen. "
2023-08-14 15:01:33 +00:00
]
},
{
"cell_type": "code",
"execution_count": 136,
2023-08-14 15:01:33 +00:00
"id": "05e24224-66f7-45ed-99c6-f6d257e2c779",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.hist(residuals, bins=10, range=(-3, 3), histtype='step')\n",
"plt.xlabel('Residual [$\\sigma$]')\n",
"plt.ylabel('#Entries per bin')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "24ce04cc-5234-4326-9a28-7624b9c7d23e",
"metadata": {},
"source": [
"Bzw. den Anteil an Residuen berechnen welcher innerhalb der 1 $\\sigma$ Umgebeung"
]
},
{
"cell_type": "code",
"execution_count": 138,
"id": "39009321-41f4-49f4-820a-717be277b1b0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.675"
]
},
"execution_count": 138,
"metadata": {},
"output_type": "execute_result"
}
],
2023-08-14 15:01:33 +00:00
"source": [
"np.sum(np.abs(residuals) < 1)/len(residuals)"
2023-08-14 15:01:33 +00:00
]
},
{
"cell_type": "markdown",
"id": "08579cdf-3b28-4ea2-9c61-6ae62974af51",
"metadata": {},
"source": [
"Zeigen unsere Residuen eine Struktur oder ein systematisches Verhalten deutet dies auf einen ungenauen Fit oder ein falsches Fitmodel hin. Dies ist im folgenden gezeigt. "
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 54,
"id": "850870af-e546-4d95-b9de-8a4e7b61c241",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
2023-08-14 15:01:33 +00:00
"/tmp/jobs/29593351/ipykernel_11778/4141622746.py:10: UserWarning: The figure layout has changed to tight\n",
" fig_fit.tight_layout()\n"
]
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACE1ElEQVR4nOzdd1RU197G8e+AFBHBgoAF7FGwi0axEjTWWKIm8cYeo8ao15Km9yYaTaIp96YbTbXEGI3G3ksssSvYRSNGxQaKCqgobeb9w1cSro3BGQ7l+ax11sqcObPPM05gfuxz9t4mi8ViQURERERyPQejA4iIiIiIbaiwExEREckjVNiJiIiI5BEq7ERERETyCBV2IiIiInmECjsRERGRPEKFnYiIiEgeocJOREREJI8oYHSAnMBsNnP+/HkKFy6MyWQyOo6IiIhIOovFwrVr1yhVqhQODg/uk1NhB5w/fx4/Pz+jY4iIiIjc15kzZyhTpswDj1FhBxQuXBi4/Q/m4eFhcBoRERGRvyQkJODn55derzyICjtIv/zq4eGhwk5ERERypMzcLqbBEyIiIiJ5hAo7ERERkTxChZ2IiIhIHqHCTkRERCSPUGEnIiIikkeosBMRERHJI1TYiYiIiOQRKuxERERE8ggVdiIiIiJ5hAo7ERERkTxChZ2IiIhIHqG1YkXEEFFRUcTGxtqlbS8vL/z9/e3StohITpZjCrv333+fMWPGMHz4cD799FMAbt26xSuvvMKcOXNISkqidevWfPXVV/j4+KS/LioqisGDB7Nhwwbc3d3p06cPkyZNokCBHPPWROR/REVFERAQQGJiol3ad3NzIyIiQsWdiOQ7OaL62b17N19//TU1a9bMsH/kyJEsX76cefPm4enpydChQ+nSpQtbt24FIC0tjfbt2+Pr68u2bdu4cOECvXv3xsnJiYkTJxrxVkQkE2JjY0lMTGTWrFkEBATYtO2IiAh69uxJbGysCjsRyXcML+yuX79Ojx49+Pbbb3n33XfT98fHx/P9998ze/ZsQkNDAZg2bRoBAQHs2LGDhg0bsmbNGo4cOcK6devw8fGhdu3avPPOO7zxxhu8/fbbODs7G/W2RCQTAgICqFu3rl3ajoiIsHmbusQrIjmd4YXdkCFDaN++PS1btsxQ2IWFhZGSkkLLli3T91WtWhV/f3+2b99Ow4YN2b59OzVq1MhwabZ169YMHjyYw4cPU6dOnXueMykpiaSkpPTHCQkJdnhnImIELy8v3Nzc6Nmzp83bzuolXnOqmYuHL3LpyCVuXr7JzSs3uXn1Jreu3OLmlZuYHE0ULFaQgsUK4lrUlYLFClKoRCF8avpQrFIxTA4mm78XEcmbDC3s5syZQ3h4OLt3777ruejoaJydnSlSpEiG/T4+PkRHR6cf8/ei7s7zd567n0mTJjF+/PhHTC8iOZG/vz8RERE2H5hhzSXeq39e5cy2M5zbfY4Ley5wYe8FUm+mZum8Lp4ulKpXilL1S1G6fmn8Gvvh7uOepbZEJO8zrLA7c+YMw4cPZ+3atbi6umbruceMGcOoUaPSHyckJODn55etGUTEfvz9/bP9kmncqTgOzT3E4bmHid579x+WLh4u+NTywd3HHddirhQs+lcPncVsud2Ld+Umt67e7sW7du4aMQdiSIpP4uT6k5xcf/J2QyYo17wc1bpXI7BrIG5ebtn6PkUkZzOssAsLC+PixYsZ7q9JS0tj8+bNfPnll6xevZrk5GTi4uIy9NrFxMTg6+sLgK+vL7t27crQbkxMTPpz9+Pi4oKLi4sN342I5Ec3Lt3g4OyDHJ5zmLM7zqbvNzmaKNOgDKXq3+5pK1WvFMUrF7f6kmpaShqXDl/i3O5znN9znnM7zxGzP4ZTG09xauMpVgxZQYWWFajevTqBzwTiXEj3FYvkd4YVdi1atODgwYMZ9vXr14+qVavyxhtv4Ofnh5OTE+vXr6dr164AHDt2jKioKIKDgwEIDg7mvffe4+LFi3h7ewOwdu1aPDw8CAwMzN43JCL5RvyZeLb/dzth34T9dYnVBOVCylG9e3UCugTYpCfN0ckR39q++Nb2JWhAEHC7Z/DwL4c5PPcwF8IvcGL1CU6sPsHa19bSYEQDHh/yOK5FsvcqiIjkHIYVdoULF6Z69eoZ9hUqVIjixYun7+/fvz+jRo2iWLFieHh4MGzYMIKDg2nYsCEArVq1IjAwkF69evHhhx8SHR3Nm2++yZAhQ9QjJyI2V5zi7Juwj+UrlmNOMQNQsm5JavWtRWC3QAqXLGz3DEXKFaHx641p/HpjLv9xmUNzD7Fv2j7iTsax4c0NbP1gK/WH1KfhiIa6F08kHzJ8VOyDfPLJJzg4ONC1a9cMExTf4ejoyLJlyxg8eDDBwcEUKlSIPn36MGHCBANTi0hec/XkVcLGhDGUoZxZfAaAck+Uo8mYJlRoWQGTyZhRq8UfK07zt5rTdExTDv9ymC2TtnDx0EW2vr+VnZ/upO7AuoSMC6FgsYKG5BOR7GeyWCwWo0MYLSEhAU9PT+Lj4/Hw8DA6jkieFx4eTlBQEGFhYXabx84WUm+lsvWjrWyZuIXUW7cvufo09+Gp95+iTMMyBqe7m8Vs4Y9lf/D7xN85t/McAG5ebrT8sCW1+9TWtCkiuZQ1dYpDNmUSEclVIldHMqXGFDaO3UjqrVSK1yvOFKbw+MeP58iiDsDkYKJKxyr0396fXmt7USKwBImxiSx5YQnTmk4jev/9p4ESkbxBhZ2IyN8knE3gl26/8FObn7gSeQX3ku50/bkrwVODiSHG6HiZYjKZqNCyAoP2DeLJj57EqZATZ7ad4Zu637BqxCqSEpIe3oiI5Eo5+h47EZHsFLEggiX9l3Ar7hYmRxOPD3ucJ8Y/gYuHC+Hh4XY7b1RUlM0nVIbbq3A0erUR1btXZ/Wo1RyZd4Sdn+3k2JJjdJvTjdKPl7b5OUXEWCrsRCTfS7mZwupRqwmbGgZAqfql6PhdR3xq+jzklY8uKiqKgIAAEhMTbd7235dAe+aXZzix5gRLBy4l7mQcPzT+gdD3Qmn0aiPdeyeSh6iwE5F87eLhi/za/VcuHroIQKPXGxH6biiOTo7Zcv7Y2FgSExOZNWsWAQEBNmv3zhJov//++1/tekHwjGD2v7ufC+susO6NdexfuJ86E+rgUjzzU0R5eXll+8oeIpI5KuxEJF+yWCyEfxfOquGrSL2ZSiGfQjw982kqtqpoSJ6AgACbjhD28vLCzc2Nnj173vP5utSlLW25tOMSC1otYCELOcGJTLX9955AEclZVNiJSL6TlpLG8peXs/e7vQBUbFWRzjM756kJff39/YmIiHjgvXvX/rxG2OgwOAG9TL0I/GcgFXo9eF6+Oz2BsbGxKuxEciAVdiKSr9y8epN5z8zj5PqTmBxMhE4MpfFrjfPkfWb+/v4PLr7qQqP2jVg1fBXh34Zz5LMjuNxwof1X7bPtUrSI2JamOxGRfOPKiSv80OgHTq4/iVMhJ7ov7k6TN5rkyaIus5wKOvHU10/R+tPWYIK93+3lp7Y/cfPqTaOjiUgWqLATkXwhamsU3zf8ntijsXiU8eCFrS/w2FOPGR0rRzCZTDQc3pDui7vjVMiJk+tP8kOjH7hy4orR0UTESirsRCTPO/jzQWaGziQxNpGSQSV5cdeL+NbyNTpWjlOlQxVe2PICHmU8iD0ay/cNv+fMtjNGxxIRK6iwE5E8LeybMBY8v4C05DSqdq5K3019KVyysNGxcizf2r68uPNFSgaVJDE2kR+f/JE/1/9pdCwRySQVdiKSZ+34bAfLBi0DoP6Q+jz767M4F3I2OFXOV7hUYfpu6kvF1hVJSUxhdvvZHF9x3OhYIpIJKuxEJE/a8v4WVo9YDUCj1xrR9ou2+XqQhLWcCznTfXF3qnSqQlpSGnM6zyFiYYTRsUTkIVTYiUieYrFY2Pj2RtaPWQ9A83HNaflBywfOzSb3VsClAM/Me4Zqz1bDnGJm3jPzOLf6nNGxROQBNI+diOQZFouFdaPXse3DbQC0mNSCJqObGJwqd3N0cqTLT10o4FqA/TP3E/5
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pseudo_data = np.random.normal(0, 2, 5000)\n",
"\n",
"\n",
"fig_fit = plt.figure(constrained_layout=True)\n",
"gs = fig_fit.add_gridspec(5, 5, hspace=0)\n",
"\n",
"\n",
"main_axis = fig_fit.add_subplot(gs[:4, :])\n",
"res_axis = fig_fit.add_subplot(gs[4:, :], sharex=main_axis)\n",
"fig_fit.tight_layout()\n",
"\n",
"\n",
"entries1, edges1, _ = main_axis.hist(pseudo_data, bins=25, range=(-5,5), histtype='step', color='k')\n",
"center1 = edges1[:-1] + np.diff(edges1)/2\n",
"\n",
"residuals1 = (entries1 - peak(center1, 400, 0.2, 2))/np.sqrt(entries1)\n",
"\n",
"x = np.arange(-5, 5, 0.1)\n",
"\n",
"main_axis.plot(x, peak(x, 400, 0.2, 2), color='purple')\n",
"main_axis.set_ylabel('Number of entries per bin')\n",
"main_axis.xaxis.set_tick_params(direction='inout')\n",
"main_axis.tick_params(axis='x', labelcolor=(0, 0, 0, 0))\n",
"main_axis.set_xlim(-5, 5)\n",
"\n",
"res_axis.set_xlabel('Energy [keV]')\n",
"res_axis.set_ylabel('Res [$\\sigma$]')\n",
"res_axis.set_ylim(-3, 3)\n",
"res_axis.set_yticks([-2, 0, 2])\n",
"res_axis.fill_between((-5, 5), -1, 1, alpha=0.3, color='purple')\n",
"res_axis.fill_between((-5, 5), -2, 2, alpha=0.3, color='purple')\n",
"res_axis.axhline(0, color='purple')\n",
"res_axis.set_xlim(-5, 5)\n",
"res_axis.plot(center1, \n",
" residuals1,\n",
" color='k', marker='.', ls=''\n",
" )\n",
"plt.tight_layout()"
]
},
{
"cell_type": "markdown",
"id": "48e95a88-0742-4221-a716-17dacfc02823",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Zusätzlich zu den Fit Residuan bietet das $\\chi^2$ selbst einen Weg um die „goodness-of-fit“ unseres Model bestimmen zu können...\n",
"\n",
"### Chi-Square:"
]
},
{
"cell_type": "markdown",
"id": "fe1789cf-7ed3-4db3-a0ae-9e563a9dc85e",
"metadata": {},
"source": [
"Need to update the following:...\n",
"\n",
"\n",
"Wie Sie sehen können, ist der Wert für den Widerstand zwar gleich geblieben, jedoch die Unsicherheit des Wertes hat sich erhöht.\n",
"\n",
"Wie gut fittet unsere obige Funktion unsere Messdaten? Sehr gut? Gut? Befriedigend? Oder doch eher schlecht? Wäre es nicht gut, ein Maß für die Güte des Fits zu haben? Wie könnte ein solches Maß aussehen?\n",
"\n",
"Sie haben das entscheidende Kriterium bereits kennengelernt, bei der Methode der kleinsten Quadrate geht es darum, das $\\chi^2$ zu minimieren. Gucken wir uns hierzu erst noch einmal an, wie sich das $\\chi^2$ berechnet:\n",
"\n",
"$$ \\chi(\\phi_1 ... \\phi_N)^2 = \\sum_{i = 1}^{N} \\frac{ (y_i - \\lambda(x_i; \\phi))^2}{\\Delta y_i^2}$$\n",
"\n",
"\n",
"Coming back to figure\n",
"\n",
"<figure class=\"image\">\n",
"<img src=\"images/MaterialPythonkurs092018/LeastSquare.png\" alt=\"{{ Least Square Beispiel }}\" width=80%>\n",
"</figure>\n",
"\n",
"Chi-Square can be understood easily, want to minimize distance, put bigger emphsis on values with smaller uncertainty as more confident...\n",
"\n",
"\n",
"\n",
"Wie Sie sehen können, ist das $\\chi^2$ für unsere zweite Funktion etwas größer als für das klassische ohm'sche Gesetzt. Somit würden wir unseren zweiten Ansatz verwerfen.\n",
"\n",
"Damit man für einen gegebenen Datensatz nicht hunderte von verschiedenen Funktionen durchprobieren muss, gibt es für das $\\chi^2$ eine allgemeine Faustregel, welche den berechneten $\\chi^2$-Wert mit der Anzahl unserer Freiheitsgrade vergleicht. Die Anzahl an Freiheitsgrade ist allgemeinhin gegeben als *Anzahl der Messwerte - Anzahl der Funktionsparameter* ($m - n$).\n",
"\n",
"1. Sofern $\\chi^2/\\text{ndof} >> 1$: sollte die Hypothese bzw. die Fitfunktion angezweifelt werden. Sie beschreibt in diesem Fall die Messdaten nur unzureichend. (Bzw. sollte $\\chi^2/\\text{ndof} > 1$ kann dies auch bedeuten, dass die Unsicherheiten unterschätzt sind)\n",
"2. Sofern $\\chi^2/\\text{ndof} \\approx 1$: beschreibt die Hypothese bzw. die Fitfunktion die Daten wie erwartet und wird nicht abgelehnt. \n",
"3. Falls $\\chi^2/\\text{ndof} << 1$ beschreibt die Hypothese bzw. die Fitfunktion die Daten wesentlich besser als erwartet. In diesem Fall heißt es nicht, dass unsere Hypothese falsch ist, aber man sollte überprüfen, ob die gemessenen Fehler nicht überschätzt worden sind (oder eine Korrelation zwischen den Messfehlern vorliegt). \n",
"\n",
"Sofern Sie eine Arbeit schreiben und Ihre **Goodness-of-the-Fit** ($\\chi^2/\\text{ndof}$) angeben wollen, so geben Sie immer beides an, das $\\chi^2$ und die Anzahl an Freiheitsgraden ndof. Beide Werte getrennt haben einen größeren Informationsgehalt als der resultierende Quotient (Genaueres lernen Sie z.B. in der Vorlesung *Statistik, Datenanalyse und Simulationen* im Master).\n",
"\n",
"Sehen wir uns hierzu nochmal unseren Doppelpeakfit etwas genauer an. Iminuit berechnet hier für uns bereits das reuzierete $\\chi^2$."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 55,
"id": "fa85a19a-f066-4567-abb0-6283ae1bc90b",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 71.34 (χ²/ndof = 1.4) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 517 </td>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 1.63e-06 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 627 </td>\n",
" <td> 14 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 1.142e3 </td>\n",
" <td> 0.014e3 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 53.38 </td>\n",
" <td> 0.09 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 60.50 </td>\n",
" <td> 0.06 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 2.18 </td>\n",
" <td> 0.06 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 2.76 </td>\n",
" <td> 0.04 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> A_bkg </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 222 </td>\n",
" <td> 23 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 7 </th>\n",
" <td> tau_bkg </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 40.1 </td>\n",
" <td> 2.9 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> A_p1 </th>\n",
" <th> A_p2 </th>\n",
" <th> mu_p1 </th>\n",
" <th> mu_p2 </th>\n",
" <th> sigma_p1 </th>\n",
" <th> sigma_p2 </th>\n",
" <th> A_bkg </th>\n",
" <th> tau_bkg </th>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td> 196 </td>\n",
" <td style=\"background-color:rgb(250,230,230);color:black\"> 0.03e3 <strong>(0.134)</strong> </td>\n",
" <td style=\"background-color:rgb(250,209,209);color:black\"> 0.333 <strong>(0.273)</strong> </td>\n",
" <td style=\"background-color:rgb(250,198,198);color:black\"> 0.292 <strong>(0.344)</strong> </td>\n",
" <td style=\"background-color:rgb(238,238,250);color:black\"> -0.081 <strong>(-0.092)</strong> </td>\n",
" <td style=\"background-color:rgb(198,198,250);color:black\"> -0.2462 <strong>(-0.397)</strong> </td>\n",
" <td style=\"background-color:rgb(244,244,250);color:black\"> -0.01e3 <strong>(-0.046)</strong> </td>\n",
" <td style=\"background-color:rgb(250,243,243);color:black\"> 2 <strong>(0.046)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,230,230);color:black\"> 0.03e3 <strong>(0.134)</strong> </td>\n",
" <td> 202 </td>\n",
" <td style=\"background-color:rgb(243,243,250);color:black\"> -0.064 <strong>(-0.052)</strong> </td>\n",
" <td style=\"background-color:rgb(250,248,248);color:black\"> 0.010 <strong>(0.012)</strong> </td>\n",
" <td style=\"background-color:rgb(235,235,250);color:black\"> -0.100 <strong>(-0.112)</strong> </td>\n",
" <td style=\"background-color:rgb(205,205,250);color:black\"> -0.2153 <strong>(-0.342)</strong> </td>\n",
" <td style=\"background-color:rgb(249,249,250);color:black\"> -0 <strong>(-0.009)</strong> </td>\n",
" <td style=\"background-color:rgb(250,249,249);color:black\"> 0 <strong>(0.007)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,209,209);color:black\"> 0.333 <strong>(0.273)</strong> </td>\n",
" <td style=\"background-color:rgb(243,243,250);color:black\"> -0.064 <strong>(-0.052)</strong> </td>\n",
" <td> 0.00757 </td>\n",
" <td style=\"background-color:rgb(250,132,132);color:black\"> 0.004 <strong>(0.788)</strong> </td>\n",
" <td style=\"background-color:rgb(250,140,140);color:black\"> 0.004 <strong>(0.736)</strong> </td>\n",
" <td style=\"background-color:rgb(157,157,250);color:black\"> -0.0028 <strong>(-0.717)</strong> </td>\n",
" <td style=\"background-color:rgb(240,240,250);color:black\"> -0.161 <strong>(-0.081)</strong> </td>\n",
" <td style=\"background-color:rgb(250,236,236);color:black\"> 0.023 <strong>(0.094)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,198,198);color:black\"> 0.292 <strong>(0.344)</strong> </td>\n",
" <td style=\"background-color:rgb(250,248,248);color:black\"> 0.010 <strong>(0.012)</strong> </td>\n",
" <td style=\"background-color:rgb(250,132,132);color:black\"> 0.004 <strong>(0.788)</strong> </td>\n",
" <td> 0.00367 </td>\n",
" <td style=\"background-color:rgb(250,147,147);color:black\"> 0.003 <strong>(0.689)</strong> </td>\n",
" <td style=\"background-color:rgb(154,154,250);color:black\"> -0.0020 <strong>(-0.736)</strong> </td>\n",
" <td style=\"background-color:rgb(237,237,250);color:black\"> -0.135 <strong>(-0.097)</strong> </td>\n",
" <td style=\"background-color:rgb(250,237,237);color:black\"> 0.015 <strong>(0.088)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(238,238,250);color:black\"> -0.081 <strong>(-0.092)</strong> </td>\n",
" <td style=\"background-color:rgb(235,235,250);color:black\"> -0.100 <strong>(-0.112)</strong> </td>\n",
" <td style=\"background-color:rgb(250,140,140);color:black\"> 0.004 <strong>(0.736)</strong> </td>\n",
" <td style=\"background-color:rgb(250,147,147);color:black\"> 0.003 <strong>(0.689)</strong> </td>\n",
" <td> 0.00396 </td>\n",
" <td style=\"background-color:rgb(176,176,250);color:black\"> -0.0016 <strong>(-0.571)</strong> </td>\n",
" <td style=\"background-color:rgb(223,223,250);color:black\"> -0.302 <strong>(-0.208)</strong> </td>\n",
" <td style=\"background-color:rgb(250,224,224);color:black\"> 0.031 <strong>(0.173)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(198,198,250);color:black\"> -0.2462 <strong>(-0.397)</strong> </td>\n",
" <td style=\"background-color:rgb(205,205,250);color:black\"> -0.2153 <strong>(-0.342)</strong> </td>\n",
" <td style=\"background-color:rgb(157,157,250);color:black\"> -0.0028 <strong>(-0.717)</strong> </td>\n",
" <td style=\"background-color:rgb(154,154,250);color:black\"> -0.0020 <strong>(-0.736)</strong> </td>\n",
" <td style=\"background-color:rgb(176,176,250);color:black\"> -0.0016 <strong>(-0.571)</strong> </td>\n",
" <td> 0.00196 </td>\n",
" <td style=\"background-color:rgb(250,228,228);color:black\"> 0.1500 <strong>(0.147)</strong> </td>\n",
" <td style=\"background-color:rgb(227,227,250);color:black\"> -0.0229 <strong>(-0.181)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(244,244,250);color:black\"> -0.01e3 <strong>(-0.046)</strong> </td>\n",
" <td style=\"background-color:rgb(249,249,250);color:black\"> -0 <strong>(-0.009)</strong> </td>\n",
" <td style=\"background-color:rgb(240,240,250);color:black\"> -0.161 <strong>(-0.081)</strong> </td>\n",
" <td style=\"background-color:rgb(237,237,250);color:black\"> -0.135 <strong>(-0.097)</strong> </td>\n",
" <td style=\"background-color:rgb(223,223,250);color:black\"> -0.302 <strong>(-0.208)</strong> </td>\n",
" <td style=\"background-color:rgb(250,228,228);color:black\"> 0.1500 <strong>(0.147)</strong> </td>\n",
" <td> 530 </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -64 <strong>(-0.966)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,243,243);color:black\"> 2 <strong>(0.046)</strong> </td>\n",
" <td style=\"background-color:rgb(250,249,249);color:black\"> 0 <strong>(0.007)</strong> </td>\n",
" <td style=\"background-color:rgb(250,236,236);color:black\"> 0.023 <strong>(0.094)</strong> </td>\n",
" <td style=\"background-color:rgb(250,237,237);color:black\"> 0.015 <strong>(0.088)</strong> </td>\n",
" <td style=\"background-color:rgb(250,224,224);color:black\"> 0.031 <strong>(0.173)</strong> </td>\n",
" <td style=\"background-color:rgb(227,227,250);color:black\"> -0.0229 <strong>(-0.181)</strong> </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -64 <strong>(-0.966)</strong> </td>\n",
" <td> 8.17 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ FCN = 71.34 (χ²/ndof = 1.4) │ Nfcn = 517 │\n",
"│ EDM = 1.63e-06 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
2023-08-14 15:01:33 +00:00
"│ 0 │ A_p1 │ 627 │ 14 │ │ │ │ │ │\n",
"│ 1 │ A_p2 │ 1.142e3 │ 0.014e3 │ │ │ │ │ │\n",
"│ 2 │ mu_p1 │ 53.38 │ 0.09 │ │ │ │ │ │\n",
"│ 3 │ mu_p2 │ 60.50 │ 0.06 │ │ │ │ │ │\n",
"│ 4 │ sigma_p1 │ 2.18 │ 0.06 │ │ │ │ │ │\n",
"│ 5 │ sigma_p2 │ 2.76 │ 0.04 │ │ │ │ │ │\n",
"│ 6 │ A_bkg │ 222 │ 23 │ │ │ │ │ │\n",
"│ 7 │ tau_bkg │ 40.1 │ 2.9 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ A_p1 │ 196 0.03e3 0.333 0.292 -0.081 -0.2462 -0.01e3 2 │\n",
"│ A_p2 │ 0.03e3 202 -0.064 0.010 -0.100 -0.2153 -0 0 │\n",
"│ mu_p1 │ 0.333 -0.064 0.00757 0.004 0.004 -0.0028 -0.161 0.023 │\n",
"│ mu_p2 │ 0.292 0.010 0.004 0.00367 0.003 -0.0020 -0.135 0.015 │\n",
"│ sigma_p1 │ -0.081 -0.100 0.004 0.003 0.00396 -0.0016 -0.302 0.031 │\n",
"│ sigma_p2 │ -0.2462 -0.2153 -0.0028 -0.0020 -0.0016 0.00196 0.1500 -0.0229 │\n",
"│ A_bkg │ -0.01e3 -0 -0.161 -0.135 -0.302 0.1500 530 -64 │\n",
"│ tau_bkg │ 2 0 0.023 0.015 0.031 -0.0229 -64 8.17 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mi"
]
},
{
"cell_type": "markdown",
"id": "9f464246-d333-4143-baf0-aa2a632c5be4",
"metadata": {},
"source": [
"Estimate ourselves:"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 56,
"id": "b0ad46ce-f541-40bb-898c-154ad5f94787",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2023-08-14 15:01:33 +00:00
"71.34036100527231 52 1.37193001933216\n"
]
}
],
"source": [
"def chi_squre_ndof(x_values, y_values, dy_values, fit_model, minuit):\n",
" ndof = len(x_values) - len(minuit.values)\n",
" chi = np.sum((y_values - fit_model(x_values, *minuit.values))**2/dy_values**2)\n",
" return chi, ndof\n",
"\n",
"\n",
"chi_squre, ndof = chi_squre_ndof(center, entries, np.sqrt(entries), fit_model, mi)\n",
"print(chi_squre, ndof, chi_squre/ndof)"
]
},
{
"cell_type": "markdown",
"id": "295031f4-6d18-411c-b5dd-a62ed97da7f1",
"metadata": {},
"source": [
"### Chi-Squre hypothesis testing..."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 57,
"id": "8c11bc85-4e25-4d40-8397-257414d48a1f",
"metadata": {},
"outputs": [],
"source": [
"from scipy.stats import chi2\n",
"chi_distribution = lambda x, ndof: chi2.pdf(x, ndof)"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 58,
"id": "76836863-109c-4e7c-989e-04b62ec4ca9d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, '$\\\\chi^2(x)$')"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = np.arange(20, 90)\n",
"plt.plot(x, chi_distribution(x, 52))\n",
"\n",
"x = np.arange(chi_squre, 90, 0.1)\n",
"plt.fill_between(x, chi_distribution(x, 52), alpha=0.3)\n",
"plt.ylim(0, None)\n",
"plt.xlabel('x')\n",
"plt.ylabel('$\\chi^2(x)$')"
]
},
{
"cell_type": "markdown",
"id": "b30829b3-a9e8-4d93-8895-9fd9f67ab9dc",
"metadata": {},
"source": [
"Explain p-value...."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 59,
"id": "cfa9d88a-eada-49dd-8cb3-73c7dd345c08",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2023-08-14 15:01:33 +00:00
"(0.038725580428877526, 3.286394945067883e-08)"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p_value = lambda x, ndof: 1 - chi2.cdf(x, ndof)\n",
"p_value(chi_squre, ndof), p_value(chi_squre*10, ndof*10)"
]
},
{
"cell_type": "markdown",
"id": "9cba146a-6309-42d1-92cb-8bdde2da42a2",
"metadata": {},
"source": [
"Try alternative fit model"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 60,
"id": "9b91ee55-ac17-4dd6-9827-48677f772096",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 247.8 (χ²/ndof = 4.7) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 296 </td>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 5.03e-07 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 635 </td>\n",
" <td> 14 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 1.140e3 </td>\n",
" <td> 0.015e3 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 53.5 </td>\n",
" <td> 0.1 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 60.61 </td>\n",
" <td> 0.07 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 2.42 </td>\n",
" <td> 0.08 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 2.68 </td>\n",
" <td> 0.05 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> c </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 43.8 </td>\n",
" <td> 1.3 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> A_p1 </th>\n",
" <th> A_p2 </th>\n",
" <th> mu_p1 </th>\n",
" <th> mu_p2 </th>\n",
" <th> sigma_p1 </th>\n",
" <th> sigma_p2 </th>\n",
" <th> c </th>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td> 182 </td>\n",
" <td style=\"background-color:rgb(250,235,235);color:black\"> 0.02e3 <strong>(0.102)</strong> </td>\n",
" <td style=\"background-color:rgb(250,211,211);color:black\"> 0.357 <strong>(0.258)</strong> </td>\n",
" <td style=\"background-color:rgb(250,202,202);color:black\"> 0.290 <strong>(0.322)</strong> </td>\n",
" <td style=\"background-color:rgb(238,238,250);color:black\"> -0.095 <strong>(-0.093)</strong> </td>\n",
" <td style=\"background-color:rgb(200,200,250);color:black\"> -0.2364 <strong>(-0.388)</strong> </td>\n",
" <td style=\"background-color:rgb(250,248,248);color:black\"> 0.2 <strong>(0.014)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,235,235);color:black\"> 0.02e3 <strong>(0.102)</strong> </td>\n",
" <td> 217 </td>\n",
" <td style=\"background-color:rgb(222,222,250);color:black\"> -0.324 <strong>(-0.214)</strong> </td>\n",
" <td style=\"background-color:rgb(230,230,250);color:black\"> -0.151 <strong>(-0.153)</strong> </td>\n",
" <td style=\"background-color:rgb(215,215,250);color:black\"> -0.304 <strong>(-0.273)</strong> </td>\n",
" <td style=\"background-color:rgb(226,226,250);color:black\"> -0.1248 <strong>(-0.188)</strong> </td>\n",
" <td style=\"background-color:rgb(250,248,248);color:black\"> 0.2 <strong>(0.012)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,211,211);color:black\"> 0.357 <strong>(0.258)</strong> </td>\n",
" <td style=\"background-color:rgb(222,222,250);color:black\"> -0.324 <strong>(-0.214)</strong> </td>\n",
" <td> 0.0105 </td>\n",
" <td style=\"background-color:rgb(250,124,124);color:black\"> 0.006 <strong>(0.837)</strong> </td>\n",
" <td style=\"background-color:rgb(250,130,130);color:black\"> 0.006 <strong>(0.803)</strong> </td>\n",
" <td style=\"background-color:rgb(152,152,250);color:black\"> -0.0035 <strong>(-0.751)</strong> </td>\n",
" <td style=\"background-color:rgb(250,247,247);color:black\"> 0.002 <strong>(0.017)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,202,202);color:black\"> 0.290 <strong>(0.322)</strong> </td>\n",
" <td style=\"background-color:rgb(230,230,250);color:black\"> -0.151 <strong>(-0.153)</strong> </td>\n",
" <td style=\"background-color:rgb(250,124,124);color:black\"> 0.006 <strong>(0.837)</strong> </td>\n",
" <td> 0.00446 </td>\n",
" <td style=\"background-color:rgb(250,137,137);color:black\"> 0.004 <strong>(0.753)</strong> </td>\n",
" <td style=\"background-color:rgb(151,151,250);color:black\"> -0.0023 <strong>(-0.761)</strong> </td>\n",
" <td style=\"background-color:rgb(242,242,250);color:black\"> -0.005 <strong>(-0.058)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(238,238,250);color:black\"> -0.095 <strong>(-0.093)</strong> </td>\n",
" <td style=\"background-color:rgb(215,215,250);color:black\"> -0.304 <strong>(-0.273)</strong> </td>\n",
" <td style=\"background-color:rgb(250,130,130);color:black\"> 0.006 <strong>(0.803)</strong> </td>\n",
" <td style=\"background-color:rgb(250,137,137);color:black\"> 0.004 <strong>(0.753)</strong> </td>\n",
" <td> 0.00569 </td>\n",
" <td style=\"background-color:rgb(171,171,250);color:black\"> -0.0021 <strong>(-0.608)</strong> </td>\n",
" <td style=\"background-color:rgb(233,233,250);color:black\"> -0.013 <strong>(-0.131)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(200,200,250);color:black\"> -0.2364 <strong>(-0.388)</strong> </td>\n",
" <td style=\"background-color:rgb(226,226,250);color:black\"> -0.1248 <strong>(-0.188)</strong> </td>\n",
" <td style=\"background-color:rgb(152,152,250);color:black\"> -0.0035 <strong>(-0.751)</strong> </td>\n",
" <td style=\"background-color:rgb(151,151,250);color:black\"> -0.0023 <strong>(-0.761)</strong> </td>\n",
" <td style=\"background-color:rgb(171,171,250);color:black\"> -0.0021 <strong>(-0.608)</strong> </td>\n",
" <td> 0.00204 </td>\n",
" <td style=\"background-color:rgb(235,235,250);color:black\"> -0.0064 <strong>(-0.112)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> c </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,248,248);color:black\"> 0.2 <strong>(0.014)</strong> </td>\n",
" <td style=\"background-color:rgb(250,248,248);color:black\"> 0.2 <strong>(0.012)</strong> </td>\n",
" <td style=\"background-color:rgb(250,247,247);color:black\"> 0.002 <strong>(0.017)</strong> </td>\n",
" <td style=\"background-color:rgb(242,242,250);color:black\"> -0.005 <strong>(-0.058)</strong> </td>\n",
" <td style=\"background-color:rgb(233,233,250);color:black\"> -0.013 <strong>(-0.131)</strong> </td>\n",
" <td style=\"background-color:rgb(235,235,250);color:black\"> -0.0064 <strong>(-0.112)</strong> </td>\n",
" <td> 1.62 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ FCN = 247.8 (χ²/ndof = 4.7) │ Nfcn = 296 │\n",
"│ EDM = 5.03e-07 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
2023-08-14 15:01:33 +00:00
"│ 0 │ A_p1 │ 635 │ 14 │ │ │ │ │ │\n",
"│ 1 │ A_p2 │ 1.140e3 │ 0.015e3 │ │ │ │ │ │\n",
"│ 2 │ mu_p1 │ 53.5 │ 0.1 │ │ │ │ │ │\n",
"│ 3 │ mu_p2 │ 60.61 │ 0.07 │ │ │ │ │ │\n",
"│ 4 │ sigma_p1 │ 2.42 │ 0.08 │ │ │ │ │ │\n",
"│ 5 │ sigma_p2 │ 2.68 │ 0.05 │ │ │ │ │ │\n",
"│ 6 │ c │ 43.8 │ 1.3 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 c │\n",
"├──────────┼────────────────────────────────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ A_p1 │ 182 0.02e3 0.357 0.290 -0.095 -0.2364 0.2 │\n",
"│ A_p2 │ 0.02e3 217 -0.324 -0.151 -0.304 -0.1248 0.2 │\n",
"│ mu_p1 │ 0.357 -0.324 0.0105 0.006 0.006 -0.0035 0.002 │\n",
"│ mu_p2 │ 0.290 -0.151 0.006 0.00446 0.004 -0.0023 -0.005 │\n",
"│ sigma_p1 │ -0.095 -0.304 0.006 0.004 0.00569 -0.0021 -0.013 │\n",
"│ sigma_p2 │ -0.2364 -0.1248 -0.0035 -0.0023 -0.0021 0.00204 -0.0064 │\n",
"│ c │ 0.2 0.2 0.002 -0.005 -0.013 -0.0064 1.62 │\n",
"└──────────┴────────────────────────────────────────────────────────────────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def alternative_fit_model(x, A_p1, A_p2, mu_p1, mu_p2, sigma_p1, sigma_p2, c):\n",
" return peak(x, A_p1, mu_p1, sigma_p1) + peak(x, A_p2, mu_p2, sigma_p2) + c\n",
"\n",
"ls = cost.LeastSquares(center, entries, np.sqrt(entries), alternative_fit_model)\n",
"\n",
"mi = Minuit(ls, \n",
" A_p1 = 800, \n",
" A_p2 = 1400,\n",
" mu_p1 = 54,\n",
" mu_p2 = 60,\n",
" sigma_p1 = 2,\n",
" sigma_p2 = 2,\n",
" c = 100, \n",
" )\n",
"mi.limits['c'] = (0, None)\n",
"mi.fixed[:] = True\n",
"ls.mask = (center < 45) | (center >= 70)\n",
"mi.fixed[['c']] = False\n",
"mi.migrad()\n",
"ls.mask = None\n",
"mi.values['A_p1'] = 700\n",
"mi.values['sigma_p1'] = 3\n",
"mi.fixed[:] = True\n",
"mi.fixed[['A_p1', 'mu_p1', 'sigma_p1']] = False\n",
"mi.migrad()\n",
"mi.fixed[:] = True\n",
"mi.fixed[['A_p2', 'mu_p2', 'sigma_p2']] = False\n",
"mi.migrad()\n",
"mi.fixed[:] = False\n",
"mi.migrad()"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 61,
"id": "4aa0f3d9-1d0b-4b4c-b816-2a0cb9ae9793",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2023-08-14 15:01:33 +00:00
"247.75609338750667 53 4.67464327146239\n"
]
}
],
"source": [
"chi_squre, ndof = chi_squre_ndof(center, entries, np.sqrt(entries), alternative_fit_model, mi)\n",
"print(chi_squre, ndof, chi_squre/ndof)"
]
},
{
"cell_type": "markdown",
"id": "bcb62098-1e8b-4c9f-8aa3-048037f0d21e",
"metadata": {},
"source": [
"Fit obviusly worse...\n",
"\n",
"But is p-value of 0.4 better than 0.2? No ! Hypothesis test -> need to decide on threshold before..."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2aa83565-40bf-4a06-a289-772af9201699",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "19e53c1c-a95b-416f-a461-55786b812a96",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "1d790f2a-d2ca-454b-b207-eced7c2c498a",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "c020ed79-cf0d-4de4-855a-ef6b5307c6c7",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "9e474fae-192a-4067-91fc-d0b03b47d762",
"metadata": {},
"source": [
"When do assumptions break? \n",
"\n",
"E.g. low stats. \n",
"\n",
"Should we add ML and unbinned fits here? Maybe as outlook as otherwise too much?"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 62,
"id": "c3f1f1d4-4b84-45a1-9d23-4cbb8ba32c8c",
"metadata": {},
"outputs": [],
"source": [
"def lorentzian( x, x0, a, gam ):\n",
" return a * gam**2 / ( gam**2 + ( x - x0 )**2)"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 63,
"id": "c3b58808-f155-4194-b02e-e5f649cb86aa",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
2023-08-14 15:01:33 +00:00
"model_id": "f30ca0a8ec7f4a79a2bcb3743b624c3e",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5000 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from tqdm.notebook import tqdm\n",
"\n",
"res_good_model = []\n",
"res_overfitting = []\n",
"res_wrong_model = []\n",
"\n",
"def peak(x, A, mu, sigma):\n",
" return A*np.exp(-(x-mu)**2/(2*sigma**2))\n",
"\n",
"def lorentzian( x, x0, a, gam ):\n",
" return a * gam**2 / ( gam**2 + ( x - x0 )**2)\n",
"\n",
"\n",
"for i in tqdm(range(5000)):\n",
" \n",
" test_data = np.random.normal(0, 2, 5000)\n",
" \n",
" entries, edges = np.histogram(test_data, bins=25, range=(-4,4))\n",
" center = edges[:-1] + np.diff(edges)/2\n",
" \n",
" ls = cost.LeastSquares(center, entries, np.sqrt(entries), peak)\n",
" mi = Minuit(ls, \n",
" mu=0.1,\n",
" sigma=1.5,\n",
" A = 300\n",
" )\n",
" mi.migrad()\n",
" \n",
" chi, ndof = chi_squre_ndof(center, entries, np.sqrt(entries), peak, mi)\n",
" res_good_model.append(p_value(chi, ndof))\n",
"\n",
"\n",
" ls = cost.LeastSquares(center, entries, np.sqrt(entries)*1.1, peak)\n",
" mi = Minuit(ls, \n",
" mu=0.1,\n",
" sigma=1.5,\n",
" A = 300\n",
" )\n",
" mi.migrad()\n",
" \n",
" chi, ndof = chi_squre_ndof(center, entries, np.sqrt(entries)*1.1, peak, mi)\n",
" res_overfitting.append(p_value(chi, ndof))\n",
"\n",
"\n",
" ls = cost.LeastSquares(center, entries, np.sqrt(entries), lorentzian)\n",
" mi = Minuit(ls, \n",
" x0=0,\n",
" gam=3,\n",
" a = 300,\n",
" )\n",
" mi.migrad()\n",
" \n",
" chi, ndof = chi_squre_ndof(center, entries, np.sqrt(entries), lorentzian, mi)\n",
" res_wrong_model.append(p_value(chi, ndof))\n",
"\n",
"res_wrong_model = np.array(res_wrong_model)\n",
"res_good_model = np.array(res_good_model)"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 64,
"id": "f41e0b38-56b6-4f2a-bc75-075f622a2068",
"metadata": {},
"outputs": [
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fig, axes = plt.subplots()\n",
"axes.hist(res_good_model, bins=25, range=(0, 1), histtype='step', color='purple', label='Good model')\n",
"axes.hist(res_wrong_model, bins=25, range=(0, 1), histtype='step', color='orange', label='Wrong model')\n",
"axes.hist(res_overfitting, bins=25, range=(0, 1), histtype='step', color='firebrick', label='Too large uncertainties (10 %)')\n",
"axes.set_xlabel('p-value')\n",
"axes.set_ylabel('Number of fits')\n",
"axes.legend()\n",
"axes.axvline(0.1, color='k')\n",
"axes2 = plt.twiny()\n",
"axes2.set_xlabel('Red. $\\chi^2$')\n",
"axes2.set_xticks([0.2, 0.5, 0.8], ['> 1', '1', '< 1'])\n",
"plt.show()\n",
"\n",
"axes.set_yscale('log')\n",
"fig"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 65,
"id": "fc58ee5c-308c-4479-9236-751d7f158fe5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2023-08-14 15:01:33 +00:00
"Fraction of wrong model fits rejected: 0.9996\n",
"Fraction of good model fits rejected: 0.1010\n"
]
}
],
"source": [
"print(f'Fraction of wrong model fits rejected: {np.sum(res_wrong_model<0.1)/len(res_wrong_model):.4f}')\n",
"print(f'Fraction of good model fits rejected: {np.sum(res_good_model<0.1)/len(res_good_model):.4f}')"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 66,
"id": "d5f5efbe-ef8f-48b0-b27b-166f21cb5a06",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2023-08-14 15:01:33 +00:00
"Fraction of wrong model fits rejected: 0.9980\n",
"Fraction of good model fits rejected: 0.0526\n"
]
}
],
"source": [
"print(f'Fraction of wrong model fits rejected: {np.sum(res_wrong_model<0.05)/len(res_wrong_model):.4f}')\n",
"print(f'Fraction of good model fits rejected: {np.sum(res_good_model<0.05)/len(res_good_model):.4f}')"
]
},
{
"cell_type": "markdown",
"id": "de9861f6-7870-4dd8-8366-15e0c7dd5125",
"metadata": {},
"source": [
"Failed to reject model, NOT confirms model!"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e69f0a15-81a8-43e9-bda5-463705ad19c2",
"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.9.17"
}
},
"nbformat": 4,
"nbformat_minor": 5
}