Good non linear Regression

I have the following data:
x = [15, 25, 35, 45, 55, 65, 75]
y = [22.3, 27.5, 28.8, 29.9, 29.6, 27.4, 23.3]
How could I create a good regression that would fit the data above best. I'm trying to plot them both on the same graph so you can see the different between both lines.

4 Commenti

Adam Danz
Adam Danz il 30 Apr 2020
Do you know the underlying function or do you have an expectation of what the function should be?
The fitting model below is good enough:
y = p1+p2*x+p3*ln(x)+p4/x+p5/x^2
Root of Mean Square Error (RMSE): 0.00486074972111081
Sum of Squared Residual: 0.000165388214958952
Correlation Coef. (R): 0.999998485296235
R-Square: 0.999996970594765
Parameter Best Estimate
---------- -------------
p1 -1030.61369989144
p2 -2.88996744088543
p3 271.393077102476
p4 7919.34753749812
p5 -37493.8788669532
Ameer Hamza
Ameer Hamza il 1 Mag 2020
Is this result also from 1stOpt? Did you specify the equation or the toolbox is also able to find a suitable equation to fit the data points automatically? I have never tried it, so I am not aware of all the features.
Alex Sha
Alex Sha il 1 Mag 2020
There is also a function in 1stOpt in which the best fit model function could be serached automatically according to the data user provided.

Accedi per commentare.

 Risposta accettata

Ameer Hamza
Ameer Hamza il 30 Apr 2020
Modificato: Ameer Hamza il 30 Apr 2020
One option is to use smoothingspline option from the curve fitting toolbox
x = [15, 25, 35, 45, 55, 65, 75];
y = [22.3, 27.5, 28.8, 29.9, 29.6, 27.4, 23.3];
model = fit(x(:), y(:), 'smoothingspline');
plot(x, y, 'r+');
hold on
xv = linspace(min(x), max(x));
plot(xv, model(xv), 'b-');

2 Commenti

Jessica Larry
Jessica Larry il 30 Apr 2020
Modificato: Jessica Larry il 30 Apr 2020
I was able to resolve it, thank you so much for the help!!
Ameer Hamza
Ameer Hamza il 30 Apr 2020
Glad to be of help.

Accedi per commentare.

Più risposte (0)

Categorie

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by