使用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近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

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