1. A method of generating synthetic data, comprising: identifying, by at least one processor, a base dataset describing a set of events corresponding to a time period; decomposing, by the at least one processor, the base dataset into a base dynamic component and a trend component by applying a decomposition model to the base dataset, the base dynamic component comprising a plurality of data points that do not correspond to any time-dependent characteristics of the base dataset and the trend component comprising data points with a time-dependent characteristic that indicates a trend associated with the base dataset; generating, by the at least one processor, a synthetic dynamic component by randomly resampling the data points from the base dynamic component to create a plurality of synthetic data points that do not correspond to the time-dependent characteristics of the base dataset; generating, by the at least one processor, a synthetic dataset comprising new data points with the time-dependent characteristic that indicates the trend associated with the base dataset by combining the synthetic data points in the synthetic dynamic component with the data points in the trend component; and predicting, by the at least one processor using the generated synthetic dataset, a future dataset for the base dataset, the predicted future dataset comprising a plurality of predicted data points according to the time-dependent characteristic.