2

library(Ecdat)(使用来自可重复性的Orange 数据集。)

我正在尝试使用 R 中的 tsibble、fable 包在 R 中拟合平均预测模型。下面的代码非常简单,但是Error in NCOL(x) : object 'value' not found当我尝试运行最后一个模型部分时出现错误(即使value是 中的列名o_ts),不知道为什么会这样。我从这里(https://robjhyndman.com/hyndsight/fable/)关注 RJH 教程。

如果 arima 和均值预测模型是否相同,我也将不胜感激,如果不是,我应该使用什么函数来代替 Arima。

library(Ecdat)
library(tsibble)
library(feasts)
library(tidyverse)
library(fable)

o<- Orange 

o_ts <- o %>% as_tsibble()

o_ts %>%
  filter(key=="priceoj") %>% 
  model(
    arima=arima(value))
4

2 回答 2

1

arima来自stats包装。相信你想ARIMAfable

o_ts %>%
  filter(key == "priceoj") %>% 
  model(
    arima = ARIMA(value)
  )
#> # A mable: 1 x 2
#> # Key:     key [1]
#>   key                         arima
#>   <chr>                     <model>
#> 1 priceoj <ARIMA(1,1,0)(0,0,1)[12]>
于 2020-10-21T08:50:28.880 回答
0

如果您通过平均预测模型指的是取最后一次 X 观测值(移动平均线)的平均值,那么您应该使用MEAN.
虽然ARIMA确实指的是移动平均线(自动回归综合移动平均线),但这是指预测误差的加权移动平均线 - 您可以在此处阅读更多信息:9.4 预测中的移动平均线模型:原理与实践

o <- Orange 

o_ts <- o %>% as_tsibble()

o_ts %>%
  filter(key == "priceoj") %>% 
  model(mean = MEAN(value))

如果要指定要取平均值的观察量,则需要添加特殊的~window(size = X). 否则,将使用所有观察结果。

o_ts %>%
  filter(key == "priceoj") %>% 
  model(mean = MEAN(value ~ window(size = 3)))
于 2021-08-05T19:30:59.437 回答