This algorithm is a smoothing filter that essentially applies a polynomial regression of a certain degree to a time-series. The advantage of the Savitsky-Golay filter is that it tends to preserve certain features of the time-series like local minima and maxima.
The smoothing is computed using the algorithm described by Savitsky and Golay (A. Savitzky and Marcel J.E. Golay 1964. Smoothing and Differentiation of Data by Simplified Least Squares Procedures). The algorithm computes a local polynomial regression on the input data by solving the equation:
The method implemented in IPredict computes the Savitsky-Golay coefficients and then convolves them with the original time-series.
This is an example of the filter applied to the Nasdaq index:
A. Savitzky and Marcel J.E. Golay (1964). Smoothing and Differentiation of Data by Simplified Least Squares Procedures