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

Exception :: iTransformer does not support future exogenous variables #977

Closed hberande closed 4 months ago

hberande commented 5 months ago

What happened + What you expected to happen

While Training dataset using iTransformer model I came across following error:

--> 200 raise Exception("iTransformer does not support future exogenous variables") 201 if hist_exog_list is not None: 202 raise Exception( 203 "iTransformer does not support historical exogenous variables" 204 )

Exception: iTransformer does not support future exogenous variables

If future & historic exogenous variables aren't supporting then when we can expect it?

Issue Severity

High: It blocks me from completing my task.

elephaint commented 5 months ago

Hi,

iTransformer (the method) does not support future exogenous covariates. Hence, this is not a bug, but intentional. It's the way the method was designed. I think static exogenous & historic exogenous could be added in the future - don't know when.

We are very careful with modifying published methods to support additional features that were not included in the original publication such as future exogenous variables because this can be very complex to incorporate and we would possibly have to (significantly) deviate from the original work by the authors. For example, TSMixer and TSMixerx (the latters support exogenous features) are very different architectures, that's why we decided to have them as separate models in Neuralforecast.

If you're keen on using exogenous with multivariate methods I'd suggest to use TSMixerx, or not use a multivariate method but a univariate method that supports exogenous.

Hope this helps.

@marcopeix wdyt? I think adding static and historic could be done relatively easily without major modifications to the architecture but I'm willing to bet performance with all but static exogenous will be very bad, given how the architecture is designed. I'd only include static covariates, similar as to what GluonTS has done, as the architecture just doesn't seem equipped for historic/future covariates (but happy to be proven wrong).

elephaint commented 4 months ago

Closing this issue, I think for now we will keep iTransformer as it is.