Basic tools to predict patterns in semi-cyclic data
Goal: to cover useful tools in my experience:
Fractal dimension measurements
Rolling standard deviation and mean
Basic cyclic measurement of data
Lesser Goal: to cover these tools (https://en.wikipedia.org/wiki/Time_series)
Consideration of the autocorrelation function and the spectral density function (also cross-correlation functions and cross-spectral density functions)
Scaled cross- and auto-correlation functions to remove contributions of slow components[32]
Performing a Fourier transform to investigate the series in the frequency domain
Use of a filter to remove unwanted noise
Principal component analysis (or empirical orthogonal function analysis)
Singular spectrum analysis
"Structural" models:
General State Space Models
Unobserved Components Models
Machine Learning
Artificial neural networks
Support vector machine
Fuzzy logic
Gaussian process
Hidden Markov model
Queueing theory analysis
Control chart
Shewhart individuals control chart
CUSUM chart
EWMA chart
Detrended fluctuation analysis
Dynamic time warping
Cross-correlation
Dynamic Bayesian network
Time-frequency analysis techniques:
Fast Fourier transform
Continuous wavelet transform
Short-time Fourier transform
Chirplet transform
Fractional Fourier transform
Chaotic analysis
Correlation dimension
Recurrence plots
Recurrence quantification analysis
Lyapunov exponents
Entropy encoding
Style guide: https://google.github.io/styleguide/cppguide.html (not that I agree with all the design choices, but seems decent enough)