使用帕斯时间序列模型进行预测

问题描述 投票:0回答:1

在我的论文项目中,我试图通过使用天气预报数据(特别是降雨量和蒸发量的毫米)的粒子过滤器来预测地下水位。作为粒子过滤过程的一部分,我需要根据这些天气预报数据对地下水位进行预测,我想使用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-loop,对1-1-2019年至1-3-2019年期间的每一天进行30天的预测。 在每一天,我都会得到一个数据集,里面有当天的30天天气预报。我想做的,是把这个天气预报数据添加到模型中,用它来预测这30天的地下水位。有什么方法可以做到这一点吗?

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

这个问题是一个用户通过邮件发给我的。我把它贴在这里,是为了在SO上增加一个面食问题。

EDIT:更新了问题,有了用户的解释。

python time-series forecasting
1个回答
1
投票

比方说,我们已经建立了一个帕斯模型 ml 以降水和蒸发为应力。优化特定时期的时序模型,通过指定时期来实现。ml.solve():

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

要模拟一个特定的时期,使用相同的tmintmax选项。ml.simulate(). 所以对于2020年1月地下水位的预测。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.