У меня есть данные за 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.% вариации
Вывод, который я получаю, -
Прогнозный фрейм данных -
Фрейм данных валидации -
Как вы можете видеть, что прогнозы далеко от того, что ожидается. Может кто-нибудь посоветовать способ повышения точности. Кроме того, если я подгоняю модель к целым данным и затем печатаю прогнозы, это не учитывает начало нового месяца и, следовательно, позволяет прогнозировать как таковой. Как это может быть включено здесь. любая помощь приветствуется.
РЕДАКТИРОВАТЬ
Ссылка на набор данных - Набор данных
Спасибо