Tengo 3 meses de datos (cada fila correspondiente a cada día) generados y quiero realizar un análisis de series de tiempo multivariadas para el mismo:
las columnas que están disponibles son:
Date Capacity_booked Total_Bookings Total_Searches %Variation
Cada fecha tiene 1 entrada en el conjunto de datos y tiene 3 meses de datos y quiero ajustar un modelo de serie temporal multivariante para pronosticar también otras variables.
Hasta ahora, este fue mi intento e intenté lograr lo mismo leyendo artículos.
Yo hice lo mismo -
df['Date'] = pd.to_datetime(Date , format = '%d/%m/%Y')
data = df.drop(['Date'], axis=1)
data.index = df.Date
from statsmodels.tsa.vector_ar.vecm import coint_johansen
johan_test_temp = data
coint_johansen(johan_test_temp,-1,1).eig
#creating the train and validation set
train = data[:int(0.8*(len(data)))]
valid = data[int(0.8*(len(data))):]
freq=train.index.inferred_freq
from statsmodels.tsa.vector_ar.var_model import VAR
model = VAR(endog=train,freq=train.index.inferred_freq)
model_fit = model.fit()
# make prediction on validation
prediction = model_fit.forecast(model_fit.data, steps=len(valid))
cols = data.columns
pred = pd.DataFrame(index=range(0,len(prediction)),columns=[cols])
for j in range(0,4):
for i in range(0, len(prediction)):
pred.iloc[i][j] = prediction[i][j]
Tengo un conjunto de validación y un conjunto de predicciones. Sin embargo, las predicciones son mucho peores de lo esperado.
Las gráficas del conjunto de datos son: 1.% de variación
Los resultados que estoy recibiendo son:
Marco de datos de predicción -
Marco de datos de validación -
Como puede ver, las predicciones están muy lejos de lo esperado. ¿Alguien puede aconsejar una forma de mejorar la precisión? Además, si ajusto el modelo en datos completos y luego imprimo los pronósticos, no tiene en cuenta que el nuevo mes ha comenzado y, por lo tanto, predice como tal. ¿Cómo se puede incorporar eso aquí? Cualquier ayuda es apreciada.
EDITAR
Enlace al conjunto de datos - Conjunto de datos
Gracias