1 Introduction

1.1 Session information

We will use the following packages for the processing.

library("devtools")
library("ggplot2")
library("reshape2")

Some information about the current session follows.

session_info()
## Session info -------------------------------------------------------------
##  setting  value                       
##  version  R version 3.4.1 (2017-06-30)
##  system   x86_64, mingw32             
##  ui       RTerm                       
##  language (EN)                        
##  collate  English_United Kingdom.1252 
##  tz       Europe/Istanbul             
##  date     2017-09-06
## Packages -----------------------------------------------------------------
##  package    * version date       source        
##  backports    1.1.0   2017-05-22 CRAN (R 3.4.0)
##  base       * 3.4.1   2017-06-30 local         
##  colorspace   1.3-2   2016-12-14 CRAN (R 3.4.0)
##  compiler     3.4.1   2017-06-30 local         
##  datasets   * 3.4.1   2017-06-30 local         
##  devtools   * 1.13.3  2017-08-02 CRAN (R 3.4.1)
##  digest       0.6.12  2017-01-27 CRAN (R 3.4.0)
##  evaluate     0.10.1  2017-06-24 CRAN (R 3.4.0)
##  ggplot2    * 2.2.1   2016-12-30 CRAN (R 3.4.0)
##  graphics   * 3.4.1   2017-06-30 local         
##  grDevices  * 3.4.1   2017-06-30 local         
##  grid         3.4.1   2017-06-30 local         
##  gtable       0.2.0   2016-02-26 CRAN (R 3.4.0)
##  htmltools    0.3.6   2017-04-28 CRAN (R 3.4.0)
##  knitr        1.17    2017-08-10 CRAN (R 3.4.1)
##  lazyeval     0.2.0   2016-06-12 CRAN (R 3.4.0)
##  magrittr     1.5     2014-11-22 CRAN (R 3.4.0)
##  memoise      1.1.0   2017-04-21 CRAN (R 3.4.0)
##  methods    * 3.4.1   2017-06-30 local         
##  munsell      0.4.3   2016-02-13 CRAN (R 3.4.0)
##  plyr         1.8.4   2016-06-08 CRAN (R 3.4.0)
##  Rcpp         0.12.12 2017-07-15 CRAN (R 3.4.1)
##  reshape2   * 1.4.2   2016-10-22 CRAN (R 3.4.0)
##  rlang        0.1.2   2017-08-09 CRAN (R 3.4.1)
##  rmarkdown    1.6     2017-06-15 CRAN (R 3.4.0)
##  rprojroot    1.2     2017-01-16 CRAN (R 3.4.0)
##  scales       0.5.0   2017-08-24 CRAN (R 3.4.1)
##  stats      * 3.4.1   2017-06-30 local         
##  stringi      1.1.5   2017-04-07 CRAN (R 3.4.0)
##  stringr      1.2.0   2017-02-18 CRAN (R 3.4.0)
##  tibble       1.3.4   2017-08-22 CRAN (R 3.4.1)
##  tools        3.4.1   2017-06-30 local         
##  utils      * 3.4.1   2017-06-30 local         
##  withr        2.0.0   2017-07-28 CRAN (R 3.4.1)
##  yaml         2.1.14  2016-11-12 CRAN (R 3.4.0)

We set a seed, to reproduce the analysis.

set.seed(12345)

1.2 Data and functions loading

source("figure_functions.R")
source("test_functions.R")
load("ar1_06.Rdata")
load("ar1__06.Rdata")
load("ar2_06_02.Rdata")
load("ar2__06_02.RData")
load("ma1_06.Rdata")
load("ma1__06.Rdata")
load("ma2_06_02.RData")
load("ma2__06__02.RData")
load("arma11_06_06.Rdata")
load("arma11__06__06.RData")
load("arma22_06_02_06_02.RData")
load("arfima_0_040_0.Rdata")
load("arfima10_06_040_0.RData")
load("arfima01_0_040_06.RData")
load("arfima11_06_040_06.RData")
load("arfima22_06_02_040_06_02.RData")
predlist <- list(pred_df_ar1_06,
    pred_df_ar1__06,
    pred_df_ar2_06_02,
    pred_df_ar2__06_02,
    pred_df_ma1_06,
    pred_df_ma1__06,
    pred_df_ma2_06_02,
    pred_df_ma2__06__02,
    pred_df_arma11_06_06,
    pred_df_arma11__06__06,
    pred_df_arma22_06_02_06_02,
    pred_df_arfima00_0_040_0,
    pred_df_arfima10_06_040_0,
    pred_df_arfima01_0_040_06,
    pred_df_arfima11_06_040_06,
    pred_df_arfima22_06_02_040_06_02)

names(predlist) <- c("pred_df_ar1_06",
    "pred_df_ar1__06",
    "pred_df_ar2_06_02",
    "pred_df_ar2__06_02",
    "pred_df_ma1_06",
    "pred_df_ma1__06",
    "pred_df_ma2_06_02",
    "pred_df_ma2__06__02",
    "pred_df_arma11_06_06",
    "pred_df_arma11__06__06",
    "pred_df_arma22_06_02_06_02",
    "pred_df_arfima00_0_040_0",
    "pred_df_arfima10_06_040_0",
    "pred_df_arfima01_0_040_06",
    "pred_df_arfima11_06_040_06",
    "pred_df_arfima22_06_02_040_06_02")
modellist <- list(model_df_ar1_06,
    model_df_ar1__06,
    model_df_ar2_06_02,
    model_df_ar2__06_02,
    model_df_ma1_06,
    model_df_ma1__06,
    model_df_ma2_06_02,
    model_df_ma2__06__02,
    model_df_arma11_06_06,
    model_df_arma11__06__06,
    model_df_arma22_06_02_06_02,
    model_df_arfima00_0_040_0,
    model_df_arfima10_06_040_0,
    model_df_arfima01_0_040_06,
    model_df_arfima11_06_040_06,
    model_df_arfima22_06_02_040_06_02)

names(modellist) <- c("model_df_ar1_06",
    "model_df_ar1__06",
    "model_df_ar2_06_02",
    "model_df_ar2__06_02",
    "model_df_ma1_06",
    "model_df_ma1__06",
    "model_df_ma2_06_02",
    "model_df_ma2__06__02",
    "model_df_arma11_06_06",
    "model_df_arma11__06__06",
    "model_df_arma22_06_02_06_02",
    "model_df_arfima00_0_040_0",
    "model_df_arfima10_06_040_0",
    "model_df_arfima01_0_040_06",
    "model_df_arfima11_06_040_06",
    "model_df_arfima22_06_02_040_06_02")
tslist <- list(sim_ts_ar1_06,
    sim_ts_ar1__06,
    sim_ts_ar2_06_02,
    sim_ts_ar2__06_02,
    sim_ts_ma1_06,
    sim_ts_ma1__06,
    sim_ts_ma2_06_02,
    sim_ts_ma2__06__02,
    sim_ts_arma11_06_06,
    sim_ts_arma11__06__06,
    sim_ts_arma22_06_02_06_02,
    sim_ts_arfima00_0_040_0,
    sim_ts_arfima10_06_040_0,
    sim_ts_arfima01_0_040_06,
    sim_ts_arfima11_06_040_06,
    sim_ts_arfima22_06_02_040_06_02)

names(tslist) <- c("sim_ts_ar1_06",
    "sim_ts_ar1__06",
    "sim_ts_ar2_06_02",
    "sim_ts_ar2__06_02",
    "sim_ts_ma1_06",
    "sim_ts_ma1__06",
    "sim_ts_ma2_06_02",
    "sim_ts_ma2__06__02",
    "sim_ts_arma11_06_06",
    "sim_ts_arma11__06__06",
    "sim_ts_arma22_06_02_06_02",
    "sim_ts_arfima00_0_040_0",
    "sim_ts_arfima10_06_040_0",
    "sim_ts_arfima01_0_040_06",
    "sim_ts_arfima11_06_040_06",
    "sim_ts_arfima22_06_02_040_06_02")
errors_df_ar1_06 <- errors_compute(predlist$pred_df_ar1_06)
errors_df_ar1__06 <- errors_compute(predlist$pred_df_ar1__06)
errors_df_ar2_06_02 <- errors_compute(predlist$pred_df_ar2_06_02)
errors_df_ar2__06_02 <- errors_compute(predlist$pred_df_ar2__06_02)
errors_df_ma1_06 <- errors_compute(predlist$pred_df_ma1_06)
errors_df_ma1__06 <- errors_compute(predlist$pred_df_ma1__06)
errors_df_ma2_06_02 <- errors_compute(predlist$pred_df_ma2_06_02)
errors_df_ma2__06__02 <- errors_compute(predlist$pred_df_ma2__06__02)
errors_df_arma11_06_06 <- errors_compute(predlist$pred_df_arma11_06_06)
errors_df_arma11__06__06 <- errors_compute(predlist$pred_df_arma11__06__06)
errors_df_arma22_06_02_06_02 <- errors_compute(predlist$pred_df_arma22_06_02_06_02)
errors_df_arfima00_0_040_0 <- errors_compute(predlist$pred_df_arfima00_0_040_0)
errors_df_arfima10_06_040_0 <- errors_compute(predlist$pred_df_arfima10_06_040_0)
errors_df_arfima01_0_040_06 <- errors_compute(predlist$pred_df_arfima01_0_040_06)
errors_df_arfima11_06_040_06 <- errors_compute(predlist$pred_df_arfima11_06_040_06)
errors_df_arfima22_06_02_040_06_02 <- errors_compute(predlist$pred_df_arfima22_06_02_040_06_02)

errlist <- list(errors_df_ar1_06,
    errors_df_ar1__06,
    errors_df_ar2_06_02,
    errors_df_ar2__06_02,
    errors_df_ma1_06,
    errors_df_ma1__06,
    errors_df_ma2_06_02,
    errors_df_ma2__06__02,
    errors_df_arma11_06_06,
    errors_df_arma11__06__06,
    errors_df_arma22_06_02_06_02,
    errors_df_arfima00_0_040_0,
    errors_df_arfima10_06_040_0,
    errors_df_arfima01_0_040_06,
    errors_df_arfima11_06_040_06,
    errors_df_arfima22_06_02_040_06_02)

names(errlist) <- c("errors_df_ar1_06",
    "errors_df_ar1__06",
    "errors_df_ar2_06_02",
    "errors_df_ar2__06_02",
    "errors_df_ma1_06",
    "errors_df_ma1__06",
    "errors_df_ma2_06_02",
    "errors_df_ma2__06__02",
    "errors_df_arma11_06_06",
    "errors_df_arma11__06__06",
    "errors_df_arma22_06_02_06_02",
    "errors_df_arfima00_0_040_0",
    "errors_df_arfima10_06_040_0",
    "errors_df_arfima01_0_040_06",
    "errors_df_arfima11_06_040_06",
    "errors_df_arfima22_06_02_040_06_02")

2 Comparison

2.1 Means

2.1.1 Absolute errors

abserr_val <- rbind(errlist$errors_df_ar1_06$Mabserr,
    errlist$errors_df_ar1__06$Mabserr,
    errlist$errors_df_ar2_06_02$Mabserr,
    errlist$errors_df_ar2__06_02$Mabserr,
    errlist$errors_df_ma1_06$Mabserr,
    errlist$errors_df_ma1__06$Mabserr,
    errlist$errors_df_ma2_06_02$Mabserr,
    errlist$errors_df_ma2__06__02$Mabserr,
    errlist$errors_df_arma11_06_06$Mabserr,
    errlist$errors_df_arma11__06__06$Mabserr,
    errlist$errors_df_arma22_06_02_06_02$Mabserr,
    errlist$errors_df_arfima00_0_040_0$Mabserr,
    errlist$errors_df_arfima10_06_040_0$Mabserr,
    errlist$errors_df_arfima01_0_040_06$Mabserr,
    errlist$errors_df_arfima11_06_040_06$Mabserr,
    errlist$errors_df_arfima22_06_02_040_06_02$Mabserr)
    

abserr_ranked <- t(apply(abserr_val, 1, rank))
abserr_ranked <- melt(abserr_ranked)
names(abserr_ranked) <- c("Experiment", "Method", "Ranking")
abserr_val <- melt(abserr_val)
names(abserr_val) <- c("Experiment", "Method", "value")

2.1.2 Squared errors

sqrerr_val <- rbind(errlist$errors_df_ar1_06$Msqrerr,
    errlist$errors_df_ar1__06$Msqrerr,
    errlist$errors_df_ar2_06_02$Msqrerr,
    errlist$errors_df_ar2__06_02$Msqrerr,
    errlist$errors_df_ma1_06$Msqrerr,
    errlist$errors_df_ma1__06$Msqrerr,
    errlist$errors_df_ma2_06_02$Msqrerr,
    errlist$errors_df_ma2__06__02$Msqrerr,
    errlist$errors_df_arma11_06_06$Msqrerr,
    errlist$errors_df_arma11__06__06$Msqrerr,
    errlist$errors_df_arma22_06_02_06_02$Msqrerr,
    errlist$errors_df_arfima00_0_040_0$Msqrerr,
    errlist$errors_df_arfima10_06_040_0$Msqrerr,
    errlist$errors_df_arfima01_0_040_06$Msqrerr,
    errlist$errors_df_arfima11_06_040_06$Msqrerr,
    errlist$errors_df_arfima22_06_02_040_06_02$Msqrerr)

sqrerr_ranked <- t(apply(sqrerr_val, 1, rank))
sqrerr_ranked <- melt(sqrerr_ranked)
names(sqrerr_ranked) <- c("Experiment", "Method", "Ranking")
sqrerr_val <- melt(sqrerr_val)
names(sqrerr_val) <- c("Experiment", "Method", "value")

2.2 Medians

2.2.1 Absolute errors

abserr_val <- rbind(as.matrix(errlist$errors_df_ar1_06$medabserr),
    as.matrix(errlist$errors_df_ar1__06$medabserr),
    as.matrix(errlist$errors_df_ar2_06_02$medabserr),
    as.matrix(errlist$errors_df_ar2__06_02$medabserr),
    as.matrix(errlist$errors_df_ma1_06$medabserr),
    as.matrix(errlist$errors_df_ma1__06$medabserr),
    as.matrix(errlist$errors_df_ma2_06_02$medabserr),
    as.matrix(errlist$errors_df_ma2__06__02$medabserr),
    as.matrix(errlist$errors_df_arma11_06_06$medabserr),
    as.matrix(errlist$errors_df_arma11__06__06$medabserr),
    as.matrix(errlist$errors_df_arma22_06_02_06_02$medabserr),
    as.matrix(errlist$errors_df_arfima00_0_040_0$medabserr),
    as.matrix(errlist$errors_df_arfima10_06_040_0$medabserr),
    as.matrix(errlist$errors_df_arfima01_0_040_06$medabserr),
    as.matrix(errlist$errors_df_arfima11_06_040_06$medabserr),
    as.matrix(errlist$errors_df_arfima22_06_02_040_06_02$medabserr))

abserr_ranked <- t(apply(abserr_val, 1, rank))
abserr_ranked <- melt(abserr_ranked)
names(abserr_ranked) <- c("Experiment", "Method", "Ranking")
abserr_val <- melt(abserr_val)
names(abserr_val) <- c("Experiment", "Method", "value")

2.2.2 Squared errors

sqrerr_val <- rbind(as.matrix(errlist$errors_df_ar1_06$medsqrerr),
    as.matrix(errlist$errors_df_ar1__06$medsqrerr),
    as.matrix(errlist$errors_df_ar2_06_02$medsqrerr),
    as.matrix(errlist$errors_df_ma1_06$medsqrerr),
    as.matrix(errlist$errors_df_ma1__06$medsqrerr),
    as.matrix(errlist$errors_df_arma11_06_06$medsqrerr),
    as.matrix(errlist$errors_df_arfima00_0_040_0$medsqrerr),
    as.matrix(errlist$errors_df_arfima10_06_040_0$medsqrerr),
    as.matrix(errlist$errors_df_arfima01_0_040_06$medsqrerr),
    as.matrix(errlist$errors_df_arfima11_06_040_06$medsqrerr),
    as.matrix(errlist$errors_df_arfima22_06_02_040_06_02$medsqrerr),
    as.matrix(errlist$errors_df_ma2_06_02$medsqrerr),
    as.matrix(errlist$errors_df_ma2__06__02$medsqrerr),
    as.matrix(errlist$errors_df_ar2__06_02$medsqrerr),
    as.matrix(errlist$errors_df_arma11__06__06$medsqrerr),
    as.matrix(errlist$errors_df_arma22_06_02_06_02$medsqrerr))

sqrerr_ranked <- t(apply(sqrerr_val, 1, rank))
sqrerr_ranked <- melt(sqrerr_ranked)
names(sqrerr_ranked) <- c("Experiment", "Method", "Ranking")
sqrerr_val <- melt(sqrerr_val)
names(sqrerr_val) <- c("Experiment", "Method", "value")

2.3 Regression coefficient

lincoef_val <- rbind(as.matrix(errlist$errors_df_ar1_06$lincoef),
    as.matrix(errlist$errors_df_ar1__06$lincoef),
    as.matrix(errlist$errors_df_ar2_06_02$lincoef),
    as.matrix(errlist$errors_df_ar2__06_02$lincoef),
    as.matrix(errlist$errors_df_ma1_06$lincoef),
    as.matrix(errlist$errors_df_ma1__06$lincoef),
    as.matrix(errlist$errors_df_ma2_06_02$lincoef),
    as.matrix(errlist$errors_df_ma2__06__02$lincoef),
    as.matrix(errlist$errors_df_arma11_06_06$lincoef),
    as.matrix(errlist$errors_df_arma11__06__06$lincoef),
    as.matrix(errlist$errors_df_arma22_06_02_06_02$lincoef),
    as.matrix(errlist$errors_df_arfima00_0_040_0$lincoef),
    as.matrix(errlist$errors_df_arfima10_06_040_0$lincoef),
    as.matrix(errlist$errors_df_arfima01_0_040_06$lincoef),
    as.matrix(errlist$errors_df_arfima11_06_040_06$lincoef),
    as.matrix(errlist$errors_df_arfima22_06_02_040_06_02$lincoef))

lincoef_ranked <- t(apply(-lincoef_val, 1, rank))
lincoef_ranked <- melt(lincoef_ranked)
names(lincoef_ranked) <- c("Experiment", "Method", "Ranking")
lincoef_val <- melt(lincoef_val)
names(lincoef_val) <- c("Experiment", "Method", "value")

3 Analysis and figures

3.1 ARMA(1,0), AR = 0.6

3.1.1 Forecasts

3.1.2 Summary of results

3.1.2.1 Boxplots

3.1.2.2 Barplots

3.2 ARMA(1,0), AR = -0.6

3.2.1 Forecasts

3.2.2 Summary of results

3.2.2.1 Boxplots

3.2.2.2 Barplots

3.3 ARMA(2,0), AR = c(0.6, 0.2)

3.3.1 Forecasts

3.3.2 Summary of results

3.3.2.1 Boxplots

3.3.2.2 Barplots

3.4 ARMA(2,0), AR = c(-0.6, 0.2)

3.4.1 Forecasts

3.4.2 Summary of results

3.4.2.1 Boxplots

3.4.2.2 Barplots

3.5 ARMA(0,1), MA = 0.6

3.5.1 Forecasts

3.5.2 Summary of results

3.5.2.1 Boxplots

3.5.2.2 Barplots

3.6 ARMA(0,1), MA = -0.6

3.6.1 Forecasts

3.6.2 Summary of results

3.6.2.1 Boxplots

3.6.2.2 Barplots

3.7 ARMA(0,2), MA = c(0.6, 0.2)

3.7.1 Forecasts

3.7.2 Summary of results

3.7.2.1 Boxplots

3.7.2.2 Barplots

3.8 ARMA(0,2), MA = c(-0.6, -0.2)

3.8.1 Forecasts

3.8.2 Summary of results

3.8.2.1 Boxplots

3.8.2.2 Barplots

3.9 ARMA(1,1), AR = 0.6, MA = 0.6

3.9.1 Forecasts

3.9.2 Summary of results

3.9.2.1 Boxplots

3.9.2.2 Barplots

3.10 ARMA(1,1), AR = -0.6, MA = -0.6

3.10.1 Forecasts

3.10.2 Summary of results

3.10.2.1 Boxplots

3.10.2.2 Barplots

3.11 ARMA(2,2), AR = c(0.6, 0.2), MA = c(0.6, 0.2)

3.11.1 Forecasts

3.11.2 Summary of results

3.11.2.1 Boxplots

3.11.2.2 Barplots

3.12 ARFIMA(0,0.4,0)

3.12.1 Forecasts

3.12.2 Summary of results

3.12.2.1 Boxplots

3.12.2.2 Barplots

3.13 ARFIMA(1,0.4,0), AR = 0.6

3.13.1 Forecasts

3.13.2 Summary of results

3.13.2.1 Boxplots

3.13.2.2 Barplots

3.14 ARFIMA(0,0.4,1), MA = 0.6

3.14.1 Forecasts

3.14.2 Summary of results

3.14.2.1 Boxplots

3.14.2.2 Barplots

3.15 ARFIMA(1,0.4,1), AR = 0.6, MA = 0.6

3.15.1 Forecasts

3.15.2 Summary of results

3.15.2.1 Boxplots

3.15.2.2 Barplots

3.16 ARFIMA(2,0.4,2), AR = c(0.6,0.2), MA = c(0.6,0.2)

3.16.1 Forecasts

3.16.2 Summary of results

3.16.2.1 Boxplots

3.16.2.2 Barplots