Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DLinear with exogenous variables? #993

Open
candalfigomoro opened this issue May 7, 2024 · 1 comment
Open

DLinear with exogenous variables? #993

candalfigomoro opened this issue May 7, 2024 · 1 comment

Comments

@candalfigomoro
Copy link
Contributor

candalfigomoro commented May 7, 2024

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
Copy link
Contributor

elephaint commented May 7, 2024

Pro implementing it:

  • It's easy to implement (but hard to get it right)

Against:

  • Performance will likely not be that good, simply because adding exogenous properly is quite hard (see TSMixerx vs TSMixer, it commonly requires a big structural change to the original architecture).
  • Not convinced (yet) of the benefit over other simple, fast models such as NHITS, TSMixerx, BiTCN, and TiDE that offer exogenous too.

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....).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants