|
Is there a good, general way to find multiple recurrent patterns in a time series? For example, suppose I have a time-series of traffic data. Intuitively, I know that there is a daily pattern (rush hour, daytime, rush hour, evening, night), a weekly pattern (more traffic Friday nights, less traffic Sunday than Saturday in general), and a seasonal pattern (summer vacation increase, winter hibernation decrease). I don't need such precision that I can identify specific holidays or anything, though anomaly detection would be useful. I imagine some methods could be based on iterative pattern finding and subtraction: identify the biggest signal (daily traffic), subtract its average form, then repeat; But I don't know the name, details or implementation of such a method. |
|
Intuitively, I think that if the pattern happens with a regular feature you might have luck using a discrete fourier transform to pick it out. Regardless, there is a lot of research on seasonality in time series, and I suggest you google it. A Wavelet transform may get him temporal changes on sparse data as well
(Feb 03 '11 at 02:01)
Leon Palafox
|
|
You could look a Eamonn Keogh's work (http://www.cs.ucr.edu/~eamonn/) and SAX (Symbolic Aggregate approXimation). In "Experiencing SAX: a Novel Symbolic Representation of Time Series" (link) there is an example in which the method is applied to anomaly detection on power consumption (e.g. different patterns on holidays, such as x-mas), which is probably to your plans with the traffic count data. |
|
I'm throwing stones at the air here, but, I remember people using HMM for repetetive patterns in speech synthetizers to model the way a human breathes while speaking, thus making the artificial voice more real. You might model your system with a HMM and do the inference for the A transition matrix to see how your patterns affect your data. |
|
In the article, "Finding Significance in Noisy Data", by R.E. Kimbrell, which appeared in the Jun-1992 issue of "Dr. Dobbs Journal", an adaptive filter is described which does not require the user to specify specific frequencies of interest. Deviations from this filter's smoothed output can be interpreted as significant events. Another possibility, which has worked well for me in some situations is to cluster time windows of a reasonable length frmo the series. There technique requires some experimentation (length of window, clustering technique and number of clusters). |