How to find local minimum of fit polynomial
10 views (last 30 days)
Show older comments
I have some stock data (time and price).
I log the data, and then use fit function to fit a polynomial onto it
then i make a function f
This is shown in the three lines of code below
date_log10 = log10(datenum(T2.Time)); price_log10 = log10(T2.Close);
[f_mdl,gof,output] = fit(date_log10,price_log10,'poly1','Normalize','on','Robust','Bisquare');
f(j) = 10.^f_mdl(log10(datenum(T2.Time(end))));
My question is, how to i now find the local minimum of this function f?
I was thinking i would use fminsearch, but just unsure how i would make use of that.
2 Comments
dpb
on 30 Apr 2022
What local minimum? It's a linear fit, the minimum will be at either end of the range depending upon whether the slope is positve or negative.
Seems a bizarre thing to even contemplate doing to stock price data...is there some literature in the field that uses such a model?
Also, there's essentially nothing to be gained, anyway...for something to use I downloaded some past 5-6 years for GOOGLE and tried the model over it -- first, of course, visualizing the data as one should always do before just blindly fitting a model--here are the two figures -- real data and then the log10 version -- NB, they are identically the same shape; just changing the numerical values is all that has been done.
As is obvious, the minimum value of the fitted line is the first value since the slope is positive. If we were to arbitrarily flip the data to be reversed in time, then the slope would be the same numerically, but with negative sign and the minimum would be the last point evaluated.
No idea what must be trying to do here...
Answers (2)
Image Analyst
on 30 Apr 2022
I use polyfit() instead of fit(). Have you gotten a fitted y value vector yet? If so, just use min
miny = min(yFitted(index1 : index2))
4 Comments
Walter Roberson
on 30 Apr 2022
poly1 is of the form a*x+b for some model parameters a and b. The minimum of a straight line is:
- at the lower bound of x if a is positive
- at the upper bound of x if a is negative
2 Comments
Walter Roberson
on 1 May 2022
If you take 10 to the power of a linear fit, then the result will still have its maximum at either the upper bound or the lower bound. It will not turn into a cubic!!
If you had the coefficients p for a cubic then use roots(polyder(p)) to find the locations of the critical points
See Also
Categories
Find more on Interpolation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!