首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在VARMAX模型中使用多个前一步的外生变量

如何在VARMAX模型中使用多个前一步的外生变量
EN

Stack Overflow用户
提问于 2021-07-10 21:39:43
回答 1查看 522关注 0票数 0

我有一个多变量和多时间步长的预测问题。基本上,我有一个预测的目标y,作为一个时间序列。还有几个外生变量x,它们也是时间序列数据。

我希望用这4天的滞后性来预测y的未来价值,所以基本上如下所示。请注意,我也希望使用x(t)数据进行预测。

代码语言:javascript
复制
y(t)=f(y(t-4), y(t-3), y(t-2), y(t_1), x(t-4), x(t-3), x(t-2), x(t-1), x(t))

但是它看起来像状态模型中的瓦尔马克斯模型只考虑x的一个时间步长吗?

此外,当x可用时,如何预测y的多步?我想我应该把x当作一个外生变量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-17 16:14:38

  • 若要使用y的4步滞后,p阶应为4,即order = (4,0)
  • 要使用外生变量x的4个步骤滞后,必须手动创建所有滞后的外生变量,并将它们作为一个数据框架传递给exog=参数。

设x是包含所有外生变量的熊猫数据框架。

我们可以使用下面的代码创建将传递给x_lag参数的exog=数据帧:

代码语言:javascript
复制
x_list = []

for q in range(5):
    x_lagged = x.shift(q).bfill()
    x_list.append(x_lagged)
    
x_lag = pd.concat(x_list,axis=1)

最后,您可以按照以下方式进行拟合和预测:

代码语言:javascript
复制
model = VARMAX(y, order=(4,0), exog=x_lag)
model_fit = model.fit()
# Suppose you have some later observations of the exogenous variables: x_lag_pred
# and you want to forecast 10 steps ahead.
model_fit.forecast(steps=10, exog=x_lag_pred.iloc[:10,:])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68331733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档