使用外部变量预测时间序列数据


10

目前,我正在一个项目中进行时间序列数据(每月数据)的预测。我正在使用R进行预测。我有1个因变量(y)和3个独立变量(x1,x2,x3)。y变量具有73个观测值,其他3个变量也具有观测值(alos 73)。从2009年1月到2015年1月。我检查了相关性和p值,将其放入模型中非常重要。我的问题是:如何使用所有自变量进行良好的预测?我没有这些变量的将来值。假设我想预测两年(2017年)后我的y变量。我怎样才能做到这一点?

我尝试了以下代码:

    model = arima(y, order(0,2,0), xreg = externaldata) 

我可以使用此代码对两年内的y值进行预测吗?

我还尝试了回归代码:

    reg = lm(y ~ x1 + x2 + x3) 

但是如何花时间在这段代码中?我如何预测我的y值将超过2年?我是统计和预测的新手。我已经进行了一些读取并查看了滞后值,但是如何在模型中使用滞后值进行预测呢?

实际上,我的总体问题是,如何使用没有未来价值的外部变量来预测时间序列数据?


切勿对时间序列数据使用回归。使用传递函数模型方法。
汤姆·赖利

2
嗨,先生,您能告诉我更多关于传递函数模型的信息吗?为什么我永远不要对时间序列数据使用回归?大多数研究建议对时间序列使用回归。
SB

传递函数模型在第10章的Box-Jenkins教科书中进行了解释。目标是为每个因果建立模型(预白化),然后使用残差找到与Y的相关性(互相关)。这将帮助您确定哪些变量很重要,以及是否存在任何提前或滞后关系。X变量上的此方程式或分母可能需要ARIMA。您可能还会有异常值,趋势,水平,季节性,参数和方差的变化。
汤姆·赖利

回归可能会认为时间并不重要。高尔顿使用回归分析来研究汗豆...不是时间序列问题。传递函数使用过程的一部分来估计问题。
汤姆·赖利

Answers:


11

如果您使用外部变量拟合模型并希望从该模型进行预测,则将需要(预测)外部变量的未来值,包括简单值和简单值。没有办法解决这个问题。

当然,有几种预测解释变量的方法。您可以使用上一个观测值(“天真随机游走”预测)或整体平均值。您可以简单地将它们设置为零(如果这对他们有用)(例如,过去发生过的特殊事件,例如地震,您预计不会再次发生)。或者,您可以使用这些解释变量本身来拟合和预测时间序列模型,例如使用auto.arima

另一种方法是通过删除参数,然后使用此模型预测,从而使模型适合您的值而没有解释变量。优点之一是,这甚至可以捕获解释变量中的规律性。例如,您的冰淇淋销售可能受温度影响,而您对未来几个月的温度没有很好的预测...但是温度是季节性的,因此简单地拟合没有温度的模型会产生季节性模型,而您的季节性即使您包括销售的实际驱动因素,预测实际上也可能不错。yxregy

我推荐这本免费的在线预测教科书,尤其是关于多元回归的本节(不幸的是,那里没有ARIMAX),以及Rob Hyndman的博客文章“ ARIMAX模型混乱”


1

正如Yogi Berra所说:“很难做出预测,尤其是对未来的预测。”

在没有任何未来信息的情况下,许多统计软件模块将基于时间序列的单变量流生成预测,例如SAS中的Proc预测或任何数量的ARIMA模块。这些预测是基于数据历史行为的预测。

您告诉我们您的数据是每月的,但不告诉我们您有多少时间可用。另一种方法是将三个IV相对于DV推迟24个月,以便他们预测的周期为t + 24。假定您有足够的日期来初始化模型和校准任何相关的季节性(如适用)。


我已经编辑了我的文字。现在可以回答我的问题吗?
SB

鉴于您有足够的信息量,有很多方法可以将时间集成到模型中。您可以为年份(例如,2009、2010等),季度,时间序列中的每个月,或者作为一种考虑季节性的方法,每年的每个月创建虚拟变量。另一种方法是将时间视为数字趋势函数,例如线性(如从2009年1月= 1、2月= 2等开始的周期数)或基于线性趋势的任意多项式趋势,例如,二次方(线性趋势平方)和更高。您还想知道什么?
Mike Hunter

但是时间不能成为一个独立变量吗?那么如何使用3个外部变量预测y变量呢?我很难选择要进行预测的模型吗?
SB

如先前评论所述,时间将是一个独立变量。我认为您需要阅读回归,计量经济学和时间序列文献。这个站点上有很多线程可以解决这些问题并为文章,书籍等提供建议。浏览此网页的右侧,可以找到更多与您所关注的话题相关的线程。
迈克·亨特

我已经读了很多书,但还没有一个解决方案。这就是我在这里问这个问题的原因。你能说出我可以使用的一些文学线索吗?还是正确的网页?
SB

1

如我所见,您有三个选择:

  1. 对您的自变量使用已发布的预测,或查找模型以对其进行预测。例如,人口普查将具有预测的人口数据。
  2. 使用您拥有的数据集,对每个自变量进行时间回归,然后将这些结果用于独立变量的预测模型
  3. 删除自变量,仅将因变量建模为时间和y滞后值的函数。

每种方法都有其优点和缺点,因此最好的方法取决于特定的上下文。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.