I'm trying to understand how to create synthetic time-series data but I can't find much information on this. When I search, I only find information bout libraries to do this, not information about techniques. Can anyone point me in the direction of some resources/websites where I can read up on some standard techniques? I'd like to learn how to generate periodic functions, pseudo-periodic functions, and (pseudo)-periodic functions with a linear trend. Thanks!
1 Answer
To begin with, "how to generate periodic functions, pseudo-periodic functions, and (pseudo)-periodic functions with a linear trend", it is essential to build some background on random processes. Ultimately, a time-series is the realisation of a random process over a time continuum. Going through a paper like: Gaussian processes for time-series modelling by Roberts et al. (2013) is a good first introduction. It covers well how the underlying covariance structure of a Gaussian process induces certain trends (linear, periodic, etc.). It will allow you to have a decent understanding of a very core technique.
For a more methodologically recent perspective and looking at Deep Generative modelling as a whole: Diffusion models for time-series applications: a survey by Lin et al. (2023) covers a lot of ground and has a (somewhat small) section on time-series generation. Diffusions models are based on Wiener processes (probably the most fundamental random process of all)) and describe how a random variable evolves over time, with a drift (deterministic trend) and diffusion (random fluctuation) component. Influencing those allows having the trend and randomness we desire. As an additional point, in Lin et al. (2023) we find some commentary and pointers to GAN- and VAE-based methods as well.