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


12

我产生了3个月的数据(每一行对应于每一天),并且我想对同一数据执行多元时间序列分析:

可用的列是-

Date    Capacity_booked Total_Bookings  Total_Searches  %Variation

每个Date在数据集中都有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.%变化 在此处输入图片说明

  1. 预订人数 在此处输入图片说明

  2. 预订和搜索总数 在此处输入图片说明

我收到的输出是-

预测数据框-

在此处输入图片说明

验证数据框-

在此处输入图片说明

如您所见,预测与预期的相去甚远。任何人都可以建议提高准确性的方法。另外,如果我将模型拟合到整个数据上然后打印预测,则不会考虑新月份已​​经开始,因此也就不会进行预测。如何将其合并到此处。任何帮助表示赞赏。

编辑

链接到数据集- 数据集

谢谢


您可以张贴类的性病
Swarathesh Addanki

@SwaratheshAddanki我将链接添加到问题中的数据集...您可以看一下。
dper

您可以尝试使用具有“自制”功能的经典机器学习算法。例如,您可以尝试在过去的7天中训练一天的感知器,SVM或随机森林(使用4 * 7功能排成一行)。您还可以考虑上周的同一天(如果要预测星期三,则为星期三)和上个月每个星期三的平均值。也可以使用交叉验证来进行更真实的性能评估
politinsa

@politinsa可以分享一个例子吗?
dper

1
我认为您没有足够的数据来拟合一个好的模型:主要特征似乎是本月底的向下跳跃。我们只能在数据集中看到其中两个跳跃,而仅从两个观察中就不可能了解很多典型跳跃的样子。同样,这几个月的增长看起来足够规律,以至于该模型可以尝试描述这些曲线的形状,但是很少有关于典型月份中这些值将增长多少的信息。鉴于此,“下个月等于上个月”可能是一个很好的模型吗?
jochen

Answers:


1

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

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

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

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.