【发布时间】:2018-09-08 18:17:13
【问题描述】:
我正在研究一个预测模型,其中我有从 2014 年到当月(2018 年 3 月)的月度数据。
我的部分数据是帐单列和报价金额列,例如 (为格式化道歉)
年 - 季度 - 月 - 账单 - 报价
2014- 2014Q1-- 201401- 100-------------500
2014- 2014Q1-- 201402- 150-------------600
2014- 2014Q1-- 201403- 200-------------700
我正在使用它来预测每月的销售额,并尝试使用 xreg 来计算每月的报价数量。
我查看了下面的文章,但缺少一些东西来完成我想要做的事情: ARIMA forecasting with auto.Arima() and xreg
问题:有人可以展示一个使用 xreg 预测 OUT OF SAMPLE 的示例吗?我知道为了实现这一点,您需要从样本中预测您的 xreg 变量,但我不知道如何将这些未来值传递进去。
我在预测值后尝试使用类似 futurevalues$mean 的东西,但这不起作用。
这是我的代码:
sales = read.csv('sales.csv')
# Below, I'm creating a training set for the models through
# December 2017 (48 months).
train = sales[sales$TRX_MON<=201712,]
# I will also create a test set for our data from January 2018 (3 months)
test = sales[sales$TRX_MON>201712,]
dtstr2 <- ts(train2, start=2014, frequency=12)
dtste2 <- ts(test2, start=2018, frequency=12)
fit2 <- auto.arima(dtstr2[,"BILLINGS"], xreg=dtstr2[,"QUOTES"])
fcast2 <- forecast(fit2, xreg=dtste2[,"QUOTES"], h=24)
fcast2
上面的代码有效,但只能给出 3 个月的预测,例如
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
Jan 2018 70 60 100 50 130
Feb 2018 80 70 110 60 140
Mar 2018 90 80 120 70 150
我搜索了尽可能多的博客和主题,寻找一个使用 auto.arima 和 xreg 变量的样本外预测的示例,但找不到任何这样做的。
有人可以帮忙吗?
非常感谢。
【问题讨论】:
-
您只会获得与您提供协变量一样多的预测。所以在这里你提供 3 并得到 3。如果你想要更多,你必须提供一个 x 值矩阵,其中包含你想要的预测行数。
-
嗨@atiretoo,谢谢你的回复。在这种情况下,我是否必须手动创建一个包含 x 值的矩阵才能推入,或者您是否知道将预测值推入的方法。例如,如果我预测我的 xreg 变量,我会得到一个类似的输出包括点预测和置信区间。我可以将我的点预测推送到模型中,而不是手动创建矩阵吗?再次感谢。
-
好吧,我尝试根据链接问题中发布的数据来制作 MWE,但我遇到的问题可能与该数据有关,而不是您的问题。如果没有您的数据,我可能无法解决问题。
-
我发现了我的问题...
-
谢谢@atiretoo...让我试一试,我会告诉你它是如何工作的。我正在使用实际的公司数据进行分析,这就是我无法发布它的原因。如果我不能让这种方法发挥作用,我会启动一些模拟数据来使用。
标签: r forecasting arima