## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  message=FALSE,
  warning = FALSE,
  comment = "#>"
)

## ----echo = FALSE-------------------------------------------------------------
if (!requireNamespace("rmarkdown") || !rmarkdown::pandoc_available("1.12.3")) {
  warning("This vignette requires pandoc version 1.12.3; code will not run in older versions.")
  knitr::opts_chunk$set(eval = FALSE)
}

## ----fig.dim = c(7, 4)--------------------------------------------------------
#library(mrf)
data("entsoe", package="mrf")
UnivariateData = entsoe$value
plot(UnivariateData, type = "l", xlab="Days", ylab="Electricity Demand MW/h", col = 4)

## ----fig.dim = c(7, 4)--------------------------------------------------------
dec = mrf::wavelet_decomposition(UnivariateData = UnivariateData, Aggregation = c(2,4))
plot(dec$WaveletCoefficients[1,2:length(dec$SmoothCoefficients[1,])], type = "l", main = "Wavelet level 1", xlab="Days", ylab="Electricity Demand MW/h", col = 4)

## ----fig.dim = c(7, 4)--------------------------------------------------------
plot(dec$WaveletCoefficients[2,4:length(dec$WaveletCoefficients[1,])], type = "l", main = "Wavelet level 2", xlab="Days", ylab="Electricity Demand MW/h",  col = 4)

## ----fig.dim = c(7, 4)--------------------------------------------------------
plot(dec$SmoothCoefficients[2,4:length(dec$SmoothCoefficients[1,])], type = "l", main = "Last smooth part level", xlab="Days", ylab="Electricity Demand MW/h",  col = 4)

## ----eval = FALSE-------------------------------------------------------------
# len_data = length(UnivariateData)
# Train1    = UnivariateData[1:(len_data)]
# Test1     = UnivariateData[len_data]
# # One-step forecast (Multiresolution Forecast)
# model1   = mrf_train(Train1)
# one_step = mrf_forecast(model1, Horizon=1)
# Erro1    = one_step$Forecast - Test1

## ----eval = FALSE-------------------------------------------------------------
# Train2    = UnivariateData[1:(len_data-2)]
# Test2     = UnivariateData[(len_data-1):len_data]
# # Multi-step forecast (Multiresolution Forecast)
# # Horizon = 2 => Forecast with Horizon 1 and 2 as vector
# model2    = mrf_train(Train2, Horizon=2)
# multi_step = mrf_forecast(model2, Horizon=2)
# Error2     = multi_step$Forecast - Test2

## ----eval = FALSE-------------------------------------------------------------
# CoefficientCombination = c(10,10,10)
# Aggregation = c(2,4)
# rw_forecasts = mrf::mrf_rolling_forecasting_origin(UnivariateData,
#                                                    CoefficientCombination,
#                                                    Aggregation,
#                                                    Horizon = 2,
#                                                    Window = 3,
#                                                    Method = "r",
#                                                    NumClusters = 1)
# Error = rw_forecasts$Error
# Forecast = rw_forecasts$Forecast
# MAE = sum(abs(Error))/(dim(Error)[1] * dim(Error)[2]) # Mean Absolute Error

