  Periodicity detection is a crucial step in time series tasks, including
monitoring and forecasting of metrics in many areas, such as IoT applications
and self-driving database management system. In many of these applications,
multiple periodic components exist and are often interlaced with each other.
Such dynamic and complicated periodic patterns make the accurate periodicity
detection difficult. In addition, other components in the time series, such as
trend, outliers and noises, also pose additional challenges for accurate
periodicity detection. In this paper, we propose a robust and general framework
for multiple periodicity detection. Our algorithm applies maximal overlap
discrete wavelet transform to transform the time series into multiple
temporal-frequency scales such that different periodic components can be
isolated. We rank them by wavelet variance, and then at each scale detect
single periodicity by our proposed Huber-periodogram and Huber-ACF robustly. We
rigorously prove the theoretical properties of Huber-periodogram and justify
the use of Fisher's test on Huber-periodogram for periodicity detection. To
further refine the detected periods, we compute unbiased autocorrelation
function based on Wiener-Khinchin theorem from Huber-periodogram for improved
robustness and efficiency. Experiments on synthetic and real-world datasets
show that our algorithm outperforms other popular ones for both single and
multiple periodicity detection.
