我有三个月的数据(每一行对应每一天),我想为此执行多元时间序列分析:
可用的列是 -
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]
我有一个验证集和预测集,但是预测结果比预期的要差得多。
数据集的图表如下:
我收到的输出如下:
预测数据框 -
验证数据框 -
正如您所看到的,预测结果偏离了预期。有人能建议一种改进精度的方法吗?此外,如果我在整个数据上拟合模型,然后打印预测结果,它不考虑新月份已经开始,因此需要进行相应的预测。该如何在这里实现呢?任何帮助都将不胜感激。
编辑
数据集链接 - 数据集
谢谢