Apologies if this is not the right forum for asking this question. But I have tried other avenues but haven't gotten a satisfactory response. So, finally posting it here.

I've been exploring more advanced techniques for Multivariate Time Series Forecasting. Most of the resources that have been recommended like Forecasting: Principles and Practice, Time Series and its Applications, etc. are more about simple multivariate time series analysis involving one exogenous variable. These resources don't talk about the challenges involved in multivariate time series forecasting like forecasting input variables, feature selection, etc.

An example of the use cases that I am interested in is shared below

Main Objective: To predict the change in the direction and magnitude of the price of a cryptocurrency over the next day.

Exogenous Variables/Features: Current price of the currency, Amount of the currency sold in the last 24 hours, Change in the currency price in the last 24 hours, Change in the currency price in the last 1 hour, Number of new tweets in the last 24 hours that mention the currency

So, I was hoping that experienced Data Scientists can help me learn more advanced techniques to solve such problems. It would be great if you can recommend books and courses for a more detailed understanding.

Apologies for the long post. And thanks in advance.

TLDR: Resources to learn advanced forecasting techniques using multiple features.


1 Answer 1


I think this problem is pretty much a standard random walk (similar to the case of stock prices). The only non-autoregressive explanatory variable are the tweets. It is more or less standard today to predict some "sentiment" from news articles etc. and to use this to predict market outcomes. So the tweets could be really helpful.

You could approach your problem using a standard AR setting. However, more advanced techniques include LSTM neural nets. I really like the "Jena Weather" example for LSTM (Keras) in which an LSTM NN is used to predict weather (i.e. temperature). This might be a good start for your task.

  • $\begingroup$ Thanks. That example is really a good one. Are there are any other sources using less sophisticated approaches than Neural Networks for multivariate time series analysis? I was looking for ML techniques with more interpretability. $\endgroup$
    – Mayank Lal
    Sep 4, 2021 at 17:29
  • $\begingroup$ Well, you can try an autoregressive model. This would be the most interpretable model type, I guess otexts.com/fpp2/AR.html $\endgroup$
    – Peter
    Sep 4, 2021 at 19:33
  • $\begingroup$ As mentioned in my question, I have already gone through this book (Forecasting: Principles and Practice). AR/ARIMAX examples shared in the book are very simple ones that can't be extended to real-world use cases. I think that research papers are the only way to learn about it. $\endgroup$
    – Mayank Lal
    Sep 7, 2021 at 8:20
  • 1
    $\begingroup$ @Akash The best solution that I have found is basically to treat it like an ML Problem where you have a target variable and a list of input variables. The input variables need to be univariate and need to be forecasted separately. Once you have forecasted the input variables, now model it using different ML techniques as required. It should work in most cases. For me, the limited data proved to be a major roadblock. Hope this works for you. $\endgroup$
    – Mayank Lal
    Feb 22, 2022 at 6:06
  • 1
    $\begingroup$ @Akash: True on both accounts. I also did the same for my use case. Trained different models for all input variables and then used them to build a final model for my target variable. The accuracy was better than using plain ARIMAX models. But it wasn't superior enough to be productionized. Wasn't able to use Keras or other DL models due to limited size of dataset. $\endgroup$
    – Mayank Lal
    Feb 22, 2022 at 8:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.