有哪些方法可以生成用于建模的模拟时间序列数据?

机器算法验证 时间序列 造型 数据集 Python
2022-04-11 11:10:30

我有一个数据集,其中包含 50 个观察年份,其中我有河流和水库之间的日期和流入值。数据格式如下:

Day     Inflows
123      4356.0

我有 50 年的观察数据,其中包括每天的每日值。绘制的数据如下所示:

2005 年每一天的流入值图

现在忽略小的外围绿色斑块,我正在寻找一种模拟曲线的绿色部分(代表春季径流期)的方法,以便我可以使用模拟的春季流入进行一系列模型运行。

我希望有人能够指出我解决此类问题的“标准”方法。数据集中的年份之间存在很大差异(干旱年份显示一年中蓝色和绿色部分之间的变化很小)。有哪些方法可以接近生成这样的数据?

让我知道是否有任何其他信息可以提供。我对这种问题很陌生,所以我不确定什么最有用。

2个回答

一种可能性是将时间序列模型拟合到您感兴趣的数据。然后您可以从拟合模型中重新采样残差并使用它们来模拟数据。例如,您可以拟合 ARIMA 模型,对残差重新采样,然后从拟合的 ARIMA 模型生成新数据。您将使用重新采样的残差,而不是从高斯分布中生成创新。

您可以在有关引导时间序列的文献中找到更多详细信息。例如,参见这篇文章和那里提到的参考资料。

您应该注意您提到的事件,例如干旱年份或其他特定事件。这些事件可能是特定年份的例外情况,也可能是数据中观察到的周期性模式。您应该选择适当的干预变量来捕捉模型中的这些影响。或者,您可以为每个子样本拟合一个模型,其中数据保持相对稳定,方差没有中断或变化。

我建议您首先确定要预测一天、一​​个月或一年,然后考虑影响目标变量的情况,以及是否可以使用外部数据库中的变量,例如温度,正如我们的朋友所说,使用时间-系列机型。我认为准备数据是更重要的建模。不要忘记对您的数据进行平滑处理。