[FEAT] RIN for covariates
Author: turbotimonCreated Apr 3, 2025Updated Jul 29, 2026
Labelsfeature requestpr_welcome
Is your feature request related to a current problem? Please describe.
Currently, the RIN (RevIn) is only done for the target series (n_targets). However, it would also be beneficial to past and future covariates in most cases (e.g. if they are leading indicators). An exception are maybe temporal or positional features (e.g. day/month/year) as added by add_encoders / datetime_attribute_timeseries()
Describe proposed solution
To give the user the most choice, I propose allowing the following for the use_reversible_instance_norm attribute:
- A single Bool e.g.
True: Target(s) only. As it is now (ensuring backwards compatibility) - A tuple of Bools e.g.
(True, True, False)which is interpreted as(target, past, future)therefore apply RIN for target(s) and past covariates, but not future covariats in the example. - Optionally, allowing also tuple of Boosl in the tuple e.g.
(True, (True, False), False)which gives even more fine control over which component will be normalized. The example would mean:Truefor all targetsTruefor the first past covariate andFalsefor the second (Tuple length must match number of components)Falsefor all future covariates
Describe potential alternatives
The logic could also be added as use_reversible_instance_norm kwargs proposed in https://github.com/unit8co/darts/issues/2748
use_reversible_instance_norm = {
"series" = True # Enable for all series components
"past_covariates" = (True, True, False) # Enable for the first two, but not the third. Tuple length must match number of components
"future_covariats" = False # Disable for all past cov
}Additional context
None
Source: unit8co/darts