Nonlinear least squares data fitting (nonlinear regression) can be performed using Fit Plot.
To create a Fit Plot, select your X and Y columns in Table, then select Table → Create Fit Plot
in the main menu, or use the same item in the Table context menu, or use Create Fit Plot
button in the toolbar.
National Institute of Standards and Technology (NIST) has created the Statistical Reference Datasets Project which includes 26 datasets for testing the nonlinear fit algorithms. MagicPlot has been successfully tested on these datasets. Our report on MagicPlot testing with NIST datasets is available here: Report.
'Nonlinear' means here that analytical fitting function depends nonlinearly on varying parameters (fit parameters). Fit procedure iteratively varies the parameters of the fit function to minimize the residual sum of squares. The nonlinear fitting algorithm needs the user to set the initial values of fit parameters.
To fit the data, implement these steps:
You can undo fit and also undo changing initial parameters as any other action using Undo
function. It is a handy feature when experimenting with different models and initial parameters.
This manual does not completely cover the complex nonlinear fitting methodology. We recommend you to take a look at this book:
MagicPlot considers fit function as a sum of Fit Curves. Ordinarily in peaks fitting each Fit Curve corresponds to one peak in experimental data. Click the Add
button to add new Fit Curve to the list. There is a number of predefined Fit Curves types (Line, Parabola, Gauss, Lorentz, etc.) You can also create a Custom Equation Fit Curve and manually enter the formula. Baseline fitting components may be added to the fitting sum, too.
Fit Plot window contains the list of Fit Curves. Each Fit Curve in the list has three checkboxes:
Show
: Specifies whether to show this Fit Curve on the plot. Active only if Baseline checkbox is not setBaseline
: Toggles the subtracting of this Fit Curve from experimental data. You also can use Residual
button to subtract all Fit Sum from dataSum
: Specifies whether to use this Fit Curve in sum fit functionBelow the Fit Curves list, is a parameters table which shows names, values, and descriptions of parameters relating to the selected Fit Curve.
MagicPlot allows two alternatives buttons to run the fit:
Fit by Sum
button will fit the data with the sum of Fit Curves for which the Sum
checkbox is set. Data interval from Fit Interval
tab will be used. This button must be used for example to fit the spectrum with the sum of peaks.Fit One Curve
button will fit the data with the one currently selected Fit Curve. The individual interval for each Fit Curve will be used. Set Edit Interval
checkbox to edit individual interval for each Fit Curve.You can copy and paste Fit Curves from one Fit Plot to another Fit Plot or Figure. You can also paste the copied Fit Curves to the same Fit Plot to create a copy.
You can reorder Fit Curves by dragging them in the table. The data curve is always drawn the first and fit sum is drawn the last.
Nonlinear fitting assumes that certain initial values of parameters are set before fitting. This procedure is very easy if you use Fit Curves of predefined types (not custom equation): you can drag curves on the plot. Initial parameters values for each Fit Curve can also be set in the parameter table.
You can adjust Parameters in the table using mouse wheel scrolling when the mouse cursor is on the desired parameter: Hold Ctrl key (Cmd key on Mac) and scroll. If the Shift key is also pressed the parameter step for one wheel 'click' will be increased.
If you are fitting a spectrum with multiple peaks, MagicPlot may automatically add and approximately locate peaks before fitting. See Guessing Peaks for details. Guessed peaks should be used only as of the initial estimate for fitting: don't forget to click the Fit button after peaks are added.
You can lock (fix) parameter(s) to prevent varying this parameter(s) during the fit and to prevent its changing due to set initial values by mouse dragging (for built-in functions). Set the checkbox in Lock
column in the parameter list to lock parameter.
MagicPlot allows joining (sometimes referred to as coupling, binding, linking) of fit parameters of different Fit Curves. See Joining the Parameters of Fit Curves for details.
MagicPlot allows the weighting of data points with Y error data. You can specify Y error data in Fit Plot properties dialog. If no Y error data are specified weighting is not used.
Weights are calculated as 1 / Yerror2
for every point. See Fitting Algorithm and Computational Formulas for details.
Weights must be positive and finite for all points so the Y error values must be positive and non-zero (to prevent infinite weights). MagicPlot checks this condition before fitting and shows an error message if Y errors cannot be used to compute weights.
You can set the X intervals of the data which will be used for fitting. Data points outside these intervals are not used to compute the minimizing residual sum of squares. You can use this feature if some data points (especially in the beginning or the end) are inaccurate, e.g. noisy.
Select Fit Interval
tab to set intervals visually or edit accurate borders values in the table.
Note: Data intervals from the Fit Interval
tab are used for fitting Sum only. To set individual data intervals for the one Curve fitting use Edit Interval
checkbox.
Fit Interval is also usable when baseline fitting. Before baseline fitting, you can specify the interval which does not contain any signal points and contains baseline only. Set Baseline
checkboxes at baseline Fit Curves after baseline fitting to subtract baseline from data. Then specify the whole interval and fit the data.
Note that if you use data processing (integration, FFT, etc.) on Fit Plot, then the difference between the data and baseline curves (which you do see on the plot) will be processed. You can use this behavior to exclude baseline from data before integrating, see Integration for more information.
The 'Data-Baseline' column is appended to the Table with initial (X and Y) data when you create a Fit Plot. The 'Data-Baseline' column contains the difference between initial Y data and baseline approximation (the sum of Fit Curves for which Baseline
checkbox is set). It is 'Data-Baseline' column that is actually plotted on Fit Plot as data.
Use 'Data-Baseline' column in Table if you want to process the data without baseline. This column is also used as initial data if you use Processing
menu when Fit Plot is active.
Residual means here the difference between initial data, baseline function and Fit Sum function. MagicPlot offers two different ways to view the residual:
Residual
button. The residual will be shown while the button is pressed. You can use either mouse or space key (if the button is selected) to hold Residual
button.Baseline
checkboxes for all summed Fit Curves to subtract them from data and explore the residual plot
To execute the fit click the Fit by Sum
button of Fit One Curve
button (see below).
MagicPlot indicates the fit process with a special window. Fitting curves are periodically updated on the plot while fitting so you can see how fit converges.
MagicPlot shows the current iteration number and deviation decrement with two progress bars while the fit is performed. The fit process stops when one of these progress bars reaches the end.
You can see two buttons on fit progress window:
Break Iterations
: Breaks iterations after current iteration. Use this button if you suspect that further iterations will not change the result.Undo Fit
: Breaks iterations and reverts fit parameters to their initial (before fit) values. Use this button if you see that fit process converges to wrong result; change initial values of parameters and run fit again.
You can use MagicPlot to fit the data with single selected Fit Curve by pressing Fit One Curve
button. In this case, a specific data interval for each Fit Curve is used and the main fitting data interval (from Fit Interval
tab) is ignored. Select Edit Interval
checkbox in the bottom of the Fit Plot panel to set specific fit intervals for each Fit Curve.
Because of using individual data interval this method is useful for baseline fitting. In order to fit baseline specify the intervals which do not contain signal (peaks) and contain only noise.
In some cases, the fit procedure may fail to find the optimal parameters values. The actual mathematical reason for this error is the impossibility to invert the matrix α calculated from partial derivatives of the fit function with respect to fit parameters. This inverted matrix is used to compute the new values of parameters for the next step of fit (like gradient descent). In most cases, this error occurs when the matrix α is ill-conditioned or nearly singular and the inverse cannot be calculated accurately enough with used floating-point arithmetic.