Consider the graph in this image: Graph.PNG (42.7 KB)
It's a data series whose values (y axis) generally increase over time (x axis) but with quite prominent local maxima and minima along the way. Think of it as a stock price graph on a bad hair day.
At some point the dips down to the local minima aren't as pronounced and the entire graph tilts up. If you draw a line connecting the bottoms of each dip you see a clear point where the graph suddenly goes steeper.
Is there an algorithm that can identify that point reliably?
What I have tried:
I've thought about
1. Smoothing out the data by taking a rolling average and calculating the second derivative. When that hits a threshold we have the point. This seems a bit hit and miss
2. Finding the local minima, constructing a graph from those points, and then doing the second derivative thing.
3. Constructing two trend lines starting from either end of the graph. When the slope of the trend line strays outside a small threshold just continue the line forward and backward using the current slope. Where these two lines cross is the point I want.
I'm guessing this is a solved problem but haven't been able to find anything yet.