Nonlinear Regression with Errors in X and Y

11 views (last 30 days)
harry wang
harry wang on 22 Mar 2012
Edited: 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

Answers (3)

Safwan
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
harry wang
harry wang on 22 Mar 2012
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.


Sean de Wolski
Sean de Wolski on 22 Mar 2012
That looks like a multiple linear regression to me.
doc polyfit
  2 Comments
Safwan
Safwan on 22 Mar 2012
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.


Tom Lane
Tom Lane on 23 Mar 2012
Edited: 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
harry wang
harry wang on 23 Mar 2012
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.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!