Suppose I have a set of measurements taken at regular intervals, and I want to predict future values of one of those measurements. There are relationships between the variables being measured. For example, some variables may tend to rise together, or one variable might tend to fall when another rises. What are the state-of-the-art methods for this type of forecasting?
Solved – State-of-the-art methods for forecasting time series array
forecastingpredictiontime series
Related Solutions
Here is some preliminary list of disadvantages I was able to extract from your comments. Criticism and additions are very welcome!
Overall - compared to ARIMA, state-space models allow you to model more complex processes, have interpretable structure and easily handle data irregularities; but for this you pay with increased complexity of a model, harder calibration, less community knowledge.
- ARIMA is a universal approximator - you don't care what is the true model behind your data and you use universal ARIMA diagnostic and fitting tools to approximate this model. It is like a polynomial curve fitting - you don't care what is the true function, you always can approximate it with a polynomial of some degree.
- State-space models naturally require you to write-down some reasonable model for your process (which is good - you use your prior knowledge of your process to improve estimates). Of course, if you don't have any idea of your process, you always can use some universal state-space model also - e.g. represent ARIMA in a state-space form. But then ARIMA in its original form has more parsimonious formulation - without introducing unnecessary hidden states.
- Because there is such a great variety of state-space models formulations (much richer than class of ARIMA models), behavior of all these potential models is not well studied and if the model you formulated is complicated - it's hard to say how it will behave under different circumstances. Of course, if your state-space model is simple or composed of interpretable components, there is no such problem. But ARIMA is always the same well studied ARIMA so it should be easier to anticipate its behavior even if you use it to approximate some complex process.
- Because state-space allows you directly and exactly model complex/nonlinear models, then for these complex/nonlinear models you may have problems with stability of filtering/prediction (EKF/UKF divergence, particle filter degradation). You may also have problems with calibrating complicated-model's parameters - it's a computationally-hard optimization problem. ARIMA is simple, has less parameters (1 noise source instead of 2 noise sources, no hidden variables) so its calibration is simpler.
- For state-space there is less community knowledge and software in statistical community than for ARIMA.
Usually you want to forecast the behaviour of a system to improve your reaction to and interaction with that system. But at the end of the day, forecasting is only a last resort, if it is not feasible to control the system. Moreover, forecasting with nothing but time series is something you usually only do if your system is so complex that you cannot incorporate any useful other knowledge about it into your forecasts.
Time-series analysis gives you a lot of methods to understand the inner workings of a system, which in turn may be the first step to controlling it. For example, it may yield the following information:
- What are the internal rhythms of the system and what is their relevance to my observable?
- To what extent is my system noise-dominated and how does that noise look like?
- Is the system stationary or not – the latter being an indicator for long-term changes of external conditions influencing the system.
- If I regard my system as a dynamical system, what are the features of the underlying dynamics: Is it chaotic or regular? How does it react to perturbations? How does its phase space look like?
- For a system with multiple components: Which components interact with each other?
- How do I model my system if I want my model to do more than just reproduce certain features of observed time series, such as yielding an understanding of the system, properly describing situations that are not comparable to anything that has been observed in the past at all, e.g., when I actively manipulate the system or an extreme event happens (such as in a disaster simulation). All of the above points can play into this and moreover, time-series analysis can be used to verify a model by comparing the time series of the original and the model.
Some practical examples:
- Climate research employs a lot of time-series analysis but is not only good for forecasting climate but also tries to answers the important question of how we influence our climate.
- If you have a time series related to the illness of an individual female patient and you find a strong frequency component of roughly one month, this is a strong hint to the menstrual cycle being somehow involved. Even if you fail to understand this relation, and can only treat the symptoms by giving some medication at the right time, you can benefit from taking the actual menstrual cycle of that patient into account (this is an example were you forecast with more than just time series).
Best Answer
You could use both Markov chains/hidden Markov models and recurrent neural networks to predict future values in such time series.
As you explicitly ask for state of the art models: some newer and more advanced forms of recurrent neural nets, like a long-short-term-memory net might be interesting to you. Be aware that a) those tend to need huge computation power and b) (though this is undergoing a strong change at the moment) there are still no/very few ready-to-use-out-of-the-box implementations of such models. Most evolved from research prototypes that have been made available to the public. Take a look at e.g. Keras, or http://lstm.iupr.com/ or http://deeplearning4j.org/lstm.html for hints on other open source implementations.