首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么常数“神话工具”与“预测包”中的平均值不同(ARIMA模型)?

为什么常数“神话工具”与“预测包”中的平均值不同(ARIMA模型)?
EN

Stack Overflow用户
提问于 2020-01-15 11:36:52
回答 1查看 436关注 0票数 0

我开始重写我所有的代码,从预测到寓言。有人知道为什么常数和平均值不同吗?

代码语言:javascript
复制
library("fable")
library("lubridate")
library("dplyr")
library("forecast")

# gen data
set.seed(68)
df <- data.frame(time = ymd(Sys.Date() - c(1:1000)),
                 V = rnorm(1000, 0.2))
df <- fabletools::as_tsibble(df, index = time, regular = TRUE) %>% dplyr::arrange(time)

# fable model
df %>% fabletools::model(fable::ARIMA(V ~ pdq(3, 0, 0) + PDQ(0, 0, 0))) %>% report()

# forecast model
as.ts(df) %>% forecast::Arima(c(3, 0, 0), include.mean = TRUE)

寓言模型

代码语言:javascript
复制
Series: V 
Model: ARIMA(3,0,0) w/ mean 

Coefficients:
          ar1      ar2      ar3  constant
      -0.0578  -0.0335  -0.0158    0.2141
s.e.   0.0316   0.0317   0.0317    0.0308

sigma^2 estimated as 0.9499:  log likelihood=-1391.23
AIC=2792.45   AICc=2792.51   BIC=2816.99

预测模型

代码语言:javascript
复制
Series: . 
ARIMA(3,0,0) with non-zero mean 

Coefficients:
          ar1      ar2      ar3    mean
      -0.0578  -0.0335  -0.0158  0.1934
s.e.   0.0316   0.0317   0.0317  0.0278

sigma^2 estimated as 0.9499:  log likelihood=-1391.23
AIC=2792.45   AICc=2792.51   BIC=2816.99

我得到了一些高阶模型的误差,但我不能正确地解释。我可以用forecast来估计模型,尽管模型可能很傻,但我甚至不能用fable来估计它们

代码语言:javascript
复制
Warning message: 
1 error encountered for ar
[1] There are no ARIMA models to choose from after imposing the `order_constraint`, please consider allowing more models.`
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-27 22:36:34

您在寓言和预测之间指定的模型是等效的。包之间的参数化不同,fable::ARIMA使用常量形式,而forecast::Arimastats::arima使用平均值形式。

这是在https://otexts.com/fpp3/arima-r.html#understanding-constants-in-r中讨论的。

此外,在您的寓言模型规范中,您没有指定模型中的常量(或等效的include.mean)。如果没有这样做,fable将通过类似于auto.arima的算法在包含和排除常量之间自动选择。您应该将1 (包括)或0 (排除)添加到公式中,以指定模型的常量。

fable::ARIMA(V ~ 1 + pdq(3, 0, 0) + PDQ(0, 0, 0)))等同于forecast::Arima(V, c(3, 0, 0), include.mean = TRUE)

这也是你在估计高阶模型时遇到困难的原因。当自动选择模型时,fable::ARIMA将尊重参数order_constraint = p + q + P + Q <= 6。由于未指定常量(并将自动选择),因此将强制执行该order约束(没有提供可评估的模型)。您可以通过使用order_constraint删除order_constraint = TRUE来保持自动选择(这意味着每当测试约束时,它都是真的,也就是可接受的)。

我已经更新了包,以包括更多的信息错误和更好的描述参数化在?ARIMA中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59750645

复制
相关文章

相似问题

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