1

fable'sARIMA函数中,我们可以选择查看使用该trace = TRUE选项评估的所有模型。(下面的示例。)此输出仅打印到控制台。

是否有任何地方可以保存此模型评估历史记录,或者有什么方法可以保存打印的控制台输出?

library(dplyr)
library(fable)
library(tsibble)
library(tsibbledata)

df <- aus_livestock |> 
    filter(Animal == 'Pigs', State == 'Queensland')

fcst <- df |>
    model(arima = ARIMA(Count, trace = TRUE))

# Prints all models tried, but only saves final selected model:
# Model specification       Selection metric
# ARIMA(2,1,2)(1,0,1)[12]+c Inf
# ARIMA(0,1,0)(0,0,0)[12]+c 21811.280078
# ARIMA(1,1,0)(1,0,0)[12]+c 21524.227259
# ARIMA(0,1,1)(0,0,1)[12]+c 21470.955343
# Search iteration complete: Current best fit is  0 1 1 0 0 1 1 
# ARIMA(0,1,1)(0,0,0)[12]+c 21562.904816
# ARIMA(0,1,0)(0,0,1)[12]+c 21710.467789
# ARIMA(0,1,1)(0,0,1)[12]   21469.103988
# Search iteration complete: Current best fit is  0 1 1 0 0 1 0 
# ...
# ...
# ...
4

1 回答 1

1

有一些选项可以读取输出

  1. 将输出写入capture.outputafile
capture.output(fcst <- df |>
        model(arima = ARIMA(Count, trace = TRUE)), 
       file = file.path(getwd(),  'arimaout.text'))
  1. 也可以使用包 ( logger) 将其写入日志文件
library(logger)
log_formatter(formatter_glue)
 t <- tempfile()
 log_appender(appender_file(t))
 log_info('{capture.output(fcst <- df |> model(arima = ARIMA(Count, trace = TRUE)))}') 
 log_appender()

-读取日志文件

readLines(t) |> 
     head()
[1] "INFO [2021-12-04 12:20:58] Model specification\t\tSelection metric"                       
[2] "INFO [2021-12-04 12:20:58] ARIMA(2,1,2)(1,0,1)[12]+c\tInf"                                
[3] "INFO [2021-12-04 12:20:58] ARIMA(0,1,0)(0,0,0)[12]+c\t21811.280078"                       
[4] "INFO [2021-12-04 12:20:58] ARIMA(1,1,0)(1,0,0)[12]+c\t21524.227259"                       
[5] "INFO [2021-12-04 12:20:58] ARIMA(0,1,1)(0,0,1)[12]+c\t21470.955343"                       
[6] "INFO [2021-12-04 12:20:58] Search iteration complete: Current best fit is  0 1 1 0 0 1 1 "

unlink如果是临时文件

unlink(t)
于 2021-12-04T18:24:55.803 回答