使用Statsmodels VAR预测时间序列时遇到ValueError

我在尝试使用我的月度数据集预测未来的数值(数据按每年的12个月的第一天汇总),但遇到了以下问题:

ValueWarning: 已提供日期索引,但它没有关联的频率信息,因此在预测等操作时将被忽略。

我在Google和StackOverflow上搜索了很久,但没有找到相关的讨论和足够好的解决方案。

这是我数据框的前13行:

            Occupancy rate  Average Price     RevPARDate                                                2013-01-01        0.579026     105.289497  60.9653322013-02-01        0.637415     109.396682  69.7310702013-03-01        0.714847     117.840534  84.2379012013-04-01        0.716446     122.765139  87.9545932013-05-01        0.771097     105.461387  81.3209852013-06-01        0.768777     115.252163  88.6032622013-07-01        0.677020      81.824781  55.3969872013-08-01        0.673639      72.489988  48.8321102013-09-01        0.783291     125.034417  97.9382962013-10-01        0.779694     118.724648  92.5689022013-11-01        0.771430     113.322446  87.4203662013-12-01        0.680166     100.950857  68.6633882014-01-01        0.573320     102.881633  58.984090

这是我尝试进行的非常基本的拟合操作:

model = VAR(df)results = model.fit(2)results.forecast(df.values[-2:], 5)results.summary()

我认为我需要为数据框设置某种频率属性。我尝试过使用df.asfreq(‘M’),但这只是打乱了我的数据。


回答:

我不清楚您使用的模型是什么,但很可能是由于时间序列中的缺失值或freq不匹配导致的(月初的freqMS)。

所以我认为,您可以使用pd.date_range创建一个新的时间序列,然后用创建的时间序列重新索引数据框。

如果输入的数据框是:

In [10]: dfOut[10]:            0  12018-01-01  2  12018-03-01  0  0

那么我们可以创建一个新的时间序列:

In [12]: index = pd.date_range(start=df.index.min(), end=df.index.max(), freq='MS')In [13]: indexOut[13]: DatetimeIndex(['2018-01-01', '2018-02-01', '2018-03-01'], dtype='datetime64[ns]', freq='MS')

然后重新索引数据框

In [14]: df.reindex(index)Out[14]:            0    12018-01-01  2.0  1.02018-02-01  NaN  NaN2018-03-01  0.0  0.0

此外,我们还可以用一些合适的值填充数据框中的Nan值,以满足模型训练的需求。

Related Posts

为什么我们在K-means聚类方法中使用kmeans.fit函数?

我在一个视频中使用K-means聚类技术,但我不明白为…

如何获取Keras中ImageDataGenerator的.flow_from_directory函数扫描的类名?

我想制作一个用户友好的GUI图像分类器,用户只需指向数…

如何查看每个词的tf-idf得分

我试图了解文档中每个词的tf-idf得分。然而,它只返…

如何修复 ‘ValueError: Found input variables with inconsistent numbers of samples: [32979, 21602]’?

我在制作一个用于情感分析的逻辑回归模型时遇到了这个问题…

如何向神经网络输入两个不同大小的输入?

我想向神经网络输入两个数据集。第一个数据集(元素)具有…

逻辑回归与机器学习有何关联

我们正在开会讨论聘请一位我们信任的顾问来做机器学习。一…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注