繁体   English   中英

具有 3 个月数据集的多元时间序列预测

[英]Multivariate time series forecasting with 3 months dataset

我生成了 3 个月的数据(每一行对应于每一天),我想对其进行多变量时间序列分析:

可用的列是 -

Date    Capacity_booked Total_Bookings  Total_Searches  %Variation

每个日期在数据集中有 1 个条目,有 3 个月的数据,我想拟合一个多元时间序列 model 来预测其他变量。

到目前为止,这是我的尝试,我试图通过阅读文章来达到同样的目的。

我也这样做了-

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. % Variation 在此处输入图像描述

  1. 容量_已预订在此处输入图像描述

  2. 总预订量和搜索量在此处输入图像描述

我收到的 output 是 -

预测 dataframe -

在此处输入图像描述

验证 Dataframe -

在此处输入图像描述

如您所见,预测与预期相差甚远。 任何人都可以提出一种提高准确性的方法。 此外,如果我在整个数据上拟合 model 然后打印预测,则没有考虑到新月份已经开始并因此进行预测。 怎么可能被纳入这里。 任何帮助表示赞赏。

编辑

链接到数据集 - 数据集

谢谢

提高准确性的一种方法是查看每个变量的自相关性,如 VAR 文档页面中所建议的那样:

https://www.statsmodels.org/dev/vector_ar.html

特定滞后的自相关值越大,该滞后对过程的用处就越大。

另一个好主意是查看 AIC 标准和 BIC 标准来验证您的准确性(上面的相同链接有一个使用示例)。 较小的值表明您找到真实估计量的可能性更大。

这样,您可以改变自回归 model 的顺序,并查看提供最低 AIC 和 BIC 的顺序,两者一起分析。 如果 AIC 指示最佳 model 的滞后为 3,而 BIC 指示最佳 model 的滞后为 5,则应分析 3,4 和 5 的值以查看具有最佳结果的值。

最好的情况是拥有更多数据(因为 3 个月并不多),但您可以尝试这些方法,看看是否有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM