MATLAB Answers

0

Nonlinear Regression with Errors in X and Y

Asked by harry wang on 22 Mar 2012
Latest activity Edited by Tom Lane
on 15 Dec 2017
I am dealing a series of data point X and Y, their relation is nonlinear, how can i do a nonlinear regression to obtain the fitted curve: Y=a*X^2+b*X+c? I am especially interested in the uncertainty of the quadratic coefficient: "a", i have found some programs but they only consider the error in Y without including the errors in X. Are there any way to determine the uncertainty of "a" considering errors in both X and Y?
Mike

  0 Comments

Sign in to comment.

3 Answers

Answer by Safwan
on 22 Mar 2012

What do you mean with the errors in X. Anyway, when you plot your data you can go to Tools->Basic fitting (in the figure) and fit your data with quadratic curve. Otherwise if you have the Curve fitting Toolbox of Matlab then you can use more functions. Last suggusted option from me, you can use the fminsearch.m function of matlab to find the value of a.

  1 Comment

I can find out the value of a using what you suggested, but how to determine the uncertainty of "a"? if i know the errors range for X and Y.

Sign in to comment.


Answer by Sean de Wolski
on 22 Mar 2012

That looks like a multiple linear regression to me.
doc polyfit

  2 Comments

Hi Sean, i have a question for you. Have you ever tried to convert a polyfit block (Simulink) into C code by the embedded coder?

Sign in to comment.


Answer by Tom Lane
on 23 Mar 2012
Edited by Tom Lane
on 15 Dec 2017

If you just had y and one or more x variables as predictors, there is information about an errors-in-variables fit here:
If you applied this literally to your example, you'd have to imagine that x and x^2 had separate errors. There is a file exchange submission that appears to address this, but I haven't played around with it:

  1 Comment

I have checked out this program on total least square method, it seems it can only determine the error for the sum of squared orthogonal distance, it could not determine the errors for "a", "b", and "c".

Sign in to comment.