{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Sherpa Quick Start\n", "==========\n", "\n", "This tutorial shows some basic Sherpa features. More information on Sherpa can be\n", "found in the [Sherpa documentation](https://sherpa.readthedocs.io/).\n", "\n", "Workflow:\n", "\n", "- create synthetic data: a parabola with noise and error bars\n", "- load data in Sherpa\n", "- plot data using matplotlib\n", "- set, inspect, edit a model to fit the data\n", "- fit the data\n", "- compute the confidence intervals for the parameters\n", "- explore the parameter space\n", "\n", "First of all, let's activate the inline matplotlib mode. Sherpa seamlessly uses matplotlib to provide immediate visual feedback to the user. Support for matplotlib in Sherpa requires the matplotlib package to be installed." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, let's create a simple synthetic dataset, using numpy: a parabola between x=-5 and x=5, with some randomly generated noise (the form for `y` is chosen to match the model selected in step 6 below to fit the data, and the random seed used by NumPy is set to make this notebook repeatable):" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "np.random.seed(824842)\n", "\n", "x = np.arange(-5, 5.1)\n", "\n", "c0_true = 23.2\n", "c1_true = 0\n", "c2_true = 1\n", "\n", "y = c2_true * x*x + c1_true * x + c0_true + np.random.normal(size=x.size)\n", "e = np.ones(x.size)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's import Sherpa:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WARNING: imaging routines will not be available, \n", "failed to import sherpa.image.ds9_backend due to \n", "'RuntimeErr: DS9Win unusable: Could not find ds9 on your PATH'\n", "WARNING: failed to import sherpa.astro.xspec; XSPEC models will not be available\n" ] } ], "source": [ "from sherpa.astro import ui" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Depending on how you installed Sherpa, certain special features may be enabled or disabled. Sherpa prints some warning messages when it cannot find some of its modules, as shown above. These warnings are benign. You can refer to the Sherpa documentation to find out what additional features you can enable in Sherpa and how to enable them." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's load and plot the data we just created. Notice we are assigning the ID `mydata` to the dataset we are loading. We will use this ID to refer to the same dataset in the rest of the tutorial. Sherpa can deal with multiple datasets, fit them simultaneously with the same model, and even link parameters between models. Sherpa can read ASCII table and FITS files (provided the `astropy` package is installed)." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ui.load_arrays(\"mydata\", x, y, e)\n", "ui.plot_data(\"mydata\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The data can be retrieved with the `get_data` routine:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "name = \n", "x = Float64[11]\n", "y = Float64[11]\n", "staterror = Float64[11]\n", "syserror = None\n" ] } ], "source": [ "d = ui.get_data(\"mydata\")\n", "print(d)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The object - in this case a [Data1D object](https://sherpa.readthedocs.io/en/latest/data/api/sherpa.data.Data1D.html) - has support for Jupyter notebooks and will display a summary of \n", "the data (in this case a plot, but other objects will display differently, as we will see below):" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<Data1D data set instance ''>
" ], "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can set the model we want to fit to the data using the `set_model` call. There are different ways to instantiate the models: in this case, we just use the string `polynom1d` to refer to a 1D polynomial. The name of the model will be `poly`, and will be accessible as a Python variable. One can use more object oriented patterns to access and instantiate built-in models. Also, new models can be added by the user as Python functions or from tabular data." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "ui.set_model(\"mydata\", \"polynom1d.poly\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Several Sherpa commands can be used to inspect the model. In this case we just use a simple `print` to get a summary of the model and its components." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "polynom1d.poly\n", " Param Type Value Min Max Units\n", " ----- ---- ----- --- --- -----\n", " poly.c0 thawed 1 -3.40282e+38 3.40282e+38 \n", " poly.c1 frozen 0 -3.40282e+38 3.40282e+38 \n", " poly.c2 frozen 0 -3.40282e+38 3.40282e+38 \n", " poly.c3 frozen 0 -3.40282e+38 3.40282e+38 \n", " poly.c4 frozen 0 -3.40282e+38 3.40282e+38 \n", " poly.c5 frozen 0 -3.40282e+38 3.40282e+38 \n", " poly.c6 frozen 0 -3.40282e+38 3.40282e+38 \n", " poly.c7 frozen 0 -3.40282e+38 3.40282e+38 \n", " poly.c8 frozen 0 -3.40282e+38 3.40282e+38 \n", " poly.offset frozen 0 -3.40282e+38 3.40282e+38 \n" ] } ], "source": [ "print(poly)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also display it directly in a Jupyter notebook:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<Polynom1D model instance 'polynom1d.poly'>
" ], "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "poly" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By default, only the first component (the intercept) is __thawed__, i.e. is free to vary in the fit. This corresponds to a constant function. In order to fit a parabola, we need to __thaw__ the coefficients of the first two orders in the polynomial, as shown below." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "ui.thaw(poly.c1, poly.c2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are going to fit the dataset using the default settings. However, Sherpa has a number of optimization algorithms, each configurable by the user, and a number of statistics that can be used to take into account the error and other characteristics of data being fitted." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dataset = mydata\n", "Method = levmar\n", "Statistic = chi2\n", "Initial fit statistic = 12642.8\n", "Final fit statistic = 15.643 at function evaluation 8\n", "Data points = 11\n", "Degrees of freedom = 8\n", "Probability [Q-value] = 0.0477837\n", "Reduced statistic = 1.95538\n", "Change in statistic = 12627.2\n", " poly.c0 23.1367 +/- 0.455477 \n", " poly.c1 0.0537585 +/- 0.0953463 \n", " poly.c2 1.04602 +/- 0.0341394 \n" ] } ], "source": [ "ui.fit(\"mydata\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that Sherpa used a Levenberg-Marquadt minimization strategy (`levmar`), and the $\\chi^2$ error function (`chi2`). These options can be changed with the `set_method` and `set_stat` functions. Note that when using the `levmar` optimiser the fit results include approximate error estimates, but you should use the `conf` routine (shown below) to get accurate error estimates.\n", "\n", "The best fit values of the parameters are close to the ones defined when we generated the dataset:\n", "\n", "| Parameter | true value | best-fit value |\n", "| --------- | ---------- | -------------- |\n", "| $c_0$ | 23.2 | 23.1367 |\n", "| $c_1$ | 0 | 0.0538 |\n", "| $c_2$ | 1 | 1.0460 |\n", "\n", "The `get_fit_results` function will return the information on the last fit:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "datasets = ('mydata',)\n", "itermethodname = none\n", "methodname = levmar\n", "statname = chi2\n", "succeeded = True\n", "parnames = ('poly.c0', 'poly.c1', 'poly.c2')\n", "parvals = (23.136688550821013, 0.05375853511753547, 1.046015029290237)\n", "statval = 15.6430444797243\n", "istatval = 12642.832375778722\n", "dstatval = 12627.189331298998\n", "numpoints = 11\n", "dof = 8\n", "qval = 0.04778369987400388\n", "rstat = 1.9553805599655374\n", "message = successful termination\n", "nfev = 8\n" ] } ], "source": [ "fitres = ui.get_fit_results()\n", "print(fitres)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Perhaps unsurprisingly by now, it too can be displayed automatically in a Jupyter notebook:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<Fit results instance>
" ], "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fitres" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The model object has also been updated by the fit:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<Polynom1D model instance 'polynom1d.poly'>
" ], "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "poly" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to get immediate feedback of the fit results, we can plot the fit and the residuals. Again, Sherpa facilitates the creation of the plots, but users can harvest the power of matplotlib directly if they want to." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ui.plot_fit_resid(\"mydata\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now compute the confidence intervals for the free parameters in the fit:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "poly.c0 lower bound:\t-0.455477\n", "poly.c1 lower bound:\t-0.0953463\n", "poly.c0 upper bound:\t0.455477\n", "poly.c1 upper bound:\t0.0953463\n", "poly.c2 lower bound:\t-0.0341394\n", "poly.c2 upper bound:\t0.0341394\n", "Dataset = mydata\n", "Confidence Method = confidence\n", "Iterative Fit Method = None\n", "Fitting Method = levmar\n", "Statistic = chi2gehrels\n", "confidence 1-sigma (68.2689%) bounds:\n", " Param Best-Fit Lower Bound Upper Bound\n", " ----- -------- ----------- -----------\n", " poly.c0 23.1367 -0.455477 0.455477\n", " poly.c1 0.0537585 -0.0953463 0.0953463\n", " poly.c2 1.04602 -0.0341394 0.0341394\n" ] } ], "source": [ "ui.conf(\"mydata\")" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "datasets = ('mydata',)\n", "methodname = confidence\n", "iterfitname = none\n", "fitname = levmar\n", "statname = chi2gehrels\n", "sigma = 1\n", "percent = 68.26894921370858\n", "parnames = ('poly.c0', 'poly.c1', 'poly.c2')\n", "parvals = (23.136688550821013, 0.05375853511753547, 1.046015029290237)\n", "parmins = (-0.4554769011263424, -0.09534625892453424, -0.03413943709996614)\n", "parmaxes = (0.4554769011263424, 0.09534625892453424, 0.03413943709996614)\n", "nfits = 6\n" ] } ], "source": [ "conf = ui.get_conf_results()\n", "print(conf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "or, if you want a fancy display, you can get the Jupter notebook to display it:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<confidence results instance>
" ], "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "conf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sherpa allows to inspect the parameter space. In the cell below we ask sherpa to show us the projection of the confidence regions for the `c0` and `c1` parameters. The contours are configurable by the user: by default they show the confidence curves at 1, 2, and 3 $\\sigma$" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ui.reg_proj(poly.c0, poly.c1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also directlty inspect the parameter space. For instance, in the plot below Sherpa displays the Interval Projection of the `c0` parameter, i.e. a plot of the error for each value of the parameter, around the minimum found by the optimization method during the fit." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ui.int_proj(poly.c0)" ] } ], "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.8.3" } }, "nbformat": 4, "nbformat_minor": 4 }