【问题标题】:Making a prediction with a pastas timeseries model使用意大利面时间序列模型进行预测
【发布时间】:2020-04-23 12:33:37
【问题描述】:

对于我的论文项目,我试图通过应用一个粒子过滤器来预测地下水位,该过滤器使用天气预报数据(特别是毫米降雨量和蒸发量)。作为粒子过滤过程的一部分,我需要根据这个天气预报数据来预测地下水位,我想使用 Pastas 模型来做。

目前我已经训练了一个 Pastas 模型如下:

import pastas as ps

# set up model
model = ps.Model(gwml_train.gws)

# add stresses information
rain = ps.StressModel(wm_train.RH, ps.Gamma, name='rain', settings="prec")
evap = ps.StressModel(wm_train.EV, ps.Gamma, name='evap', settings="evap")
model.add_stressmodel(rain)
model.add_stressmodel(evap)

# solve model
model.solve()

gwml_train 是 2018 年 1 月 1 日至 2019 年 1 月 1 日期间的地下水位数据,wm_train 是相同数据的天气测量值。 Rh是降雨量,EV是蒸发量。

该模型解释了结合天气测量给出的地下水位测量。我想做的是对没有给出地下水位测量值但有天气测量值的时期进行预测。

具体来说,我使用了一个 for 循环,它对 2019 年 1 月 1 日至 2019 年 1 月 3 日期间的每一天进行 30 天的预测。每天我都会得到一个包含当天 30 天天气预报的数据集。我想做的是将这些天气预报数据添加到模型中,并用它来预测这 30 天期间的地下水位。有没有办法做到这一点?

将数据添加到solve() 不起作用,方法simulate() 不获取任何数据。

这个问题是由一位用户通过邮件发送给我的。我在这里发布它是为了在 SO 上添加一个意大利面问题。

编辑:用用户解释更新问题。

【问题讨论】:

    标签: python time-series forecasting


    【解决方案1】:

    假设我们创建了一个以降水和蒸发为压力的面食模型ml。通过在ml.solve() 中指定时间段来优化特定时间段的时间序列模型:

    ml.solve(tmin="2010", tmax="2020")
    

    要模拟特定时期,请使用ml.simulate() 中相同的 tmin/tmax 选项。因此,对于 2020 年 1 月的地下水位预测:

    sim  = ml.simulate(tmin="2020-01-01", tmax="2020-01-31")
    

    sim 是一个包含模拟地下水头的pandas.Series。请注意,降水和蒸发时间序列确实需要有您要模拟的时期的数据,否则模型将使用时间序列的平均值来计算地下水位。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      • 2017-10-03
      • 2019-05-22
      • 1970-01-01
      相关资源
      最近更新 更多