I am trying to benchmark a seasonal forecasting model and calculate not just the point forecasts but the forecast densities from the model.

To do this, I generated a simulated data set in the following fashion:

  • Generate a sine wave with the same frequency as my target seasonality.
  • add one to the signal to keep the values non negative.
  • Add Gaussian noise to the sine wave.
  • Rounded down all float values to the integer value just below them because the business metric I am trying to forecast can't take fractional values.

The code for the simulated time series:

x =  np.array(range(0,seq_length))
noise = np.random.normal(0, 0.15, seq_length)
data = np.maximum(10 * (np.sin(np.pi * x / 12) + 1 + noise),0).astype(int)

I could use some non-parametric approach to estimate the forecast densities, by calculating the difference between the simulated data with noise and without noise, but I'm wondering if there is an analytical way of going from the initial normal distribution to what the distribution after clipping and quantization?

  • $\begingroup$ Given that you only have 21 possible values for the output, I'd probably just simulate it. Less work, and if you generate a million or so values, you should get adequate precision of your estimates. $\endgroup$ – jbowman Dec 5 '19 at 0:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.