When making a time series forecast using LSTM RNN, how do you forecast more than one period in the future?
For instance, if I have a time series where the value $t_n$ denotes the value at interval $n$, it is straightforward to create a regressor for interval $t_n$. How then do I forecast at $t_{n+1}$? I can think of a number of ways, but they seem to have some problems:
- Take the output at time $t_n$ and use it an an input, sliding the window to include the forecasted value.
- Create a single model with $k$ outputs, forecasting each interval into the future.
- Create a different regressor specifically for each of the $k$ values in the future that I want to predict.
The former seems more valuable to me than the latter as I don't have to train multiple models, saving on training time and cost of storing each of the models. The question then is, should I take this into account while training? Like, it seems that the model should find some use in knowing whether or not a data point is 'real' or 'forecasted', or potentially even how far into the future it was forecasted. For instance, pairing each input $t_{n-i}$ with the number of intervals ahead it was forecasted. So the first interval $t_n$ be based on some time-lagged, actual values, with "forecast interval" of $0$. Then the next forecast will include $t_1$ with "forecast interval" of $1$, and so on for some configured amount of intervals forward.
My questions are:
- Is this method viable? Is it necessary?
- Is there an easier way of doing this?
- How do I calculate the residuals when training?
- Do I just calculate a "full run" of all $k$ periods and calculate the RMSE (or other residual metric) of all of all of the predictions? I can then theoretically weight them based on different time scales that I need.