library(TSstudio)Warning: package 'TSstudio' was built under R version 4.2.3
library(TSstudio)Warning: package 'TSstudio' was built under R version 4.2.3
data("Coffee_Prices")
ts_info(Coffee_Prices) The Coffee_Prices series is a mts object with 2 variables and 701 observations
Frequency: 12
Start time: 1960 1
End time: 2018 5
head(Coffee_Prices) Robusta Arabica
[1,] 0.6968643 0.9409
[2,] 0.6887074 0.9469
[3,] 0.6887074 0.9281
[4,] 0.6845187 0.9303
[5,] 0.6906915 0.9200
[6,] 0.6968643 0.9123
robusta <- Coffee_Prices[,1]
library(plotly)Loading required package: ggplot2
Attaching package: 'plotly'
The following object is masked from 'package:ggplot2':
last_plot
The following object is masked from 'package:stats':
filter
The following object is masked from 'package:graphics':
layout
ts_plot(robusta,
title = "The Robusta Coffee Monthly Prices",
Ytitle = "Price in USD",
Xtitle = "Year")library(tidyr)
sma_forecast <- function(df, h, m, w = NULL){
# Manejo de errores
if(h > nrow(df)){
stop("La longitud del horizonte de pronóstico debe ser menor que la longitud de la serie")
}
if(m > nrow(df)){
stop("La longitud de la ventana móvil debe ser menor que la longitud de la serie")
}
if(!is.null(w)){
if(length(w) != m){
stop("El argumento weight no coincide con la longitud de la ventana móvil")
} else if(sum(w) != 1){
stop("La suma de los pesos promedio es diferente de 1")
}
}
# Configuración de los pesos promedio
if(is.null(w)){
w <- rep(1/m, m)
}
# Configuración del marco de datos
#---------------------------------
# Cambio del nombre de la columna del objeto de fecha
names(df)[1] <- "date"
# Establecer la partición de entrenamiento y prueba
# según el horizonte de pronóstico
df$type <- c(rep("train", nrow(df) - h),
rep("test", h))
# Expandir la tabla por el tipo de partición
df1 <- df %>% spread(key = type, value = y)
# Crear la variable objetivo
df1$yhat <- df1$train
# Calcular la media móvil simple
for(i in (nrow(df1) - h + 1):nrow(df1)){
r <- (i-m):(i-1)
df1$yhat[i] <- sum(df1$yhat[r] * w)
}
# Eliminar los valores reales de la variable yhat
# que se utilizaron para la ventana móvil
df1$yhat <- ifelse(is.na(df1$test), NA, df1$yhat)
df1$y <- ifelse(is.na(df1$test), df1$train, df1$test)
return(df1)
}
# Convertir la serie temporal en un objeto compatible con Prophet
robusta_df <- ts_to_prophet(robusta)
# Calcular las predicciones para diferentes valores de m
robusta_fc_m1 <- sma_forecast(robusta_df, h = 24, m = 1)
robusta_fc_m6 <- sma_forecast(robusta_df, h = 24, m = 6)
robusta_fc_m12 <- sma_forecast(robusta_df, h = 24, m = 12)
robusta_fc_m24 <- sma_forecast(robusta_df, h = 24, m = 24)
robusta_fc_m36 <- sma_forecast(robusta_df, h = 24, m = 36)
# -------- Code Chank 6 --------
library(plotly)
plot_ly(data = robusta_df[650:nrow(robusta_df),], x = ~ ds, y = ~ y,
type = "scatter", mode = "lines",
name = "Actual") %>%
add_lines(x = robusta_fc_m1$date, y = robusta_fc_m1$yhat,
name = "SMA - 1", line = list(dash = "dash")) %>%
add_lines(x = robusta_fc_m6$date, y = robusta_fc_m6$yhat,
name = "SMA - 6", line = list(dash = "dash")) %>%
add_lines(x = robusta_fc_m12$date, y = robusta_fc_m12$yhat,
name = "SMA - 12", line = list(dash = "dash")) %>%
add_lines(x = robusta_fc_m24$date, y = robusta_fc_m24$yhat,
name = "SMA - 24", line = list(dash = "dash")) %>%
add_lines(x = robusta_fc_m36$date, y = robusta_fc_m36$yhat,
name = "SMA - 36", line = list(dash = "dash")) %>%
layout(title = "Forecasting the Robusta Coffee Monthly Prices",
xaxis = list(title = ""),
yaxis = list(title = "USD per Kg."))# -------- Code Chank 7 --------
data(USgas)
USgas_df <- ts_to_prophet(USgas)
# -------- Code Chank 8 --------
USgas_fc_m12a <- sma_forecast(USgas_df,
h = 24,
m = 12,
w = c(1, rep(0,11)))
USgas_fc_m12b <- sma_forecast(USgas_df,
h = 24,
m = 12,
w = c(0.8, rep(0,10), 0.2))
# -------- Code Chank 9 --------
plot_ly(data = USgas_df[190:nrow(USgas_df),], x = ~ ds, y = ~ y,
type = "scatter", mode = "lines",
name = "Actual") %>%
add_lines(x = USgas_fc_m12a$date, y = USgas_fc_m12a$yhat,
name = "WMA - Seasonal Lag", line = list(dash = "dash")) %>%
add_lines(x = USgas_fc_m12b$date, y = USgas_fc_m12b$yhat,
name = "WMA - 12 (0.2/0.8)", line = list(dash = "dash")) %>%
layout(title = "Forecasting the Monthly Consumption of Natural Gas in the US",
xaxis = list(title = ""),
yaxis = list(title = "Billion Cubic Feet"))# -------- Code Chank 10 --------
alpha_df <- data.frame(index = seq(from = 1, to = 15, by = 1),
power = seq(from = 14, to = 0, by = -1))
alpha_df$alpha_0.01 <- 0.01 * (1 - 0.01) ^ alpha_df$power
alpha_df$alpha_0.2 <- 0.2 * (1 - 0.2) ^ alpha_df$power
alpha_df$alpha_0.4 <- 0.4 * (1 - 0.4) ^ alpha_df$power
alpha_df$alpha_0.6 <- 0.6 * (1 - 0.6) ^ alpha_df$power
alpha_df$alpha_0.8 <- 0.8 * (1 - 0.8) ^ alpha_df$power
alpha_df$alpha_1 <- 1 * (1 - 1) ^ alpha_df$power
plot_ly(data = alpha_df) %>%
add_lines(x = ~ index, y = ~ alpha_0.01, name = "alpha = 0.01") %>%
add_lines(x = ~ index, y = ~ alpha_0.2, name = "alpha = 0.2") %>%
add_lines(x = ~ index, y = ~ alpha_0.4, name = "alpha = 0.4") %>%
add_lines(x = ~ index, y = ~ alpha_0.6, name = "alpha = 0.6") %>%
add_lines(x = ~ index, y = ~ alpha_0.8, name = "alpha = 0.8") %>%
add_lines(x = ~ index, y = ~ alpha_1, name = "alpha = 1") %>%
layout(title = "Decay Rate of the SES Weights",
xaxis = list(title = "Index"),
yaxis = list(title = "Weight"))library(forecast)Warning: package 'forecast' was built under R version 4.2.3
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
robusta_par <- ts_split(robusta, sample.out = 12)
train <- robusta_par$train
test <- robusta_par$testfc_ses <- ses(train, h = 12, initial = "optimal")
fc_ses$modelSimple exponential smoothing
Call:
ses(y = train, h = 12, initial = "optimal")
Smoothing parameters:
alpha = 0.9999
Initial states:
l = 0.6957
sigma: 0.161
AIC AICc BIC
1989.646 1989.681 2003.252
test_forecast(actual = robusta,
forecast.obj = fc_ses,
test = test) %>%
layout(title = "Robusta Coffee Prices Forecast vs. Actual",
xaxis = list(range = c(2010, max(time(robusta)))),
yaxis = list(range = c(1, 3)))plot_forecast(fc_ses) %>%
add_lines(x = time(test) + deltat(test),
y = as.numeric(test),
name = "Testing Partition") %>%
layout(title = "Robusta Coffee Prices Forecast vs. Actual",
xaxis = list(range = c(2010, max(time(robusta)) +
deltat(robusta))),
yaxis = list(range = c(0, 4)))robusta_par1 <- ts_split(robusta, sample.out = 24)
train1 <- robusta_par1$train
test1 <- ts_split(robusta_par1$test, sample.out = 12)$train
robusta_par2 <- ts_split(robusta, sample.out = 12)
train2 <- robusta_par2$train
valid <- robusta_par2$test
# -------- Code Chank 15 --------
alpha <- seq(from = 0, to = 1, by = 0.01)
# -------- Code Chank 16 --------
alpha[1] <- 0.001
# -------- Code Chank 17 --------
library(dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
ses_grid <- lapply(alpha, function(i){
md1 <- md_accuracy1 <- md2 <- md_accuracy2 <- results <- NULL
md1 <- ses(train1, h = 12, alpha = i, initial = "simple")
md_accuracy1 <- accuracy(md1, test1)
md2 <- ses(train2, h = 12, alpha = i, initial = "simple")
md_accuracy2 <- accuracy(md2, valid)
resutls <- data.frame(alpha = i,
train = md_accuracy1[9],
test = md_accuracy1[10],
valid = md_accuracy2[10])
}) %>% bind_rows()
# -------- Code Chank 18 --------
plot_ly(data = ses_grid, x = ~ alpha, y = ~ train,
line = list(color = 'rgb(205, 12, 24)'),
type = "scatter",
mode = "lines",
name = "Training") %>%
add_lines(x = ~ alpha, y = ~ test, line = list(color = "rgb(22, 96, 167)", dash = "dash"), name= "Testing") %>%
add_lines(x = ~ alpha, y = ~ valid, line = list(color = "green", dash = "dot"), name = "Validation") %>%
layout(title = "SES Model Grid Search Results",
yaxis = list(title = "MAPE (%)"))library(Quandl)Warning: package 'Quandl' was built under R version 4.2.3
Loading required package: xts
Warning: package 'xts' was built under R version 4.2.3
Loading required package: zoo
Attaching package: 'zoo'
The following objects are masked from 'package:base':
as.Date, as.Date.numeric
######################### Warning from 'xts' package ##########################
# #
# The dplyr lag() function breaks how base R's lag() function is supposed to #
# work, which breaks lag(my_xts). Calls to lag(my_xts) that you type or #
# source() into this session won't work correctly. #
# #
# Use stats::lag() to make sure you're not using dplyr::lag(), or you can add #
# conflictRules('dplyr', exclude = 'lag') to your .Rprofile to stop #
# dplyr from breaking base R's lag() function. #
# #
# Code in packages is not affected. It's protected by R's namespace mechanism #
# Set `options(xts.warn_dplyr_breaks_lag = FALSE)` to suppress this warning. #
# #
###############################################################################
Attaching package: 'xts'
The following objects are masked from 'package:dplyr':
first, last
gdp <- Quandl("FRED/GDP", start_date = "2010-01-01", type = "ts")
ts_info(gdp) The gdp series is a ts object with 1 variable and 48 observations
Frequency: 4
Start time: 2010 1
End time: 2021 4
ts_plot(gdp,
title = "Gross Domestic Product",
Ytitle = "Billions of Dollars",
Xtitle = "Source: U.S. Bureau of Economic Analysis / fred.stlouisfed.org")gdp_par <- ts_split(gdp, sample.out = 8)
train <- gdp_par$train
test <- gdp_par$testfc_holt <- holt(train, h = 8, initial = "optimal")
fc_holt$modelHolt's method
Call:
holt(y = train, h = 8, initial = "optimal")
Smoothing parameters:
alpha = 0.9985
beta = 0.0941
Initial states:
l = 14603.0487
b = 161.9411
sigma: 80.9869
AIC AICc BIC
504.8838 506.6485 513.3282
accuracy(fc_holt, test) ME RMSE MAE MPE MAPE MASE
Training set 10.99164 76.83093 61.7626 0.05241543 0.3460477 0.08790283
Test set -665.87355 1141.19097 854.8069 -3.29699460 4.0874667 1.21659297
ACF1 Theil's U
Training set 0.0192117 NA
Test set 0.2975704 1.08055
test_forecast(gdp, forecast.obj = fc_holt, test = test)fc_holt_exp <- holt(train,
h = 8,
beta = 0.75 ,
initial = "optimal",
exponential = TRUE)
fc_holt_exp$modelHolt's method with exponential trend
Call:
holt(y = train, h = 8, initial = "optimal", exponential = TRUE,
Call:
beta = 0.75)
Smoothing parameters:
alpha = 0.781
beta = 0.75
Initial states:
l = 14572.2291
b = 1.0142
sigma: 0.0053
AIC AICc BIC
515.9291 517.0720 522.6847
accuracy(fc_holt_exp, test) ME RMSE MAE MPE MAPE MASE
Training set -2.792636 90.20753 74.14323 -0.01756593 0.4165413 0.1055234
Test set -703.014806 1151.21262 858.97402 -3.46212317 4.1130726 1.2225238
ACF1 Theil's U
Training set -0.1541725 NA
Test set 0.2834645 1.090637
test_forecast(gdp, forecast.obj = fc_holt, test = test)data(USgas)
decompose(USgas) %>% plot()
USgas_par <- ts_split(USgas, 12)
train <- USgas_par$train
test <- USgas_par$test
md_hw <- HoltWinters(train)
md_hwHolt-Winters exponential smoothing with trend and additive seasonal component.
Call:
HoltWinters(x = train)
Smoothing parameters:
alpha: 0.371213
beta : 0
gamma: 0.4422456
Coefficients:
[,1]
a 2491.9930104
b -0.1287005
s1 32.0972651
s2 597.1088003
s3 834.9628439
s4 353.8593860
s5 318.1927058
s6 -173.0721496
s7 -346.6229990
s8 -329.7169608
s9 -112.1664217
s10 -140.3186476
s11 -324.5343787
s12 -243.9334551
# -------- Code Chank 31 --------
fc_hw <- forecast(md_hw, h = 12)
accuracy(fc_hw, test) ME RMSE MAE MPE MAPE MASE
Training set 7.828361 115.2062 87.67420 0.2991952 4.248131 0.7614222
Test set 51.013877 115.1555 98.06531 1.7994297 3.766099 0.8516656
ACF1 Theil's U
Training set 0.21911103 NA
Test set -0.01991923 0.3652142
test_forecast(actual = USgas,
forecast.obj = fc_hw,
test = test)shallow_grid <- ts_grid(train,
model = "HoltWinters",
periods = 6,
window_space = 6,
window_test = 12,
hyper_params = list(alpha = seq(0.1,0.1),
beta = seq(0.1,0.1),
gamma = seq(0.1,0.1)),
parallel = TRUE,
n.cores = 8)Warning: Strategy 'multiprocess' is deprecated in future (>= 1.20.0)
[2020-10-30]. Instead, explicitly specify either 'multisession' (recommended)
or 'multicore'. In the current R session, 'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
fc_hw <- forecast(md_hw, h = 12)
accuracy(fc_hw, test) ME RMSE MAE MPE MAPE MASE
Training set 7.828361 115.2062 87.67420 0.2991952 4.248131 0.7614222
Test set 51.013877 115.1555 98.06531 1.7994297 3.766099 0.8516656
ACF1 Theil's U
Training set 0.21911103 NA
Test set -0.01991923 0.3652142
test_forecast(actual = USgas,
forecast.obj = fc_hw,
test = test)shallow_grid <- ts_grid(train,
model = "HoltWinters",
periods = 6,
window_space = 6,
window_test = 12,
hyper_params = list(alpha = seq(0.1,0.1),
beta = seq(0.1,0.1),
gamma = seq(0.1,0.1)),
parallel = TRUE,
n.cores = 8)Warning: Strategy 'multiprocess' is deprecated in future (>= 1.20.0)
[2020-10-30]. Instead, explicitly specify either 'multisession' (recommended)
or 'multicore'. In the current R session, 'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
shallow_grid$grid_df[1:10,] alpha beta gamma 1 2 3 4 5 6
1 0.1 0.1 0.1 3.318387 3.926614 5.475698 4.845851 7.792269 9.532803
NA NA NA NA NA NA NA NA NA NA
NA.1 NA NA NA NA NA NA NA NA NA
NA.2 NA NA NA NA NA NA NA NA NA
NA.3 NA NA NA NA NA NA NA NA NA
NA.4 NA NA NA NA NA NA NA NA NA
NA.5 NA NA NA NA NA NA NA NA NA
NA.6 NA NA NA NA NA NA NA NA NA
NA.7 NA NA NA NA NA NA NA NA NA
NA.8 NA NA NA NA NA NA NA NA NA
mean
1 5.815271
NA NA
NA.1 NA
NA.2 NA
NA.3 NA
NA.4 NA
NA.5 NA
NA.6 NA
NA.7 NA
NA.8 NA
plot_grid(shallow_grid)deep_grid <- ts_grid(train,
model = "HoltWinters",
periods = 6,
window_space = 6,
window_test = 12,
hyper_params = list(alpha = seq(0.1,0.5,0.01),
beta = seq(0.0,0.1,0.01),
gamma = seq(0.2,0.4,0.01)),
parallel = TRUE,
n.cores = 8)Warning in ts_grid(train, model = "HoltWinters", periods = 6, window_space = 6,
: The value of the 'beta' parameter cannot be equal to 0 replacing 0 with 1e-5
Warning: Strategy 'multiprocess' is deprecated in future (>= 1.20.0)
[2020-10-30]. Instead, explicitly specify either 'multisession' (recommended)
or 'multicore'. In the current R session, 'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Warning: Detected creation of a 'multiprocess' future. Strategy 'multiprocess'
is deprecated in future (>= 1.20.0) [2020-10-30]. Instead, explicitly specify
either 'multisession' (recommended) or 'multicore'. In the current R session,
'multiprocess' equals 'multisession'.
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
Registered S3 method overwritten by 'quantmod':
method from
as.zoo.data.frame zoo
plot_grid(deep_grid)Warning in base::is.null(grid.obj$parameters$hyper_params[[i]]) ||
grid.obj$parameters$hyper_params[[i]] == : 'length(x) = 41 > 1' in coercion to
'logical(1)'
Warning in base::is.null(grid.obj$parameters$hyper_params[[i]]) ||
grid.obj$parameters$hyper_params[[i]] == : 'length(x) = 11 > 1' in coercion to
'logical(1)'
Warning in base::is.null(grid.obj$parameters$hyper_params[[i]]) ||
grid.obj$parameters$hyper_params[[i]] == : 'length(x) = 21 > 1' in coercion to
'logical(1)'
plot_grid(deep_grid, type = "3D", top = 250)Warning in base::is.null(grid.obj$parameters$hyper_params[[i]]) ||
grid.obj$parameters$hyper_params[[i]] == : 'length(x) = 41 > 1' in coercion to
'logical(1)'
Warning in base::is.null(grid.obj$parameters$hyper_params[[i]]) ||
grid.obj$parameters$hyper_params[[i]] == : 'length(x) = 11 > 1' in coercion to
'logical(1)'
Warning in base::is.null(grid.obj$parameters$hyper_params[[i]]) ||
grid.obj$parameters$hyper_params[[i]] == : 'length(x) = 21 > 1' in coercion to
'logical(1)'
md_hw_grid <- HoltWinters(train,
alpha = deep_grid$alpha,
beta = deep_grid$beta,
gamma = deep_grid$gamma)
fc_hw_grid <- forecast(md_hw_grid, h = 12)
accuracy(fc_hw_grid, test) ME RMSE MAE MPE MAPE MASE ACF1
Training set 4.106435 117.0347 90.37810 0.2004600 4.387451 0.7849046 0.1526260
Test set 3.124700 113.5063 97.20942 -0.2685092 3.899686 0.8442324 0.1506711
Theil's U
Training set NA
Test set 0.3687748
test_forecast(actual = USgas,
forecast.obj = fc_hw_grid,
test = test)