Skip to content

Instantly share code, notes, and snippets.

@alexpearce
Created November 7, 2016 14:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexpearce/07cee3c5c19971bf15e9358e4f0bb195 to your computer and use it in GitHub Desktop.
Save alexpearce/07cee3c5c19971bf15e9358e4f0bb195 to your computer and use it in GitHub Desktop.
Notebook demonstrating sampling from a histogram PDF with probfit.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import numpy as np\n",
"import probfit\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7cfb86aa20>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"nsample = 10000\n",
"nbins = 20\n",
"range = (-5, 5)\n",
"xs = np.random.normal(0, 1, size=nsample)\n",
"hist, edges = np.histogram(xs, bins=nbins, range=range)\n",
"probfit.plt.hist(xs, bins=nbins, range=range);"
]
},
{
"cell_type": "code",
"execution_count": 86,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"pdf = probfit.HistogramPdf(hist, edges, xname='x')\n",
"toy_data = probfit.gen_toy(pdf, nsample=nsample, bound=(-5, 5))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It can be seen that the generated data looks like the template. Generate more data to see the convergence."
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nPZvjjjuuystw/+tf/2L+/PnccMMNxWdKjB07lt/85jd8+umnpcaef/75DBs2rNS6M844g9NOO42/\n//3vnHfeeXTr1o2f/OQnTJs2jUGDBtGnT59S4xcsWECzZs2KH//ud7/jkksuYcqUKUyYMCHQgaJS\nnkKDiHDo8uXMAL7jKQ7QtMb19tKUN8ircR05OBYuXEjnzp2LAwPAIYccwtVXX82ll17K+++/z4AB\nAzj++OM58cQTmTNnTnFo+Oabb3jjjTeYNGlSla/x8ssvY2ZcffXVpdZfe+21zJ8/v9S6kl/2BQUF\n7Ny5k549e5KUlERWVhbnnXdete+pZI1du3axb98+Tj31VGbNmsWaNWs45pia3rK9cVJoEBEsfODi\n/5DJen4Zg4pzgOExqCMHw/r16znuuOPKrU9NTcXdWb9+ffG6kSNHMm7cOHJycmjbti2ZmZm4e7kD\nLyt6jWbNmtGpU6dS6yt63T179vCHP/yBmTNnsnnz5uKzPcyMHTt2BHpPK1as4LbbbuOtt95i586d\nxesjqSHlaX5GRKSRK3kKZnWKdhsUHQw5Z84cTjnlFDp37hzVa1S0fvTo0TzwwAOMGDGCefPm8dpr\nr7F48WIOO+wwCgsLq+1x27Zt9O/fn1WrVnHPPffw0ksvsXjxYu68806AQDWkYpppEBFp5Lp06cLq\n1avLrc/OzsbMSgWCNm3aMGjQIObMmcOZZ57JRx99xOOPPx7oNfbt28dXX31VarZh1apV5cYuWLCA\n0aNHc8899xSv27VrF99/X/rg2srOgli8eDE7d+7k9ddfJy0trXj9v//972r7lKpppkFEpJEbOnQo\n69ev54UXXihet3//fh599FFat27NKaecUmr8iBEjWLZsGbfddhvNmjXj/PPPD/Qa7s6UKVNKrX/4\n4YfLffknJiaWmw2o6FTOli1b4u5899135baH0jMK+/btY9q0adX2KVXTTIOISJWyG/zrX3nllTzx\nxBNcdNFFXHXVVXTq1Im//vWvZGVlMW3atFIHFQKcc845HH744cybN49zzz2XVq1aVfsaffr04de/\n/jUPPfQQubm59OnTh0WLFrF+/fpyuyjOPPNMnnjiCVq0aMGxxx7Lu+++y3vvvUfr1q1LjTvppJMw\nM+666y62bNlCs2bNGDRoEP379+ewww4jPT2dq6++mv379zNr1qxy70Mip9AgIlKB5ORkmjdPIi+v\n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\n/wcHbonwdRl2oAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7cfadc9ef0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"probfit.plt.hist(toy_data, bins=nbins, range=range, color='b', normed=True, label='Toy data')\n",
"probfit.plt.hist(xs, bins=nbins, range=range, color='r', normed=True, histtype='step', label='Template data')\n",
"probfit.plt.legend(loc='best');"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"binned_lh = probfit.BinnedLH(pdf, toy_data, bins=nbins, bound=range)\n",
"minuit = probfit.Minuit(binned_lh)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"This call works, but does generate a LaTeX-related warning. I think it's because the fit has no independent parameters."
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/opt/conda/lib/python3.5/site-packages/ipykernel/__main__.py:1: LogWarning: x is really small return 0\n",
" if __name__ == '__main__':\n"
]
},
{
"data": {
"text/html": [
"<hr>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" <table>\n",
" <tr>\n",
" <td title=\"Minimum value of function\">FCN = 3.5785412931267584</td>\n",
" <td title=\"Total number of call to FCN so far\">TOTAL NCALL = 1</td>\n",
" <td title=\"Number of call in last migrad\">NCALLS = 1</td>\n",
" </tr>\n",
" <tr>\n",
" <td title=\"Estimated distance to minimum\">EDM = 3.5785412931267584</td>\n",
" <td title=\"Maximum EDM definition of convergence\">GOAL EDM = 5e-06</td>\n",
" <td title=\"Error def. Amount of increase in FCN to be defined as 1 standard deviation\">\n",
" UP = 0.5</td>\n",
" </tr>\n",
" </table>\n",
" \n",
" <table>\n",
" <tr>\n",
" <td align=\"center\" title=\"Validity of the migrad call\">Valid</td>\n",
" <td align=\"center\" title=\"Validity of parameters\">Valid Param</td>\n",
" <td align=\"center\" title=\"Is Covariance matrix accurate?\">Accurate Covar</td>\n",
" <td align=\"center\" title=\"Positive definiteness of covariance matrix\">PosDef</td>\n",
" <td align=\"center\" title=\"Was covariance matrix made posdef by adding diagonal element\">Made PosDef</td>\n",
" </tr>\n",
" <tr>\n",
" <td align=\"center\" style=\"background-color:#92CCA6\">True</td>\n",
" <td align=\"center\" style=\"background-color:#92CCA6\">True</td>\n",
" <td align=\"center\" style=\"background-color:#FF7878\">False</td>\n",
" <td align=\"center\" style=\"background-color:#92CCA6\">True</td>\n",
" <td align=\"center\" style=\"background-color:#92CCA6\">False</td>\n",
" </tr>\n",
" <tr>\n",
" <td align=\"center\" title=\"Was last hesse call fail?\">Hesse Fail</td>\n",
" <td align=\"center\" title=\"Validity of covariance\">HasCov</td>\n",
" <td align=\"center\" title=\"Is EDM above goal EDM?\">Above EDM</td>\n",
" <td align=\"center\"></td>\n",
" <td align=\"center\" title=\"Did last migrad call reach max call limit?\">Reach calllim</td>\n",
" </tr>\n",
" <tr>\n",
" <td align=\"center\" style=\"background-color:#92CCA6\">False</td>\n",
" <td align=\"center\" style=\"background-color:#92CCA6\">True</td>\n",
" <td align=\"center\" style=\"background-color:#92CCA6\">False</td>\n",
" <td align=\"center\"></td>\n",
" <td align=\"center\" style=\"background-color:#92CCA6\">False</td>\n",
" </tr>\n",
" </table>\n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"ename": "IndexError",
"evalue": "list index out of range",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-91-bca49e3bc183>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mminuit\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmigrad\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32miminuit/_libiminuit.pyx\u001b[0m in \u001b[0;36miminuit._libiminuit.Minuit.migrad (iminuit/_libiminuit.cpp:5434)\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32miminuit/_libiminuit.pyx\u001b[0m in \u001b[0;36miminuit._libiminuit.Minuit.print_fmin (iminuit/_libiminuit.cpp:9740)\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32miminuit/_libiminuit.pyx\u001b[0m in \u001b[0;36miminuit._libiminuit.Minuit.print_param (iminuit/_libiminuit.cpp:8668)\u001b[0;34m()\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.5/site-packages/iminuit/frontends/html.py\u001b[0m in \u001b[0;36mprint_param\u001b[0;34m(self, mps, merr, float_format, smart_latex, latex_map)\u001b[0m\n\u001b[1;32m 209\u001b[0m ltable = LatexFactory.build_param_table(mps, merr,\n\u001b[1;32m 210\u001b[0m \u001b[0mfloat_format\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfloat_format\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msmart_latex\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msmart_latex\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 211\u001b[0;31m latex_map=latex_map)\n\u001b[0m\u001b[1;32m 212\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 213\u001b[0m \u001b[0;31m# rows = str(ltable).count('\\n')+1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.5/site-packages/iminuit/latex.py\u001b[0m in \u001b[0;36mbuild_param_table\u001b[0;34m(cls, mps, merr, float_format, smart_latex, latex_map)\u001b[0m\n\u001b[1;32m 189\u001b[0m \u001b[0malignment\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'|c|r|r|r|r|r|r|r|c|'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 190\u001b[0m ret = LatexTable(data, headers=headers, alignment=alignment,\n\u001b[0;32m--> 191\u001b[0;31m smart_latex=smart_latex, latex_map=latex_map)\n\u001b[0m\u001b[1;32m 192\u001b[0m \u001b[0mret\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfloat_format\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfloat_format\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 193\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mret\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.5/site-packages/iminuit/latex.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, data, headers, smart_latex, escape_under_score, alignment, rotate_header, latex_map)\u001b[0m\n\u001b[1;32m 34\u001b[0m latex_map=None):\n\u001b[1;32m 35\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mheaders\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 36\u001b[0;31m \u001b[0;32massert\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mheaders\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 37\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 38\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mheaders\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mheaders\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mIndexError\u001b[0m: list index out of range"
]
}
],
"source": [
"minuit.migrad()"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nUFzkaal8PXQAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7cfb407ef0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"binned_lh.draw(minuit);"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment