Machine Learning Kurs im Rahmen der Studierendentage im SS 2023
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

871 lines
182 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "markdown",
  5. "metadata": {},
  6. "source": [
  7. "Exercise 3: Least square fit with a 3rd order polynomial with iminuit"
  8. ]
  9. },
  10. {
  11. "cell_type": "code",
  12. "execution_count": 1,
  13. "metadata": {},
  14. "outputs": [],
  15. "source": [
  16. "import numpy as np\n",
  17. "import matplotlib.pyplot as plt\n",
  18. "import math"
  19. ]
  20. },
  21. {
  22. "cell_type": "code",
  23. "execution_count": 2,
  24. "metadata": {},
  25. "outputs": [],
  26. "source": [
  27. "# Data x,y and dy\n",
  28. "x = np.array([0.2 , 0.4 , 0.6 , 0.8, 1. , 1.2, 1.4, 1.6, 1.8, 2., 2.2, 2.4, 2.6, 2.8 , 3., 3.2 ,3.4, 3.6, 3.8,4.],dtype='d')\n",
  29. "dy = np.array([0.04,0.021,0.035,0.03,0.029,0.019,0.024,0.018,0.019,0.022,0.02,0.025,0.018,0.024,0.019,0.021,0.03,0.019,0.03,0.024 ], dtype='d')\n",
  30. "y = np.array([1.792,1.695,1.541,1.514,1.427,1.399,1.388,1.270,1.262,1.228,1.189,1.182,1.121,1.129,1.124,1.089,1.092,1.084,1.058,1.057 ], dtype='d')"
  31. ]
  32. },
  33. {
  34. "cell_type": "code",
  35. "execution_count": 3,
  36. "metadata": {},
  37. "outputs": [],
  38. "source": [
  39. "# Define fit functions - a 3rd order polynomial\n",
  40. "def pol3(a0, a1, a2, a3):\n",
  41. " return a0 + x*a1 + a2*x**2 + a3*x**3"
  42. ]
  43. },
  44. {
  45. "cell_type": "code",
  46. "execution_count": 4,
  47. "metadata": {},
  48. "outputs": [],
  49. "source": [
  50. "# least-squares function = sum of data residuals squared\n",
  51. "def LSQ(a0, a1, a2, a3):\n",
  52. " return np.sum((y - pol3(a0, a1, a2, a3)) ** 2 / dy ** 2)"
  53. ]
  54. },
  55. {
  56. "cell_type": "code",
  57. "execution_count": 5,
  58. "metadata": {},
  59. "outputs": [],
  60. "source": [
  61. "# import minuit2 fitting library\n",
  62. "from iminuit import Minuit"
  63. ]
  64. },
  65. {
  66. "cell_type": "code",
  67. "execution_count": 6,
  68. "metadata": {},
  69. "outputs": [],
  70. "source": [
  71. "# create instance of Minuit and use LSQ function to minimize\n",
  72. "LSQ.errordef = Minuit.LEAST_SQUARES\n",
  73. "m = Minuit(LSQ,a0=0.01, a1=0.05 ,a2=0.01 ,a3=0.001)"
  74. ]
  75. },
  76. {
  77. "cell_type": "code",
  78. "execution_count": 7,
  79. "metadata": {},
  80. "outputs": [
  81. {
  82. "data": {
  83. "text/html": [
  84. "<table>\n",
  85. " <tr>\n",
  86. " <td></td>\n",
  87. " <th title=\"Variable name\"> Name </th>\n",
  88. " <th title=\"Value of parameter\"> Value </th>\n",
  89. " <th title=\"Hesse error\"> Hesse Error </th>\n",
  90. " <th title=\"Minos lower error\"> Minos Error- </th>\n",
  91. " <th title=\"Minos upper error\"> Minos Error+ </th>\n",
  92. " <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
  93. " <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
  94. " <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
  95. " </tr>\n",
  96. " <tr>\n",
  97. " <th> 0 </th>\n",
  98. " <td> a0 </td>\n",
  99. " <td> 10.0e-3 </td>\n",
  100. " <td> 0.1e-3 </td>\n",
  101. " <td> </td>\n",
  102. " <td> </td>\n",
  103. " <td> </td>\n",
  104. " <td> </td>\n",
  105. " <td> </td>\n",
  106. " </tr>\n",
  107. " <tr>\n",
  108. " <th> 1 </th>\n",
  109. " <td> a1 </td>\n",
  110. " <td> 50.0e-3 </td>\n",
  111. " <td> 0.5e-3 </td>\n",
  112. " <td> </td>\n",
  113. " <td> </td>\n",
  114. " <td> </td>\n",
  115. " <td> </td>\n",
  116. " <td> </td>\n",
  117. " </tr>\n",
  118. " <tr>\n",
  119. " <th> 2 </th>\n",
  120. " <td> a2 </td>\n",
  121. " <td> 10.0e-3 </td>\n",
  122. " <td> 0.1e-3 </td>\n",
  123. " <td> </td>\n",
  124. " <td> </td>\n",
  125. " <td> </td>\n",
  126. " <td> </td>\n",
  127. " <td> </td>\n",
  128. " </tr>\n",
  129. " <tr>\n",
  130. " <th> 3 </th>\n",
  131. " <td> a3 </td>\n",
  132. " <td> 1.00e-3 </td>\n",
  133. " <td> 0.01e-3 </td>\n",
  134. " <td> </td>\n",
  135. " <td> </td>\n",
  136. " <td> </td>\n",
  137. " <td> </td>\n",
  138. " <td> </td>\n",
  139. " </tr>\n",
  140. "</table>"
  141. ],
  142. "text/plain": [
  143. "┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
  144. "│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
  145. "├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
  146. "│ 0 │ a0 │ 10.0e-3 │ 0.1e-3 │ │ │ │ │ │\n",
  147. "│ 1 │ a1 │ 50.0e-3 │ 0.5e-3 │ │ │ │ │ │\n",
  148. "│ 2 │ a2 │ 10.0e-3 │ 0.1e-3 │ │ │ │ │ │\n",
  149. "│ 3 │ a3 │ 1.00e-3 │ 0.01e-3 │ │ │ │ │ │\n",
  150. "└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘"
  151. ]
  152. },
  153. "execution_count": 7,
  154. "metadata": {},
  155. "output_type": "execute_result"
  156. }
  157. ],
  158. "source": [
  159. "m.params"
  160. ]
  161. },
  162. {
  163. "cell_type": "code",
  164. "execution_count": 8,
  165. "metadata": {},
  166. "outputs": [
  167. {
  168. "name": "stdout",
  169. "output_type": "stream",
  170. "text": [
  171. "Chi2/ndof = 0.8205035668806628\n"
  172. ]
  173. }
  174. ],
  175. "source": [
  176. "# run migrad for minimization\n",
  177. "m.migrad()\n",
  178. "chi2 = m.fval / (len(y) - len(m.values))\n",
  179. "print (\"Chi2/ndof =\" , chi2)"
  180. ]
  181. },
  182. {
  183. "cell_type": "code",
  184. "execution_count": 9,
  185. "metadata": {},
  186. "outputs": [
  187. {
  188. "data": {
  189. "text/html": [
  190. "<table>\n",
  191. " <tr>\n",
  192. " <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
  193. " </tr>\n",
  194. " <tr>\n",
  195. " <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 13.13 </td>\n",
  196. " <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 120 </td>\n",
  197. " </tr>\n",
  198. " <tr>\n",
  199. " <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 7.21e-17 (Goal: 0.0002) </td>\n",
  200. " <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
  201. " </tr>\n",
  202. " <tr>\n",
  203. " <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
  204. " <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
  205. " </tr>\n",
  206. " <tr>\n",
  207. " <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
  208. " <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
  209. " </tr>\n",
  210. " <tr>\n",
  211. " <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
  212. " <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
  213. " <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
  214. " <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
  215. " <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
  216. " </tr>\n",
  217. "</table><table>\n",
  218. " <tr>\n",
  219. " <td></td>\n",
  220. " <th title=\"Variable name\"> Name </th>\n",
  221. " <th title=\"Value of parameter\"> Value </th>\n",
  222. " <th title=\"Hesse error\"> Hesse Error </th>\n",
  223. " <th title=\"Minos lower error\"> Minos Error- </th>\n",
  224. " <th title=\"Minos upper error\"> Minos Error+ </th>\n",
  225. " <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
  226. " <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
  227. " <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
  228. " </tr>\n",
  229. " <tr>\n",
  230. " <th> 0 </th>\n",
  231. " <td> a0 </td>\n",
  232. " <td> 1.884 </td>\n",
  233. " <td> 0.031 </td>\n",
  234. " <td> </td>\n",
  235. " <td> </td>\n",
  236. " <td> </td>\n",
  237. " <td> </td>\n",
  238. " <td> </td>\n",
  239. " </tr>\n",
  240. " <tr>\n",
  241. " <th> 1 </th>\n",
  242. " <td> a1 </td>\n",
  243. " <td> -0.56 </td>\n",
  244. " <td> 0.06 </td>\n",
  245. " <td> </td>\n",
  246. " <td> </td>\n",
  247. " <td> </td>\n",
  248. " <td> </td>\n",
  249. " <td> </td>\n",
  250. " </tr>\n",
  251. " <tr>\n",
  252. " <th> 2 </th>\n",
  253. " <td> a2 </td>\n",
  254. " <td> 0.136 </td>\n",
  255. " <td> 0.030 </td>\n",
  256. " <td> </td>\n",
  257. " <td> </td>\n",
  258. " <td> </td>\n",
  259. " <td> </td>\n",
  260. " <td> </td>\n",
  261. " </tr>\n",
  262. " <tr>\n",
  263. " <th> 3 </th>\n",
  264. " <td> a3 </td>\n",
  265. " <td> -0.012 </td>\n",
  266. " <td> 0.005 </td>\n",
  267. " <td> </td>\n",
  268. " <td> </td>\n",
  269. " <td> </td>\n",
  270. " <td> </td>\n",
  271. " <td> </td>\n",
  272. " </tr>\n",
  273. "</table><table>\n",
  274. " <tr>\n",
  275. " <td></td>\n",
  276. " <th> a0 </th>\n",
  277. " <th> a1 </th>\n",
  278. " <th> a2 </th>\n",
  279. " <th> a3 </th>\n",
  280. " </tr>\n",
  281. " <tr>\n",
  282. " <th> a0 </th>\n",
  283. " <td> 0.000952 </td>\n",
  284. " <td style=\"background-color:rgb(131,131,250);color:black\"> -0.0016 <strong>(-0.918)</strong> </td>\n",
  285. " <td style=\"background-color:rgb(250,127,127);color:black\"> 0.000752 <strong>(0.822)</strong> </td>\n",
  286. " <td style=\"background-color:rgb(153,153,250);color:black\"> -0.000105 <strong>(-0.746)</strong> </td>\n",
  287. " </tr>\n",
  288. " <tr>\n",
  289. " <th> a1 </th>\n",
  290. " <td style=\"background-color:rgb(131,131,250);color:black\"> -0.0016 <strong>(-0.918)</strong> </td>\n",
  291. " <td> 0.00317 </td>\n",
  292. " <td style=\"background-color:rgb(123,123,250);color:black\"> -0.00163 <strong>(-0.975)</strong> </td>\n",
  293. " <td style=\"background-color:rgb(250,110,110);color:black\"> 0.00024 <strong>(0.930)</strong> </td>\n",
  294. " </tr>\n",
  295. " <tr>\n",
  296. " <th> a2 </th>\n",
  297. " <td style=\"background-color:rgb(250,127,127);color:black\"> 0.000752 <strong>(0.822)</strong> </td>\n",
  298. " <td style=\"background-color:rgb(123,123,250);color:black\"> -0.00163 <strong>(-0.975)</strong> </td>\n",
  299. " <td> 0.000879 </td>\n",
  300. " <td style=\"background-color:rgb(122,122,250);color:black\"> -0.000134 <strong>(-0.988)</strong> </td>\n",
  301. " </tr>\n",
  302. " <tr>\n",
  303. " <th> a3 </th>\n",
  304. " <td style=\"background-color:rgb(153,153,250);color:black\"> -0.000105 <strong>(-0.746)</strong> </td>\n",
  305. " <td style=\"background-color:rgb(250,110,110);color:black\"> 0.00024 <strong>(0.930)</strong> </td>\n",
  306. " <td style=\"background-color:rgb(122,122,250);color:black\"> -0.000134 <strong>(-0.988)</strong> </td>\n",
  307. " <td> 2.1e-05 </td>\n",
  308. " </tr>\n",
  309. "</table>"
  310. ],
  311. "text/plain": [
  312. "┌─────────────────────────────────────────────────────────────────────────┐\n",
  313. "│ Migrad │\n",
  314. "├──────────────────────────────────┬──────────────────────────────────────┤\n",
  315. "│ FCN = 13.13 │ Nfcn = 120 │\n",
  316. "│ EDM = 7.21e-17 (Goal: 0.0002) │ │\n",
  317. "├──────────────────────────────────┼──────────────────────────────────────┤\n",
  318. "│ Valid Minimum │ No Parameters at limit │\n",
  319. "├──────────────────────────────────┼──────────────────────────────────────┤\n",
  320. "│ Below EDM threshold (goal x 10) │ Below call limit │\n",
  321. "├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
  322. "│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
  323. "└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
  324. "┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
  325. "│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
  326. "├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
  327. "│ 0 │ a0 │ 1.884 │ 0.031 │ │ │ │ │ │\n",
  328. "│ 1 │ a1 │ -0.56 │ 0.06 │ │ │ │ │ │\n",
  329. "│ 2 │ a2 │ 0.136 │ 0.030 │ │ │ │ │ │\n",
  330. "│ 3 │ a3 │ -0.012 │ 0.005 │ │ │ │ │ │\n",
  331. "└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
  332. "┌────┬─────────────────────────────────────────┐\n",
  333. "│ │ a0 a1 a2 a3 │\n",
  334. "├────┼─────────────────────────────────────────┤\n",
  335. "│ a0 │ 0.000952 -0.0016 0.000752 -0.000105 │\n",
  336. "│ a1 │ -0.0016 0.00317 -0.00163 0.00024 │\n",
  337. "│ a2 │ 0.000752 -0.00163 0.000879 -0.000134 │\n",
  338. "│ a3 │ -0.000105 0.00024 -0.000134 2.1e-05 │\n",
  339. "└────┴─────────────────────────────────────────┘"
  340. ]
  341. },
  342. "execution_count": 9,
  343. "metadata": {},
  344. "output_type": "execute_result"
  345. }
  346. ],
  347. "source": [
  348. "# run covariance \n",
  349. "m.hesse()"
  350. ]
  351. },
  352. {
  353. "cell_type": "code",
  354. "execution_count": 10,
  355. "metadata": {},
  356. "outputs": [
  357. {
  358. "name": "stdout",
  359. "output_type": "stream",
  360. "text": [
  361. "┌────┬─────────────────────────────────────────┐\n",
  362. "│ │ a0 a1 a2 a3 │\n",
  363. "├────┼─────────────────────────────────────────┤\n",
  364. "│ a0 │ 0.000952 -0.0016 0.000752 -0.000105 │\n",
  365. "│ a1 │ -0.0016 0.00317 -0.00163 0.00024 │\n",
  366. "│ a2 │ 0.000752 -0.00163 0.000879 -0.000134 │\n",
  367. "│ a3 │ -0.000105 0.00024 -0.000134 2.1e-05 │\n",
  368. "└────┴─────────────────────────────────────────┘\n"
  369. ]
  370. }
  371. ],
  372. "source": [
  373. "#get correlation matrix\n",
  374. "cov = m.covariance\n",
  375. "print (cov)"
  376. ]
  377. },
  378. {
  379. "cell_type": "code",
  380. "execution_count": 11,
  381. "metadata": {},
  382. "outputs": [
  383. {
  384. "name": "stdout",
  385. "output_type": "stream",
  386. "text": [
  387. "-0.0015953258466008735\n",
  388. "0.0007515996501623164\n"
  389. ]
  390. }
  391. ],
  392. "source": [
  393. "# access elements of the numpy arrays\n",
  394. "print(cov[0, 1])\n",
  395. "print(cov[0, 2])"
  396. ]
  397. },
  398. {
  399. "cell_type": "code",
  400. "execution_count": 12,
  401. "metadata": {},
  402. "outputs": [
  403. {
  404. "data": {
  405. "text/html": [
  406. "<table>\n",
  407. " <tr>\n",
  408. " <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
  409. " </tr>\n",
  410. " <tr>\n",
  411. " <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 13.13 </td>\n",
  412. " <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 280 </td>\n",
  413. " </tr>\n",
  414. " <tr>\n",
  415. " <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 7.21e-17 (Goal: 0.0002) </td>\n",
  416. " <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
  417. " </tr>\n",
  418. " <tr>\n",
  419. " <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
  420. " <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
  421. " </tr>\n",
  422. " <tr>\n",
  423. " <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
  424. " <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
  425. " </tr>\n",
  426. " <tr>\n",
  427. " <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
  428. " <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
  429. " <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
  430. " <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
  431. " <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
  432. " </tr>\n",
  433. "</table><table>\n",
  434. " <tr>\n",
  435. " <td></td>\n",
  436. " <th title=\"Variable name\"> Name </th>\n",
  437. " <th title=\"Value of parameter\"> Value </th>\n",
  438. " <th title=\"Hesse error\"> Hesse Error </th>\n",
  439. " <th title=\"Minos lower error\"> Minos Error- </th>\n",
  440. " <th title=\"Minos upper error\"> Minos Error+ </th>\n",
  441. " <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
  442. " <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
  443. " <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
  444. " </tr>\n",
  445. " <tr>\n",
  446. " <th> 0 </th>\n",
  447. " <td> a0 </td>\n",
  448. " <td> 1.884 </td>\n",
  449. " <td> 0.031 </td>\n",
  450. " <td> -0.031 </td>\n",
  451. " <td> 0.031 </td>\n",
  452. " <td> </td>\n",
  453. " <td> </td>\n",
  454. " <td> </td>\n",
  455. " </tr>\n",
  456. " <tr>\n",
  457. " <th> 1 </th>\n",
  458. " <td> a1 </td>\n",
  459. " <td> -0.56 </td>\n",
  460. " <td> 0.06 </td>\n",
  461. " <td> -0.06 </td>\n",
  462. " <td> 0.06 </td>\n",
  463. " <td> </td>\n",
  464. " <td> </td>\n",
  465. " <td> </td>\n",
  466. " </tr>\n",
  467. " <tr>\n",
  468. " <th> 2 </th>\n",
  469. " <td> a2 </td>\n",
  470. " <td> 0.136 </td>\n",
  471. " <td> 0.030 </td>\n",
  472. " <td> -0.030 </td>\n",
  473. " <td> 0.030 </td>\n",
  474. " <td> </td>\n",
  475. " <td> </td>\n",
  476. " <td> </td>\n",
  477. " </tr>\n",
  478. " <tr>\n",
  479. " <th> 3 </th>\n",
  480. " <td> a3 </td>\n",
  481. " <td> -0.012 </td>\n",
  482. " <td> 0.005 </td>\n",
  483. " <td> -0.005 </td>\n",
  484. " <td> 0.005 </td>\n",
  485. " <td> </td>\n",
  486. " <td> </td>\n",
  487. " <td> </td>\n",
  488. " </tr>\n",
  489. "</table><table>\n",
  490. " <tr>\n",
  491. " <td></td>\n",
  492. " <th colspan=\"2\" style=\"text-align:center\" title=\"Parameter name\"> a0 </th>\n",
  493. " <th colspan=\"2\" style=\"text-align:center\" title=\"Parameter name\"> a1 </th>\n",
  494. " <th colspan=\"2\" style=\"text-align:center\" title=\"Parameter name\"> a2 </th>\n",
  495. " <th colspan=\"2\" style=\"text-align:center\" title=\"Parameter name\"> a3 </th>\n",
  496. " </tr>\n",
  497. " <tr>\n",
  498. " <th title=\"Lower and upper minos error of the parameter\"> Error </th>\n",
  499. " <td> -0.031 </td>\n",
  500. " <td> 0.031 </td>\n",
  501. " <td> -0.06 </td>\n",
  502. " <td> 0.06 </td>\n",
  503. " <td> -0.03 </td>\n",
  504. " <td> 0.03 </td>\n",
  505. " <td> -0.005 </td>\n",
  506. " <td> 0.005 </td>\n",
  507. " </tr>\n",
  508. " <tr>\n",
  509. " <th title=\"Validity of lower/upper minos error\"> Valid </th>\n",
  510. " <td style=\"background-color:#92CCA6;color:black\"> True </td>\n",
  511. " <td style=\"background-color:#92CCA6;color:black\"> True </td>\n",
  512. " <td style=\"background-color:#92CCA6;color:black\"> True </td>\n",
  513. " <td style=\"background-color:#92CCA6;color:black\"> True </td>\n",
  514. " <td style=\"background-color:#92CCA6;color:black\"> True </td>\n",
  515. " <td style=\"background-color:#92CCA6;color:black\"> True </td>\n",
  516. " <td style=\"background-color:#92CCA6;color:black\"> True </td>\n",
  517. " <td style=\"background-color:#92CCA6;color:black\"> True </td>\n",
  518. " </tr>\n",
  519. " <tr>\n",
  520. " <th title=\"Did scan hit limit of any parameter?\"> At Limit </th>\n",
  521. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  522. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  523. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  524. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  525. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  526. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  527. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  528. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  529. " </tr>\n",
  530. " <tr>\n",
  531. " <th title=\"Did scan hit function call limit?\"> Max FCN </th>\n",
  532. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  533. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  534. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  535. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  536. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  537. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  538. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  539. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  540. " </tr>\n",
  541. " <tr>\n",
  542. " <th title=\"New minimum found when doing scan?\"> New Min </th>\n",
  543. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  544. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  545. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  546. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  547. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  548. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  549. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  550. " <td style=\"background-color:#92CCA6;color:black\"> False </td>\n",
  551. " </tr>\n",
  552. "</table><table>\n",
  553. " <tr>\n",
  554. " <td></td>\n",
  555. " <th> a0 </th>\n",
  556. " <th> a1 </th>\n",
  557. " <th> a2 </th>\n",
  558. " <th> a3 </th>\n",
  559. " </tr>\n",
  560. " <tr>\n",
  561. " <th> a0 </th>\n",
  562. " <td> 0.000952 </td>\n",
  563. " <td style=\"background-color:rgb(131,131,250);color:black\"> -0.0016 <strong>(-0.918)</strong> </td>\n",
  564. " <td style=\"background-color:rgb(250,127,127);color:black\"> 0.000752 <strong>(0.822)</strong> </td>\n",
  565. " <td style=\"background-color:rgb(153,153,250);color:black\"> -0.000105 <strong>(-0.746)</strong> </td>\n",
  566. " </tr>\n",
  567. " <tr>\n",
  568. " <th> a1 </th>\n",
  569. " <td style=\"background-color:rgb(131,131,250);color:black\"> -0.0016 <strong>(-0.918)</strong> </td>\n",
  570. " <td> 0.00317 </td>\n",
  571. " <td style=\"background-color:rgb(123,123,250);color:black\"> -0.00163 <strong>(-0.975)</strong> </td>\n",
  572. " <td style=\"background-color:rgb(250,110,110);color:black\"> 0.00024 <strong>(0.930)</strong> </td>\n",
  573. " </tr>\n",
  574. " <tr>\n",
  575. " <th> a2 </th>\n",
  576. " <td style=\"background-color:rgb(250,127,127);color:black\"> 0.000752 <strong>(0.822)</strong> </td>\n",
  577. " <td style=\"background-color:rgb(123,123,250);color:black\"> -0.00163 <strong>(-0.975)</strong> </td>\n",
  578. " <td> 0.000879 </td>\n",
  579. " <td style=\"background-color:rgb(122,122,250);color:black\"> -0.000134 <strong>(-0.988)</strong> </td>\n",
  580. " </tr>\n",
  581. " <tr>\n",
  582. " <th> a3 </th>\n",
  583. " <td style=\"background-color:rgb(153,153,250);color:black\"> -0.000105 <strong>(-0.746)</strong> </td>\n",
  584. " <td style=\"background-color:rgb(250,110,110);color:black\"> 0.00024 <strong>(0.930)</strong> </td>\n",
  585. " <td style=\"background-color:rgb(122,122,250);color:black\"> -0.000134 <strong>(-0.988)</strong> </td>\n",
  586. " <td> 2.1e-05 </td>\n",
  587. " </tr>\n",
  588. "</table>"
  589. ],
  590. "text/plain": [
  591. "┌─────────────────────────────────────────────────────────────────────────┐\n",
  592. "│ Migrad │\n",
  593. "├──────────────────────────────────┬──────────────────────────────────────┤\n",
  594. "│ FCN = 13.13 │ Nfcn = 280 │\n",
  595. "│ EDM = 7.21e-17 (Goal: 0.0002) │ │\n",
  596. "├──────────────────────────────────┼──────────────────────────────────────┤\n",
  597. "│ Valid Minimum │ No Parameters at limit │\n",
  598. "├──────────────────────────────────┼──────────────────────────────────────┤\n",
  599. "│ Below EDM threshold (goal x 10) │ Below call limit │\n",
  600. "├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
  601. "│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
  602. "└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
  603. "┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
  604. "│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
  605. "├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
  606. "│ 0 │ a0 │ 1.884 │ 0.031 │ -0.031 │ 0.031 │ │ │ │\n",
  607. "│ 1 │ a1 │ -0.56 │ 0.06 │ -0.06 │ 0.06 │ │ │ │\n",
  608. "│ 2 │ a2 │ 0.136 │ 0.030 │ -0.030 │ 0.030 │ │ │ │\n",
  609. "│ 3 │ a3 │ -0.012 │ 0.005 │ -0.005 │ 0.005 │ │ │ │\n",
  610. "└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
  611. "┌──────────┬───────────────────────┬───────────────────────┬───────────────────────┬───────────────────────┐\n",
  612. "│ │ a0 │ a1 │ a2 │ a3 │\n",
  613. "├──────────┼───────────┬───────────┼───────────┬───────────┼───────────┬───────────┼───────────┬───────────┤\n",
  614. "│ Error │ -0.031 │ 0.031 │ -0.06 │ 0.06 │ -0.03 │ 0.03 │ -0.005 │ 0.005 │\n",
  615. "│ Valid │ True │ True │ True │ True │ True │ True │ True │ True │\n",
  616. "│ At Limit │ False │ False │ False │ False │ False │ False │ False │ False │\n",
  617. "│ Max FCN │ False │ False │ False │ False │ False │ False │ False │ False │\n",
  618. "│ New Min │ False │ False │ False │ False │ False │ False │ False │ False │\n",
  619. "└──────────┴───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴───────────┘\n",
  620. "┌────┬─────────────────────────────────────────┐\n",
  621. "│ │ a0 a1 a2 a3 │\n",
  622. "├────┼─────────────────────────────────────────┤\n",
  623. "│ a0 │ 0.000952 -0.0016 0.000752 -0.000105 │\n",
  624. "│ a1 │ -0.0016 0.00317 -0.00163 0.00024 │\n",
  625. "│ a2 │ 0.000752 -0.00163 0.000879 -0.000134 │\n",
  626. "│ a3 │ -0.000105 0.00024 -0.000134 2.1e-05 │\n",
  627. "└────┴─────────────────────────────────────────┘"
  628. ]
  629. },
  630. "execution_count": 12,
  631. "metadata": {},
  632. "output_type": "execute_result"
  633. }
  634. ],
  635. "source": [
  636. "# run minos error analysis\n",
  637. "# The Minos algorithm uses the profile likelihood method to compute\n",
  638. "# (generally asymmetric) confidence intervals.\n",
  639. "m.minos()"
  640. ]
  641. },
  642. {
  643. "cell_type": "code",
  644. "execution_count": 13,
  645. "metadata": {},
  646. "outputs": [
  647. {
  648. "data": {
  649. "text/plain": [
  650. "<matplotlib.contour.ContourSet at 0x7f783a26f280>"
  651. ]
  652. },
  653. "execution_count": 13,
  654. "metadata": {},
  655. "output_type": "execute_result"
  656. },
  657. {
  658. "data": {
  659. "image/png": "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
  660. "text/plain": [
  661. "<Figure size 640x480 with 1 Axes>"
  662. ]
  663. },
  664. "metadata": {},
  665. "output_type": "display_data"
  666. }
  667. ],
  668. "source": [
  669. "# Get a 2D contour of the function around the minimum for 2 parameters\n",
  670. "# and draw a 2 D contours up to 4 sigma of a1 and a2 \n",
  671. "m.draw_mncontour(\"a1\", \"a2\", cl=[1, 2, 3, 4])\n"
  672. ]
  673. },
  674. {
  675. "cell_type": "code",
  676. "execution_count": 14,
  677. "metadata": {},
  678. "outputs": [
  679. {
  680. "data": {
  681. "text/plain": [
  682. "(array([0.07628965, 0.07748762, 0.07868559, 0.07988356, 0.08108153,\n",
  683. " 0.0822795 , 0.08347748, 0.08467545, 0.08587342, 0.08707139,\n",
  684. " 0.08826936, 0.08946733, 0.0906653 , 0.09186328, 0.09306125,\n",
  685. " 0.09425922, 0.09545719, 0.09665516, 0.09785313, 0.0990511 ,\n",
  686. " 0.10024908, 0.10144705, 0.10264502, 0.10384299, 0.10504096,\n",
  687. " 0.10623893, 0.1074369 , 0.10863488, 0.10983285, 0.11103082,\n",
  688. " 0.11222879, 0.11342676, 0.11462473, 0.1158227 , 0.11702068,\n",
  689. " 0.11821865, 0.11941662, 0.12061459, 0.12181256, 0.12301053,\n",
  690. " 0.12420851, 0.12540648, 0.12660445, 0.12780242, 0.12900039,\n",
  691. " 0.13019836, 0.13139633, 0.13259431, 0.13379228, 0.13499025,\n",
  692. " 0.13618822, 0.13738619, 0.13858416, 0.13978213, 0.14098011,\n",
  693. " 0.14217808, 0.14337605, 0.14457402, 0.14577199, 0.14696996,\n",
  694. " 0.14816793, 0.14936591, 0.15056388, 0.15176185, 0.15295982,\n",
  695. " 0.15415779, 0.15535576, 0.15655373, 0.15775171, 0.15894968,\n",
  696. " 0.16014765, 0.16134562, 0.16254359, 0.16374156, 0.16493953,\n",
  697. " 0.16613751, 0.16733548, 0.16853345, 0.16973142, 0.17092939,\n",
  698. " 0.17212736, 0.17332533, 0.17452331, 0.17572128, 0.17691925,\n",
  699. " 0.17811722, 0.17931519, 0.18051316, 0.18171113, 0.18290911,\n",
  700. " 0.18410708, 0.18530505, 0.18650302, 0.18770099, 0.18889896,\n",
  701. " 0.19009693, 0.19129491, 0.19249288, 0.19369085, 0.19488882]),\n",
  702. " array([7.76355388e+03, 7.45301172e+03, 7.14880716e+03, 6.85094020e+03,\n",
  703. " 6.55941083e+03, 6.27421905e+03, 5.99536487e+03, 5.72284829e+03,\n",
  704. " 5.45666930e+03, 5.19682790e+03, 4.94332410e+03, 4.69615790e+03,\n",
  705. " 4.45532929e+03, 4.22083827e+03, 3.99268485e+03, 3.77086903e+03,\n",
  706. " 3.55539080e+03, 3.34625016e+03, 3.14344712e+03, 2.94698168e+03,\n",
  707. " 2.75685383e+03, 2.57306357e+03, 2.39561091e+03, 2.22449585e+03,\n",
  708. " 2.05971838e+03, 1.90127850e+03, 1.74917622e+03, 1.60341154e+03,\n",
  709. " 1.46398445e+03, 1.33089495e+03, 1.20414305e+03, 1.08372875e+03,\n",
  710. " 9.69652035e+02, 8.61912920e+02, 7.60511400e+02, 6.65447475e+02,\n",
  711. " 5.76721145e+02, 4.94332410e+02, 4.18281270e+02, 3.48567725e+02,\n",
  712. " 2.85191775e+02, 2.28153420e+02, 1.77452660e+02, 1.33089495e+02,\n",
  713. " 9.50639250e+01, 6.33759500e+01, 3.80255700e+01, 1.90127850e+01,\n",
  714. " 6.33759500e+00, 8.32667268e-11, 0.00000000e+00, 6.33759500e+00,\n",
  715. " 1.90127850e+01, 3.80255700e+01, 6.33759500e+01, 9.50639250e+01,\n",
  716. " 1.33089495e+02, 1.77452660e+02, 2.28153420e+02, 2.85191775e+02,\n",
  717. " 3.48567725e+02, 4.18281270e+02, 4.94332410e+02, 5.76721145e+02,\n",
  718. " 6.65447475e+02, 7.60511400e+02, 8.61912920e+02, 9.69652035e+02,\n",
  719. " 1.08372875e+03, 1.20414305e+03, 1.33089495e+03, 1.46398445e+03,\n",
  720. " 1.60341154e+03, 1.74917622e+03, 1.90127850e+03, 2.05971838e+03,\n",
  721. " 2.22449585e+03, 2.39561091e+03, 2.57306357e+03, 2.75685383e+03,\n",
  722. " 2.94698168e+03, 3.14344712e+03, 3.34625016e+03, 3.55539080e+03,\n",
  723. " 3.77086903e+03, 3.99268485e+03, 4.22083827e+03, 4.45532929e+03,\n",
  724. " 4.69615790e+03, 4.94332410e+03, 5.19682790e+03, 5.45666930e+03,\n",
  725. " 5.72284829e+03, 5.99536487e+03, 6.27421905e+03, 6.55941083e+03,\n",
  726. " 6.85094020e+03, 7.14880716e+03, 7.45301172e+03, 7.76355388e+03]))"
  727. ]
  728. },
  729. "execution_count": 14,
  730. "metadata": {},
  731. "output_type": "execute_result"
  732. },
  733. {
  734. "data": {
  735. "image/png": "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
  736. "text/plain": [
  737. "<Figure size 640x480 with 1 Axes>"
  738. ]
  739. },
  740. "metadata": {},
  741. "output_type": "display_data"
  742. }
  743. ],
  744. "source": [
  745. "m.draw_profile(\"a2\",subtract_min=True)"
  746. ]
  747. },
  748. {
  749. "cell_type": "code",
  750. "execution_count": 15,
  751. "metadata": {},
  752. "outputs": [
  753. {
  754. "name": "stdout",
  755. "output_type": "stream",
  756. "text": [
  757. "-0.029647391105505568\n",
  758. "0.029647391215961143\n"
  759. ]
  760. }
  761. ],
  762. "source": [
  763. "# access fit results by parameter name and get minos asymetric errors\n",
  764. "print (m.merrors['a2'].lower)\n",
  765. "print (m.merrors['a2'].upper)"
  766. ]
  767. },
  768. {
  769. "cell_type": "code",
  770. "execution_count": 16,
  771. "metadata": {},
  772. "outputs": [
  773. {
  774. "name": "stdout",
  775. "output_type": "stream",
  776. "text": [
  777. "<ValueView a0=1.884312126113227 a1=-0.555095569066645 a2=0.135589233702581 a3=-0.012129739293476468> <ErrorView a0=0.030846480016973075 a1=0.056345427583826234 a2=0.029649793193055433 a3=0.004578762777736633>\n",
  778. "<ErrorView a0=0.030846480016973075 a1=0.056345427583826234 a2=0.029649793193055433 a3=0.004578762777736633>\n"
  779. ]
  780. }
  781. ],
  782. "source": [
  783. "# more print out\n",
  784. "print (m.values,m.errors)\n",
  785. "print (m.errors)"
  786. ]
  787. },
  788. {
  789. "cell_type": "code",
  790. "execution_count": 17,
  791. "metadata": {},
  792. "outputs": [],
  793. "source": [
  794. "# Access fit results\n",
  795. "a0_fit = m.values[\"a0\"]\n",
  796. "a1_fit = m.values[\"a1\"]\n",
  797. "a2_fit = m.values[\"a2\"]\n",
  798. "a3_fit = m.values[\"a3\"]"
  799. ]
  800. },
  801. {
  802. "cell_type": "code",
  803. "execution_count": 18,
  804. "metadata": {},
  805. "outputs": [],
  806. "source": [
  807. "# display fitted function \n",
  808. "x_plot = np.linspace( 0.1, 4.1 , 100 )\n",
  809. "y_fit = a0_fit + a1_fit * x_plot + a2_fit * x_plot**2 + a3_fit * x_plot**3\n"
  810. ]
  811. },
  812. {
  813. "cell_type": "code",
  814. "execution_count": 19,
  815. "metadata": {},
  816. "outputs": [
  817. {
  818. "data": {
  819. "image/png": "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
  820. "text/plain": [
  821. "<Figure size 640x480 with 1 Axes>"
  822. ]
  823. },
  824. "metadata": {},
  825. "output_type": "display_data"
  826. }
  827. ],
  828. "source": [
  829. "plt.figure()\n",
  830. "\n",
  831. "plt.errorbar(x, y, dy , fmt=\"o\")\n",
  832. "plt.plot(x_plot,y_fit ) \n",
  833. "plt.xlabel('x')\n",
  834. "plt.ylabel('f(x)')\n",
  835. "plt.title('iminuit exponential Fit')\n",
  836. "#plt.axis([0,30,-1.2,1.2])\n",
  837. "\n",
  838. "# show the plot\n",
  839. "plt.show()"
  840. ]
  841. },
  842. {
  843. "cell_type": "code",
  844. "execution_count": null,
  845. "metadata": {},
  846. "outputs": [],
  847. "source": []
  848. }
  849. ],
  850. "metadata": {
  851. "kernelspec": {
  852. "display_name": "Python 3 (ipykernel)",
  853. "language": "python",
  854. "name": "python3"
  855. },
  856. "language_info": {
  857. "codemirror_mode": {
  858. "name": "ipython",
  859. "version": 3
  860. },
  861. "file_extension": ".py",
  862. "mimetype": "text/x-python",
  863. "name": "python",
  864. "nbconvert_exporter": "python",
  865. "pygments_lexer": "ipython3",
  866. "version": "3.8.16"
  867. }
  868. },
  869. "nbformat": 4,
  870. "nbformat_minor": 4
  871. }