Nixtla / neuralforecast

Scalable and user friendly neural :brain: forecasting algorithms.
https://nixtlaverse.nixtla.io/neuralforecast
Apache License 2.0
2.98k stars 342 forks source link

DLinear with exogenous variables? #993

Open candalfigomoro opened 4 months ago

candalfigomoro commented 4 months ago

Description

The original implementation of DLinear (and NLinear) does not support exogenous variables. In one publication (can't remember which one) I read that DLinear does not support them because it would worsen its performance, but in the original article I don't seem to see mention of this.

However, there are implementations of DLinear with support for exogenous variables, for example:

(it seems to me that support for exogenous variables in these two libraries is added a bit differently)

Do you think it might make sense to create a "DLinearx" (and NLinearx) class with Darts-style support for exogenous variables (historical, future, static)? @elephaint Opinions?

Use case

I think DLinear could be useful where a fast and simple model is needed (even more so than TiDE), but the lack of support for exogenous variables is quite crippling.

elephaint commented 4 months ago

Pro implementing it:

Against:

I don't know yet, but open to be convinced for either side.

Personally, I think the library would benefit greatly from a 'how to choose a model'-section where we simply steer users away from models such as DLinear if they require exogenous (this is something that is on my long-term todo list....).