Могу ли я предотвратить построение sarima.for? - PullRequest
0 голосов
/ 26 апреля 2019

Я хочу спрогнозировать временной ряд с помощью функции sarima.for из библиотеки astsa.Тем не менее, я хотел бы предотвратить сюжет и просто сохранить данные.

        require("astsa")
        set.seed(1)
        x<-ts(rnorm(31),start=1980,end=2010)
        sarima.for(x, n.ahead = 10, p=0, d=1, q=0)

Я не смог найти здесь опцию.Есть ли?Или есть способ определить правильную оболочку для функции?

enter image description here

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

Вы также можете использовать функции arima и predict из пакета статистики, чтобы получить те же результаты без графика.

Вы можете прочитать из файла справки, что sarima.for - is a wrapper for R's predict.Arima.

> n <- length(x)
> fit <- stats::arima(x, order = c(p=0, d=1, q=0), xreg=1:n)
> stats::predict(fit, n.ahead=10, newxreg = (n + 1):(n + 10))
$`pred`
Time Series:
Start = 2011 
End = 2020 
Frequency = 1 
 [1] 1.424851 1.491022 1.557193 1.623364 1.689535 1.755706 1.821877 1.888048 1.954220 2.020391

$se
Time Series:
Start = 2011 
End = 2020 
Frequency = 1 
 [1] 1.306001 1.846964 2.262060 2.612002 2.920307 3.199036 3.455353 3.693928 3.918002 4.129937
0 голосов
/ 26 апреля 2019

Вы можете отправить вывод во временный файл, а затем удалить файл:

sarima.noplot = function(x, ...) {
  png(tf<-tempfile())
  out <- sarima.for(x, ...)
  dev.off()
  file.remove(tf)
  return(out)
}

sarima.noplot(x, n.ahead = 10, p=0, d=1, q=0)
# $pred
# Time Series:
#   Start = 2011 
# End = 2020 
# Frequency = 1 
# [1] 1.424851 1.491022 1.557193 1.623364 1.689535 1.755706 1.821877
# [8] 1.888048 1.954220 2.020391
...