Curve fitting tool does not respect the upper and lower limits of parameters of custom equation

7 visualizaciones (últimos 30 días)
Hi. I hope you can help me. I have the data from measurements in vectors vel_3_Hor and tau_fr_3_Hor:
vel_3_Hor = [206.5139956
179.4945199
162.7919326
151.195134
138.3501347
130.3942364
122.4986401
106.4425864
98.45750292
89.01579654
82.19190831
70.47075771
60.70021288
49.84117539
42.22794379
32.74655746
];
tau_fr_3_Hor = [0.137735032
0.139278888
0.125791442
0.125100852
0.125945036
0.125767804
0.122046211
0.116725322
0.121744852
0.119606
0.117339514
0.115280309
0.111458901
0.111580077
0.113360071
0.11463187
];
The elements with same index in the previous vectors correspond to each other. I want to fit these points to this custom equation:
y = tau_C + (T_S - tau_C)*exp(-(x/vel_S)^delta_S) + c_vel*x
I tried to fit, manually, this function to my data with this page and I got these results:
(There is a value of tau_fr_3_Hor at vel_3_Hor = 0 here, but please ignore it. tau_fr_3_Hor = 0.1208 is an average result that I got from several experiments at vel_3_Hor where I measured tau_fr_3_Hor. I cannot rely on this average for specific reasons, but still it works as an estimate).
I set this values in Curve Fitting Tool:
Then I got these results:
It just seems to be something wrong with the confidence bounds in each parameter. For instance, vel_S cannot be negative, and also should be less than 80 at first sight. Also, tau_C should be between 0.10 - 0.12.
Thanks in advance.

Respuesta aceptada

John D'Errico
John D'Errico el 12 de Ag. de 2022
Sorry, but the confidence limits are not impacted by the bounds. To get better confidence limits they would need to do considerably more work. Those confidence limits were computed using a fairly simplistic scheme.
  3 comentarios
John D'Errico
John D'Errico el 13 de Ag. de 2022
Editada: John D'Errico el 13 de Ag. de 2022
NO! NO! NO! Not even close to correct.
The basic and classic method for computing confidence limits on a parameter uses a locally linear approximation to the problem, transforming it locally into a MULTIPLE LINEAR REGRESSION problem. This is done at the final solution, to then use the same techniques that are used in linear regression to produce parameter confidence limits in that case. A simple standard deviation is produced, that ignores the influences of all other parameters on the one in question. You then move plus and minus 2*sigma (or whatever factor you choose) around the prediction.
It works ok. As long as the problem is not too nonlinear. As long as your data noise is truly normally distributed, or at least close. As long as the parameters are not highly correlated (though they often are.)
And oh, one more thing, it works as long as there are no bounds on the parameters. If you put bounds on the parameters, then all hell breaks lose. Put constraints on the problem and everything else is invalid. So they ignore the constraints. I suppose they might have not done so. They probably could have checked the bounds here. But they did not. There are aguments I can see on either side of that coin.
What is the more complex thing I was taking about? There are other methods to compute confidence intervals on an estimate, perhaps using statistical tools like the jackknife and bootstrap. But that essentialy requires MULTIPLE estimations done on the problem. It requires considerably more computation time to perform. Is the result perhaps more statistically valid? Well, yes. Would people be complaining if they did? Well, probably yes. If things got MUCH slower, users would complain. Could they have offered an option? Well, yes. But there are limits to how much code you write. And then I can think of other reasons why jackknife/bootstraps MIGHT end up with problems that a software developer would not want to tougch with a ten foot pole. (What happens if the solver diverges in one or more of the internal jackknife estimations done?) In the end, they made a reasonable decision here, NOT to go in that direction.
Would more data help? Well, yes. More data pretty much NEVER hurts. I can think of only one case in a long career of consulting where a client was happy to give me more data than I wanted.

Iniciar sesión para comentar.

Más respuestas (0)

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by