Tengo una serie temporal de datos por hora como esta:
df.head()
y v1 v2 v3 v4 v5 v6
20 1 29 3 4 0 2020
23 1 24 2 3 1 2020
29 0 17 5 6 2 2020
35 0 15 5 6 3 2020
Estoy usando XGBoost o GBM para predecir $y$ para el día siguiente (24 horas). Como los métodos como GBM o XGBoost no tienen en cuenta las tendencias o patrones de las series temporales, añadí a los datos variables como el año, la hora, el mes, etc. Como no se tiene en cuenta el último valor, también creé una variable de retardo ( $x$ ) para $y$ :
df.head()
y v1 v2 v3 v4 v5 v6 x
20 1 29 3 4 0 2020
23 1 24 2 3 1 2020 20
29 0 17 5 6 2 2020 23
35 0 15 5 6 3 2020 29
Como sólo estoy prediciendo una variable ( $y$ ) utilizando como entrada las otras variables, ¿cómo tendrá mi segunda, tercera, etc. hora en cuenta el valor del retraso? Mi línea de producción es algo similar a esto:
import numpy as np
df_train = df
X1=df_train[['v1','v2','v3','v4','v5','v6','x']
y1=df_train['y']
from sklearn.model_selection import train_test_split
X_train, y_train =X1, y1
X_test=df_test[['v1','v2','v3','v4','v5','v6','x']
regressor=XGBRegressor()
regressor.fit(X_train,y_train)
regressor.predict(X_test)
Sin embargo, no puedo dar $x$ como entrada para predecir las próximas 24 horas porque no tengo valores de x para las próximas 24 horas porque siempre dependen del último día. ¿Es posible que el modelo prediga, por ejemplo, la hora 5 utilizando el valor $x$ de la predicción $y$ ¿valor en la hora 4?
Editar: Y si no es posible utilizar las predicciones en el momento $t$ para ser una característica de retardo para la predicción en el tiempo $t+1$ ¿Cómo puedo superar este problema? ¿Puedo simplemente predecir ambos $x$ y $y$ ?