Description
Dear sir,
Here is my code, which uses LSTM for multi-step forecasting. I have set the stat_exog_list parameter. However, when I use the predict_insample method, I cannot find a way to pass my static exogenous variables. The following error occurs:
Exception: {'heat_release_rate_kw'} static exogenous variables not found in input dataset.
However, it seems that predict_insample does not accept static exogenous variables as an argument. How should I resolve this issue?
The following is my code:
import pandas as pd
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
from neuralforecast import NeuralForecast
from neuralforecast.models import LSTM
from neuralforecast.losses.pytorch import DistributionLoss
file_path = r"E:\NeuralForecast\Temperature.csv"
temp = pd.read_csv(file_path)
temp['ds'] = temp['ds'].astype(int)
Y_train_df = temp[temp.ds < temp['ds'].values[-12]]
Y_test_df = temp[temp.ds >= temp['ds'].values[-12]].reset_index(drop=True)
tempStatic = pd.DataFrame({
'unique_id': [25, 50, 100, 200],
'heat_release_rate_kw': [25, 50, 100, 200]
})
horizon=6
nf = NeuralForecast(
models=[LSTM(h=horizon,
input_size=12,
loss=DistributionLoss(distribution="Normal", level=[80, 90]),
scaler_type='robust',
encoder_n_layers=2,
encoder_hidden_size=128,
decoder_hidden_size=256,
decoder_layers=4,
max_steps=400,
futr_exog_list=[],
stat_exog_list=['heat_release_rate_kw'],
recurrent=True,
)
],
freq=1
)
#This sentence is the error source
Y_hat_df_train = nf.predict_insample(step_size = horizon)