MagicPlot Manual

Plotting and nonlinear fitting software

User Tools

Site Tools


Fitting Algorithm and Computational Formulas

MagicPlot uses iterative Levenberg–Marquardt nonlinear least squares curve fitting algorithm which is widely used in most software.

MagicPlot implementation of Levenberg–Marquardt algorithm is optimised for using with multi-core processors. MagicPlot successfully passed testing with NIST Nonlinear Regression datasets (see our report).

Nonlinear Least Squares Algorithm

Fit procedure iteratively varies the parameters βk of fit function f(x, β1, …, βp) to minimize the residual sum of squares (RSS, χ2):

chi^2 = sum{i=1}{N}{w_i(y_i – f(x_i, beta_1, ..., beta_p))^2} right min


  • xi and yi are the data points,
  • N is total number of points,
  • f(x, β1,…,βp) is the fit function which depends on value of x and fit parameters βk,
  • p is the number of fit parameters βk,
  • wi are data weighting coefficients for each point (xi, yi).

An initial guess for the parameters has to be provided to start minimization. Calculation of the new guess of parameters on each fit iteration is based on the fit function partial derivatives for current values of fit parameters for each x value:

{partial f}/{partial beta_m}(x_i, beta_1, ..., beta_p)

Partial derivatives are computed using explicit formulas (for some predefined fit functions) or with finite difference (for custom equations).

Weighting of Data Points Using Y Errors

MagicPlot can use weighting of y values based on y errors si:

  • If standard y errors si are specified: wi = 1 / si2 1);
  • Otherwise: all wi = 1.

In Fit Plot Properties dialog (Plot Data tab) you can set one of the following methods to evaluate standard y errors si:

  • Get y errors from table column(s),
  • Percent of data for every point,
  • Fixed value or Standard deviation — do not use in weighting because in this case the error values are the same for all data points.

Iterations Stop Criteria

After each iteration except the first MagicPlot evaluates deviation decrement D:

D = delim{|} {{chi^2}_{curr. iter.} / {chi^2}_{prev. iter.} – 1} {|}

Deviation decrement shows how the residual sum of squares (RSS) on current iteration relatively differs from that on the previous iteration.

The iterative fit procedure stops on one of two conditions:

  • If the deviation decrements D for two last iterations is less than minimum allowable deviation decrement, which is 10-9 by default
  • If the number of iterations exceeds maximum number of iterations, which is 100 by default

You can change the minimum allowable deviation decrement and maximum number of iterations in Fitting tab of MagicPlot Preferences.

Formulas Used in Fit Report

In the table below you can find the formulas which MagicPlot uses to calculate fit parameters and values in Fit Report tab.

Because of some confusion in the names of the parameters in different sources (books and software), we also give many different names of same parameter in note column.

Parameter Name Symbol Formula Note
Original Data and Fit Model Properties
Number of used data points N This is the number of data points inside specified fit Interval.
Fit parameters β1,…,βp For peak-like functions (Gauss, Lorentz) these parameters are amplitude, position and half width at half maximum.
Only parameters with unset Lock checkbox are taken into account.
Number of fit function parameters β p This is the total number of unlocked parameters of fit curves which are summarized to fit.
Degrees of freedom nu N–p
Estimated mean of data overline{y} 1/N sum{i=1}{N}{y_i}
Estimated variance of data s^2 1/{N–1} sum{i=1}{N}{(y_i – overline{y})^2} Not used by fit algorithm, only for comparison.
Data total sum of squares (TSS, SST) TSS sum{i=1}{N}{w_i(y_i – overline{y})^2} Also known as:
• Sum of squares about the mean.
Fit Result
Residual sum of squares (RSS) chi^2 sum{i=1}{N}{w_i(y_i – f(x_i,beta_1,...,beta_p))^2} This value is minimized during the fit to find the optimal fit function parameters.
Also known as:
• 'Chi-squared'
• Sum of squared residuals (SSR),
• Error sum of squares (ESS),
• Sum of squares due to error (SSE).
Reduced χ2 {{chi^2}_{red.}} {chi^2}/nu = {chi^2}/{N–p} The advantage of the reduced chi-squared is that it already normalizes for the number of data points and model (fit function) complexity.
Also known as:
• Mean square error (MSE),
• Residual mean square.
Residual standard deviation s sqrt({chi^2}_{red.}) Also known as:
• Root mean square of the error (Root MSE)
Coefficient of determination R^2 1 – {chi^2}/TSS R2 will be equal to one if fit is perfect, and to zero otherwise. This is a biased estimate of the population R2, and will never decrease if additional fit parameters (fit curves) are added, even if they are irrelevant.
Adjusted R2 overline{R}^2 1 – {N–1}/{N–p–1}(1–R^2) Adjusted R2 (or degrees of freedom adjusted R-square) is a slightly modified version of R2, designed to penalize for the excess number of fit parameters which do not add to the explanatory power of the regression. This statistic is always smaller than R2, can decrease as you add new fit curves or introduce parameters, and even be negative for poorly fitting models.
Covariance matrix of parameters βk Sigma {chi^2}/{N–p} delim{[}{alpha}{]}^{–1},~where~delim{[}{alpha}{]}_{m,n}=
sum{i=1}{N}{w_i {{partial f}/{partial beta_m}(x_i, beta_1, ..., beta_p) {partial f}/{partial beta_n}}{(x_i, beta_1, ..., beta_p)}}
Here α is the matrix of partial derivatives of fit function with respect to parameters βm and βn which is also used by fitting algorithm to compute parameters for next iteration.
Standard deviation of parameters βk
(std. dev.)
s_k sqrt{delim{[}{Sigma}{]}_{k,k}} These values are displayed in Std. Dev. column in parameters table.
Correlation matrix of parameters βk C delim{[}{C}{]}_{i,j}=delim{[}{Sigma}{]}_{i,j} / {s_i s_j} This matrix shows if the parameters are linked. The values lie in range -1…1, diagonal elements are always 1. If two parameters are linked the corresponding matrix value will be close to 1. It means that changing the first parameter compensates changing of the second one so that the fitting algorithm cannot select between them.

See Also

Corrected in MagicPlot 2.7: weights wi are not normalized anymore. In MagicPlot 2.5.1 and earlier the sum of weights was normalized to 1. This changing only affects the resulting Chi square value in the fit report if Y error column(s) are set.
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
fit_formulas.txt · Last modified: Tue May 30 16:28:13 2017 by Alexander