Rstudios sarima показать только сюжеты - PullRequest
3 голосов
/ 29 октября 2019

У меня есть следующий код, который я выполняю в Rstudios:

```{r}
library(astsa)
data = c(1:500)
mo1 = sarima(data,0,0,2)
```

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

Когда я запускаю этот код в консоли, графики помещаютсяв PDF и вывод оптимизации выводится в STDOUT. Это хорошо, потому что у меня могут быть графики и оптимизация отдельно, что мне и нужно, но я хочу сделать это в RStudios. Как это можно сделать?

1 Ответ

1 голос
/ 02 ноября 2019

Похоже, что аргумент details используется для возврата вывода trace от оптимизаторов - см. Строки в sarima:

trc = ifelse(details, 1, 0)

и различные

optim.control = list(trace = trc, REPORT = 1, reltol = tol)

и для создания графиков

if (details) {
  < code for plots>
}

Пара вариантов для создания графиков, но без оптимизатора, будет:

  1. захватить выходные данные изоптимизатор:

    mo1 = capture.output(sarima(data,0,0,2))
    

, но затем вы либо анализируете захваченный вывод, чтобы получить статистику соответствия, либо вам нужно запустить, чтобы запустить sarima во второй раз (mo1 = sarima(data,0,0,2, details=FALSE)), чтобы получитьстатистика.

изменить тело функции, чтобы изменить аргумент details:

body(sarima)[[18]] = quote(trc <- abs(details-1)) 
mo1 = sarima(data,0,0,2, details = TRUE)

Другой вариант - запросить авторов измените функцию для разделения команд трассировки и построения оптимизатора (т.е. добавьте аргумент типа plot=TRUE к сигнатуре функции и измените if(details) на if(plot)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...