Slackbot
12/28/2023, 4:53 PMMax (Nixtla)
12/30/2023, 6:03 PMstack_types
, you can just do something like this when instantiating the model:
model = NBEATSx(h=12, input_size=24,
#loss=MQLoss(level=[80, 90]),
loss=DistributionLoss(distribution='Normal', level=[80, 90]),
scaler_type='robust',
dropout_prob_theta=0.5,
stat_exog_list=['airline1'],
futr_exog_list=['trend'],
max_steps=200,
val_check_steps=10,
early_stop_patience_steps=2)
And then:
nf = NeuralForecast(
models=[model],
freq='M'
)
nf.fit(df=Y_train_df, static_df=AirPassengersStatic, val_size=12)
Y_hat_df = nf.predict(futr_df=Y_test_df)
The idea is to have a more agnostic use of exogenous variables. For example, to include ex. variables in an NHITS you would do something like:
horizon = 24 # day-ahead daily forecast
models = [NHITS(h = horizon,
input_size = 5*horizon,
futr_exog_list = ['gen_forecast', 'week_day'], # <- Future exogenous variables
hist_exog_list = ['system_load'], # <- Historical exogenous variables
stat_exog_list = ['market_0', 'market_1'], # <- Static exogenous variables
scaler_type = 'robust')]
Ref:
https://nixtlaverse.nixtla.io/neuralforecast/models.nbeatsx.html
https://nixtlaverse.nixtla.io/neuralforecast/examples/exogenous_variables.htmlAntoine SCHWARTZ -CROIX-
12/31/2023, 12:27 AMstack_type
list. Am I missing something?
Thanks in advance.Max (Nixtla)
12/31/2023, 12:29 AMCristian (Nixtla)
01/08/2024, 3:51 PMstack_type
parameter and add the exogenous
stack. You can have how many different stack types as you want, and combine the exogenous with the current interpretable configuration as default.Cristian (Nixtla)
01/08/2024, 3:52 PMtheta
weights projectors. In fact, we have seen that most of the performance gains of the NBEATSx over NBEATS is gained simply by this version. The exogenous block is mostly helpful if you want to have the decomposition.Antoine SCHWARTZ -CROIX-
01/08/2024, 4:11 PMstat_exog
+ futr_exog
π