У мене створено 3 місяці даних (кожен рядок, що відповідає кожному дню), і я хочу виконати багатоваріантний аналіз часових рядів для тих же:
наявні стовпці -
Date Capacity_booked Total_Bookings Total_Searches %Variation
Кожна дата має 1 запис у наборі даних і має 3 місяці даних, і я хочу пристосувати багатовимірну модель часового ряду для прогнозування інших змінних.
Поки це була моя спроба, і я намагався досягти того, читаючи статті.
Я зробив те саме -
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]
У мене є набір валідації та прогнозування. Однак прогнози набагато гірші, ніж очікувалося.
Діаграми набору даних - 1.% варіація
Вихід, який я отримую, -
Рамка даних прогнозування -
Рамка даних валідації -
Як ви бачите, що прогнози далеко не те, що очікується. Хто-небудь може порадити спосіб підвищення точності. Крім того, якщо я поміщую модель на цілі дані і потім друкую прогнози, це не враховує, що почався новий місяць, а отже, і прогнозувати як такий. Як це можна включити сюди. будь-яка допомога цінується.
EDIT
Посилання на набір даних - Набір даних
Дякую