An adaptive algorithm for least squares piecewise monotonic data fitting ?
The number of peaks and troughs of measurements of smooth function values can be unacceptably larger than the number of turning points of the function, when the measurements are too rough. It is proposed to make the least sum of squares change to the data subject to a limit on the number of sign changes of their first divided differences, but usually a suitable value of this limit is not known in advance. It is shown how to obtain automatically an adequate value for it. A test is included that attempts to distinguish between genuine trends and data errors. Specifically, if there are trends, then the monotonic sections of a tentative approximation are increased by one, otherwise this approximation seems to meet the trends and the calculation terminates. The numerical work required per iteration, beyond the second one, is quadratic in the number of data. Details for establishing the underlying algorithm are specified, numerical results from a simulation are included and the test is compared to some well-known residual tests. An application of the algorithm on identifying turning points and trends of data from the Dow Jones stock exchange index is presented. A Fortran implementation of our algorithm provides shorter computation times in practice than the complexity indicates in theory. Further, the single monotonicity problem has found many applications in statistical data analyses within various contexts. More generally, piecewise monotonicity is a property that occurs in a wide range of underlying functions and some important applications of it may be found in detrending data for identifying periodicities (eg. business cycles), or in estimating turning points of a function that is known only by some measurements of its values.
least squares piecewise monotonic data fitting peak smoothing turning point divided difference approximation residual test dynamic programming isotonic trend test