Extending the Theta forecasting method to GLMs, GAMs, GLMBOOST and attention: benchmarking on Tourism, M1, M3 and M4 competition data sets (28000 series)
[This article was first published on T. Moudiki's Webpage - R, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Last week, I presented a new version of ahead
, which includes an extension of the Theta forecasting method to Generalized Linear Models (GLMs), GAMs, GLMBoost, and an attention mechanism (work in progress).
This post demonstrates the performance of the new method on Tourism (1311 series), M1 (1001 series), M3 (3003 series), and M4 Yearly (23000 series) competition data sets. Workhorse models are used to benchmark the new method, including glm.nb
, glm
, rlm
, lqs
, gam
, and glmboost
.
The results are compared to the original Theta method, and are highly competitive, especially on the Tourism and M4 Yearly data sets (MASE, RMSE).
%load_ext rpy2.ipython
1 – R
%%R options(repos = c(techtonique = "https://r-packages.techtonique.net", CRAN = "https://cloud.r-project.org")) install.packages("ahead") install.packages("remotes") install.packages("doParallel") install.packages("quantreg") install.packages("memoise") install.packages("Mcomp") install.packages("Tcomp") install.packages("gam") install.packages("mboost") install.packages("https://github.com/carlanetto/M4comp2018/releases/download/0.2.0/M4comp2018_0.2.0.tar.gz", repos=NULL) %%R install.packages("knitr") install.packages("kableExtra") library(knitr) library(kableExtra) %%R install.packages("gt") library(gt) %%R #install.packages("forecast") library(forecast) require(Mcomp) coverage_score <- function(obj, actual){ if (is.null(obj$lower)) { return(mean((obj$intervals[, 1] <= actual)*(actual <= obj$intervals[, 2]), na.rm=TRUE)*100) } return(mean((obj$lower <= actual)*(actual <= obj$upper), na.rm=TRUE)*100) } #coverage_score <- memoise::memoise(coverage_score) winkler_score <- function(obj, actual, level = 95) { alpha <- 1 - level / 100 lt <- try(obj$lower, silent = TRUE) ut <- try(obj$upper, silent = TRUE) actual <- as.numeric(actual) if (is.null(lt) || is.null(ut)) { lt <- as.numeric(obj$intervals[, 1]) ut <- as.numeric(obj$intervals[, 2]) } n_points <- length(actual) stopifnot((n_points == length(lt)) && (n_points == length(ut))) diff_lt <- lt - actual diff_bounds <- ut - lt diff_ut <- actual - ut score <- diff_bounds score <- score + (2 / alpha) * (pmax(diff_lt, 0) + pmax(diff_ut, 0)) return(mean(score, na.rm=TRUE)) } #winkler_score <- memoise::memoise(winkler_score) accuracy <- function(obj, actual, level = 95) { actual <- as.numeric(actual) mean_prediction <- as.numeric(obj$mean) me <- mean(mean_prediction - actual) rmse <- sqrt(mean((mean_prediction - actual)**2, na.rm=TRUE)) mae <- mean(abs(mean_prediction - actual), na.rm=TRUE) mpe <- mean(mean_prediction/actual-1, na.rm=TRUE) mape <- mean(abs(mean_prediction/actual-1), na.rm=TRUE) m <- frequency(obj$x) # e.g., 12 for monthly data # Compute scaling factor (MAE of in-sample seasonal naive forecasts) if (m > 1) { scale <- mean(abs(diff(obj$x, lag = m)), na.rm=TRUE) } else { scale <- mean(abs(diff(obj$x, lag = 1)), na.rm=TRUE) } # MASE = mean(|test - forecast|) / scale mase <- mean(abs(actual - obj$mean), na.rm=TRUE) / max(scale, 1e-6) coverage <- as.numeric(coverage_score(obj, actual)) winkler <- winkler_score(obj, actual, level = level) res <- c(me, rmse, mae, mpe, mape, mase, coverage, winkler) names(res) <- c("me", "rmse", "mae", "mpe", "mape", "mase", "coverage", "winkler") return(res) } #accuracy <- memoise::memoise(accuracy) thetaf <- memoise::memoise(forecast::thetaf) glmthetaf <- memoise::memoise(ahead::glmthetaf) Registered S3 method overwritten by 'quantmod': method from as.zoo.data.frame zoo Loading required package: Mcomp
1 - 1 Tcomp
%%R # Load necessary libraries library(doSNOW) library(tcltk) # Tcomp series ----- (nseries <- length(Tcomp::tourism)) # Set up parallel backend cl <- makeSOCKcluster(parallel::detectCores()) # Use 2 cores (adjust as needed) registerDoSNOW(cl) # Define progress bar pb <- txtProgressBar(min = 0, max = nseries, style = 3) # Progress function progress <- function(n) setTxtProgressBar(pb, n) # Options for progress tracking opts <- list(progress = progress) # Parallel loop with progress bar results <- foreach(i = 1:nseries, .combine = rbind, .errorhandling = "remove", .export=c("accuracy", "coverage_score", "winkler_score"), .options.snow = opts) %dopar% { x <- Tcomp::tourism[[i]]$x xx <- Tcomp::tourism[[i]]$xx h <- length(xx) # thetaf obj <- try(suppressWarnings(thetaf(x, h = h, level=95)), silent=TRUE) res1 <- accuracy(obj, xx) # glmthetaf with MASS::glm.nb obj <- try(suppressWarnings(glmthetaf(x, h = h, fit_func = MASS::glm.nb, attention = TRUE)), silent=TRUE) if (inherits(obj, "try-error")) { obj <- forecast:::snaive(time_series, h = forecast_horizon) } res2 <- accuracy(obj, xx) # glmthetaf with stats::glm obj <- try(suppressWarnings(glmthetaf(x, h = h, fit_func = stats::glm, attention = TRUE)), silent=TRUE) if (inherits(obj, "try-error")) { obj <- forecast:::snaive(time_series, h = forecast_horizon) } res3 <- accuracy(obj, xx) # glmthetaf with MASS::rlm obj <- try(suppressWarnings(glmthetaf(x, h = h, fit_func = MASS::rlm, attention = TRUE)), silent=TRUE) if (inherits(obj, "try-error")) { obj <- forecast:::snaive(time_series, h = forecast_horizon) } res4 <- accuracy(obj, xx) # glmthetaf with MASS::lqs obj <- try(suppressWarnings(glmthetaf(x, h = h, fit_func = MASS::lqs, attention = TRUE)), silent=TRUE) if (inherits(obj, "try-error")) { obj <- forecast:::snaive(time_series, h = forecast_horizon) } res5 <- accuracy(obj, xx) # glmthetaf with gam::gam obj <- try(suppressWarnings(glmthetaf(x, h = h, fit_func = gam::gam, attention = TRUE)), silent=TRUE) if (inherits(obj, "try-error")) { obj <- forecast:::snaive(time_series, h = forecast_horizon) } res6 <- accuracy(obj, xx) # glmthetaf with quantreg::rq obj <- try(suppressWarnings(glmthetaf(x, h = h, fit_func = quantreg::rq, attention = TRUE)), silent=TRUE) if (inherits(obj, "try-error")) { obj <- forecast:::snaive(time_series, h = forecast_horizon) } res7 <- accuracy(obj, xx) # glmthetaf with quantreg::rq obj <- try(suppressWarnings(glmthetaf(x, h = h, fit_func = mboost::glmboost, attention = TRUE)), silent=TRUE) if (inherits(obj, "try-error")) { obj <- forecast:::snaive(time_series, h = forecast_horizon) } res8 <- accuracy(obj, xx) # Determine period period <- switch(Tcomp::tourism[[i]]$period, "YEARLY" = 1, "QUARTERLY" = 4, "MONTHLY" = 12) # Combine results res <- cbind(i, period, res1, res2, res3, res4, res5, res6, res7, res8) colnames(res) <- c("series", "period", "theta", "glmnbtheta", "glmtheta", "rlmtheta", "lqstheta", "gamtheta", "quantregtheta", "glmboosttheta") res } # Stop cluster stopCluster(cl) # Close progress bar close(pb) # Convert results to data frame results <- data.frame(results) base::saveRDS(results, "results_Tcomp.rds") %%R print(head(results)) print(tail(results)) print(dim(results)) from IPython.display import FileLink # Create a download link for the file FileLink('results_Tcomp.rds') %%R results_Tcomp <- readRDS("results_Tcomp.rds") cat("\n\n MASE - YEARLY ----- \n\n") print(summary(subset(results_Tcomp[grep("mase", rownames(results_Tcomp)), ], period==1))) cat("\n\n MASE - QUARTERLY ----- \n\n") print(summary(subset(results_Tcomp[grep("mase", rownames(results_Tcomp)), ], period==4))) cat("\n\n MASE - MONTHLY ----- \n\n") print(summary(subset(results_Tcomp[grep("mase", rownames(results_Tcomp)), ], period==12))) cat("\n\n RMSE - YEARLY ----- \n\n") print(summary(subset(results_Tcomp[grep("rmse", rownames(results_Tcomp)), ], period==1))) cat("\n\n RMSE - QUARTERLY ----- \n\n") print(summary(subset(results_Tcomp[grep("rmse", rownames(results_Tcomp)), ], period==4))) cat("\n\n RMSE - MONTHLY ----- \n\n") print(summary(subset(results_Tcomp[grep("rmse", rownames(results_Tcomp)), ], period==12))) cat("\n\n COVERAGE - YEARLY ----- \n\n") print(summary(subset(results_Tcomp[grep("coverage", rownames(results_Tcomp)), ], period==1))) cat("\n\n COVERAGE - QUARTERLY ----- \n\n") print(summary(subset(results_Tcomp[grep("coverage", rownames(results_Tcomp)), ], period==4))) cat("\n\n COVERAGE - MONTHLY ----- \n\n") print(summary(subset(results_Tcomp[grep("coverage", rownames(results_Tcomp)), ], period==12))) cat("\n\n WINKLER - YEARLY ----- \n\n") print(summary(subset(results_Tcomp[grep("winkler", rownames(results_Tcomp)), ], period==1))) cat("\n\n WINKLER - QUARTERLY ----- \n\n") print(summary(subset(results_Tcomp[grep("winkler", rownames(results_Tcomp)), ], period==4))) cat("\n\n WINKLER - MONTHLY ----- \n\n") print(summary(subset(results_Tcomp[grep("winkler", rownames(results_Tcomp)), ], period==12))) MASE - YEARLY ----- series period theta glmnbtheta Min. : 794 Min. :1 Min. : 0.1659 Min. : 0.05748 1st Qu.: 923 1st Qu.:1 1st Qu.: 1.1639 1st Qu.: 1.35532 Median :1053 Median :1 Median : 2.0521 Median : 2.36326 Mean :1053 Mean :1 Mean : 2.7308 Mean : 3.02522 3rd Qu.:1182 3rd Qu.:1 3rd Qu.: 3.4393 3rd Qu.: 4.01984 Max. :1311 Max. :1 Max. :12.6591 Max. :13.42235 glmtheta rlmtheta lqstheta gamtheta Min. : 0.2033 Min. : 0.2137 Min. : 0.1668 Min. : 0.2033 1st Qu.: 1.1759 1st Qu.: 1.1730 1st Qu.: 1.2353 1st Qu.: 1.1759 Median : 2.0773 Median : 2.0348 Median : 2.1894 Median : 2.0773 Mean : 2.7258 Mean : 2.7045 Mean : 2.8242 Mean : 2.7258 3rd Qu.: 3.4659 3rd Qu.: 3.4703 3rd Qu.: 3.8215 3rd Qu.: 3.4659 Max. :12.7243 Max. :12.2952 Max. :14.8614 Max. :12.7243 quantregtheta glmboosttheta Min. : 0.1855 Min. : 0.2033 1st Qu.: 1.2333 1st Qu.: 1.1759 Median : 2.1000 Median : 2.0774 Mean : 2.7308 Mean : 2.7258 3rd Qu.: 3.5459 3rd Qu.: 3.4658 Max. :12.6997 Max. :12.7241 MASE - QUARTERLY ----- series period theta glmnbtheta glmtheta Min. :367.0 Min. :4 Min. :0.1435 Min. :0.2547 Min. :0.3146 1st Qu.:473.5 1st Qu.:4 1st Qu.:0.9411 1st Qu.:0.9345 1st Qu.:0.9216 Median :580.0 Median :4 Median :1.3482 Median :1.3963 Median :1.3393 Mean :580.0 Mean :4 Mean :1.6613 Mean :1.6622 Mean :1.5744 3rd Qu.:686.5 3rd Qu.:4 3rd Qu.:2.0063 3rd Qu.:1.9796 3rd Qu.:1.9217 Max. :793.0 Max. :4 Max. :6.5581 Max. :7.1608 Max. :7.5383 rlmtheta lqstheta gamtheta quantregtheta Min. :0.3075 Min. :0.2563 Min. :0.3146 Min. :0.2485 1st Qu.:0.9121 1st Qu.:0.8884 1st Qu.:0.9216 1st Qu.:0.9178 Median :1.3063 Median :1.3483 Median :1.3393 Median :1.3200 Mean :1.5657 Mean :1.6053 Mean :1.5744 Mean :1.5725 3rd Qu.:1.8925 3rd Qu.:1.9778 3rd Qu.:1.9217 3rd Qu.:1.9146 Max. :7.5300 Max. :7.4773 Max. :7.5383 Max. :7.5101 glmboosttheta Min. :0.3146 1st Qu.:0.9216 Median :1.3393 Mean :1.5744 3rd Qu.:1.9217 Max. :7.5382 MASE - MONTHLY ----- series period theta glmnbtheta Min. : 1.00 Min. :12 Min. :0.2306 Min. :0.3772 1st Qu.: 92.25 1st Qu.:12 1st Qu.:1.0318 1st Qu.:1.0078 Median :183.50 Median :12 Median :1.3823 Median :1.3077 Mean :183.50 Mean :12 Mean :1.6488 Mean :1.5406 3rd Qu.:274.75 3rd Qu.:12 3rd Qu.:1.9223 3rd Qu.:1.7017 Max. :366.00 Max. :12 Max. :6.5851 Max. :6.3361 glmtheta rlmtheta lqstheta gamtheta Min. :0.3479 Min. :0.3458 Min. :0.3703 Min. :0.3479 1st Qu.:0.9531 1st Qu.:0.9477 1st Qu.:0.9981 1st Qu.:0.9531 Median :1.2789 Median :1.2788 Median :1.3063 Median :1.2789 Mean :1.5083 Mean :1.5005 Mean :1.5058 Mean :1.5083 3rd Qu.:1.7390 3rd Qu.:1.7282 3rd Qu.:1.7290 3rd Qu.:1.7390 Max. :6.2486 Max. :6.0757 Max. :5.9378 Max. :6.2486 quantregtheta glmboosttheta Min. :0.3468 Min. :0.3479 1st Qu.:0.9544 1st Qu.:0.9531 Median :1.2783 Median :1.2789 Mean :1.5001 Mean :1.5083 3rd Qu.:1.7180 3rd Qu.:1.7390 Max. :6.0329 Max. :6.2486 RMSE - YEARLY ----- series period theta glmnbtheta Min. : 794 Min. :1 Min. : 0 Min. : 0 1st Qu.: 923 1st Qu.:1 1st Qu.: 523 1st Qu.: 621 Median :1053 Median :1 Median : 3469 Median : 3866 Mean :1053 Mean :1 Mean : 92401 Mean : 97418 3rd Qu.:1182 3rd Qu.:1 3rd Qu.: 16640 3rd Qu.: 17956 Max. :1311 Max. :1 Max. :9308127 Max. :7103768 glmtheta rlmtheta lqstheta gamtheta Min. : 0 Min. : 0 Min. : 0 Min. : 0 1st Qu.: 570 1st Qu.: 570 1st Qu.: 621 1st Qu.: 570 Median : 3086 Median : 3043 Median : 3036 Median : 3086 Mean : 104771 Mean : 105078 Mean : 153605 Mean : 104771 3rd Qu.: 17828 3rd Qu.: 18013 3rd Qu.: 16787 3rd Qu.: 17828 Max. :17859424 Max. :17859424 Max. :22096361 Max. :17859424 quantregtheta glmboosttheta Min. : 0 Min. : 0 1st Qu.: 601 1st Qu.: 570 Median : 3172 Median : 3086 Mean : 96344 Mean : 104770 3rd Qu.: 17791 3rd Qu.: 17828 Max. :14863748 Max. :17859129 RMSE - QUARTERLY ----- series period theta glmnbtheta Min. :367.0 Min. :4 Min. : 14.3 Min. : 9.8 1st Qu.:473.5 1st Qu.:4 1st Qu.: 437.0 1st Qu.: 458.4 Median :580.0 Median :4 Median : 1392.9 Median : 1261.3 Mean :580.0 Mean :4 Mean : 9254.6 Mean : 11103.8 3rd Qu.:686.5 3rd Qu.:4 3rd Qu.: 4819.2 3rd Qu.: 4682.0 Max. :793.0 Max. :4 Max. :1010121.0 Max. :1491237.3 glmtheta rlmtheta lqstheta gamtheta Min. : 12.2 Min. : 12.3 Min. : 9.2 Min. : 12.2 1st Qu.: 426.0 1st Qu.: 429.8 1st Qu.: 428.4 1st Qu.: 426.0 Median : 1262.9 Median : 1245.3 Median : 1263.3 Median : 1262.9 Mean : 8026.0 Mean : 7892.1 Mean : 7993.1 Mean : 8026.0 3rd Qu.: 4202.2 3rd Qu.: 4162.0 3rd Qu.: 4570.7 3rd Qu.: 4202.2 Max. :429038.8 Max. :427515.5 Max. :466923.3 Max. :429038.8 quantregtheta glmboosttheta Min. : 12.3 Min. : 12.2 1st Qu.: 428.2 1st Qu.: 426.0 Median : 1242.5 Median : 1262.8 Mean : 7714.7 Mean : 8026.0 3rd Qu.: 4225.0 3rd Qu.: 4202.2 Max. :439185.7 Max. :429043.0 RMSE - MONTHLY ----- series period theta glmnbtheta Min. : 1.00 Min. :12 Min. : 40.19 Min. : 35.52 1st Qu.: 92.25 1st Qu.:12 1st Qu.: 267.63 1st Qu.: 256.08 Median :183.50 Median :12 Median : 675.10 Median : 586.62 Mean :183.50 Mean :12 Mean : 2701.96 Mean : 2571.03 3rd Qu.:274.75 3rd Qu.:12 3rd Qu.: 2181.65 3rd Qu.: 2042.95 Max. :366.00 Max. :12 Max. :107131.65 Max. :101604.31 glmtheta rlmtheta lqstheta gamtheta Min. : 35.58 Min. : 35.69 Min. : 38.55 Min. : 35.58 1st Qu.: 239.40 1st Qu.: 239.10 1st Qu.: 244.94 1st Qu.: 239.40 Median : 593.21 Median : 590.25 Median : 575.99 Median : 593.21 Mean : 2404.19 Mean : 2379.51 Mean : 2350.07 Mean : 2404.19 3rd Qu.: 1945.45 3rd Qu.: 1917.55 3rd Qu.: 1945.51 3rd Qu.: 1945.45 Max. :83410.95 Max. :81413.31 Max. :81483.87 Max. :83410.95 quantregtheta glmboosttheta Min. : 35.77 Min. : 35.58 1st Qu.: 241.63 1st Qu.: 239.40 Median : 582.61 Median : 593.22 Mean : 2345.52 Mean : 2404.19 3rd Qu.: 1881.51 3rd Qu.: 1945.45 Max. :70072.82 Max. :83409.12 COVERAGE - YEARLY ----- series period theta glmnbtheta glmtheta Min. : 794 Min. :1 Min. : 0.00 Min. : 0.00 Min. : 0.00 1st Qu.: 923 1st Qu.:1 1st Qu.: 50.00 1st Qu.: 50.00 1st Qu.: 50.00 Median :1053 Median :1 Median :100.00 Median :100.00 Median : 75.00 Mean :1053 Mean :1 Mean : 77.56 Mean : 72.68 Mean : 71.23 3rd Qu.:1182 3rd Qu.:1 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 Max. :1311 Max. :1 Max. :100.00 Max. :100.00 Max. :100.00 rlmtheta lqstheta gamtheta quantregtheta Min. : 0.00 Min. : 0.00 Min. : 0.00 Min. : 0.00 1st Qu.: 50.00 1st Qu.: 50.00 1st Qu.: 50.00 1st Qu.: 50.00 Median :100.00 Median :100.00 Median : 75.00 Median : 75.00 Mean : 71.37 Mean : 71.62 Mean : 71.23 Mean : 71.08 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 Max. :100.00 Max. :100.00 Max. :100.00 Max. :100.00 glmboosttheta Min. : 0.00 1st Qu.: 50.00 Median : 75.00 Mean : 71.23 3rd Qu.:100.00 Max. :100.00 COVERAGE - QUARTERLY ----- series period theta glmnbtheta glmtheta Min. :367.0 Min. :4 Min. : 0.00 Min. : 0.00 Min. : 0.00 1st Qu.:473.5 1st Qu.:4 1st Qu.: 75.00 1st Qu.: 87.50 1st Qu.: 87.50 Median :580.0 Median :4 Median : 87.50 Median :100.00 Median :100.00 Mean :580.0 Mean :4 Mean : 83.37 Mean : 92.71 Mean : 91.39 3rd Qu.:686.5 3rd Qu.:4 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 Max. :793.0 Max. :4 Max. :100.00 Max. :100.00 Max. :100.00 rlmtheta lqstheta gamtheta quantregtheta Min. : 0.00 Min. : 0.00 Min. : 0.00 Min. : 0.00 1st Qu.: 87.50 1st Qu.: 87.50 1st Qu.: 87.50 1st Qu.: 87.50 Median :100.00 Median :100.00 Median :100.00 Median :100.00 Mean : 91.66 Mean : 91.57 Mean : 91.39 Mean : 91.66 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 Max. :100.00 Max. :100.00 Max. :100.00 Max. :100.00 glmboosttheta Min. : 0.00 1st Qu.: 87.50 Median :100.00 Mean : 91.39 3rd Qu.:100.00 Max. :100.00 COVERAGE - MONTHLY ----- series period theta glmnbtheta Min. : 1.00 Min. :12 Min. : 12.50 Min. : 16.67 1st Qu.: 92.25 1st Qu.:12 1st Qu.: 79.17 1st Qu.: 91.67 Median :183.50 Median :12 Median : 87.50 Median :100.00 Mean :183.50 Mean :12 Mean : 84.41 Mean : 94.40 3rd Qu.:274.75 3rd Qu.:12 3rd Qu.: 95.83 3rd Qu.:100.00 Max. :366.00 Max. :12 Max. :100.00 Max. :100.00 glmtheta rlmtheta lqstheta gamtheta Min. : 29.17 Min. : 29.17 Min. : 20.83 Min. : 29.17 1st Qu.: 91.67 1st Qu.: 91.67 1st Qu.: 91.67 1st Qu.: 91.67 Median : 95.83 Median : 95.83 Median : 95.83 Median : 95.83 Mean : 93.56 Mean : 93.64 Mean : 93.74 Mean : 93.56 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 Max. :100.00 Max. :100.00 Max. :100.00 Max. :100.00 quantregtheta glmboosttheta Min. : 25.00 Min. : 29.17 1st Qu.: 91.67 1st Qu.: 91.67 Median : 95.83 Median : 95.83 Mean : 93.64 Mean : 93.56 3rd Qu.:100.00 3rd Qu.:100.00 Max. :100.00 Max. :100.00 WINKLER - YEARLY ----- series period theta glmnbtheta Min. : 794 Min. :1 Min. : 0 Min. : 0 1st Qu.: 923 1st Qu.:1 1st Qu.: 3353 1st Qu.: 4395 Median :1053 Median :1 Median : 19179 Median : 27045 Mean :1053 Mean :1 Mean : 991140 Mean : 1354242 3rd Qu.:1182 3rd Qu.:1 3rd Qu.: 121725 3rd Qu.: 152326 Max. :1311 Max. :1 Max. :131631759 Max. :139207678 glmtheta rlmtheta lqstheta Min. : 0 Min. : 0 Min. : 0 1st Qu.: 3987 1st Qu.: 3962 1st Qu.: 4672 Median : 22339 Median : 23038 Median : 23000 Mean : 1428806 Mean : 1430121 Mean : 2640349 3rd Qu.: 152825 3rd Qu.: 152825 3rd Qu.: 140807 Max. :220841357 Max. :220841357 Max. :591435564 gamtheta quantregtheta glmboosttheta Min. : 0 Min. : 0 Min. : 0 1st Qu.: 3987 1st Qu.: 4321 1st Qu.: 3987 Median : 22339 Median : 23113 Median : 22338 Mean : 1428806 Mean : 1209054 Mean : 1428804 3rd Qu.: 152825 3rd Qu.: 147477 3rd Qu.: 152834 Max. :220841357 Max. :144113476 Max. :220837127 WINKLER - QUARTERLY ----- series period theta glmnbtheta Min. :367.0 Min. :4 Min. : 119 Min. : 182 1st Qu.:473.5 1st Qu.:4 1st Qu.: 2802 1st Qu.: 2784 Median :580.0 Median :4 Median : 9777 Median : 9358 Mean :580.0 Mean :4 Mean : 65465 Mean : 87156 3rd Qu.:686.5 3rd Qu.:4 3rd Qu.: 35033 3rd Qu.: 34782 Max. :793.0 Max. :4 Max. :4614660 Max. :8044282 glmtheta rlmtheta lqstheta gamtheta Min. : 160 Min. : 159 Min. : 161 Min. : 160 1st Qu.: 2770 1st Qu.: 2725 1st Qu.: 2665 1st Qu.: 2770 Median : 8187 Median : 7965 Median : 7905 Median : 8187 Mean : 70215 Mean : 68396 Mean : 70960 Mean : 70215 3rd Qu.: 31793 3rd Qu.: 31746 3rd Qu.: 32823 3rd Qu.: 31793 Max. :4942200 Max. :4952162 Max. :4783339 Max. :4942200 quantregtheta glmboosttheta Min. : 147 Min. : 160 1st Qu.: 2704 1st Qu.: 2770 Median : 7863 Median : 8187 Mean : 68699 Mean : 70216 3rd Qu.: 31788 3rd Qu.: 31793 Max. :4927588 Max. :4942298 WINKLER - MONTHLY ----- series period theta glmnbtheta Min. : 1.00 Min. :12 Min. : 225.7 Min. : 174.9 1st Qu.: 92.25 1st Qu.:12 1st Qu.: 1728.9 1st Qu.: 1493.6 Median :183.50 Median :12 Median : 4769.1 Median : 4016.7 Mean :183.50 Mean :12 Mean : 19385.1 Mean : 20667.8 3rd Qu.:274.75 3rd Qu.:12 3rd Qu.: 14892.4 3rd Qu.: 13917.2 Max. :366.00 Max. :12 Max. :622300.5 Max. :1200917.2 glmtheta rlmtheta lqstheta Min. : 175.7 Min. : 175.8 Min. : 182.2 1st Qu.: 1339.0 1st Qu.: 1338.2 1st Qu.: 1425.4 Median : 4099.8 Median : 4048.5 Median : 3676.0 Mean : 19029.6 Mean : 18880.7 Mean : 19139.1 3rd Qu.: 12796.5 3rd Qu.: 12717.9 3rd Qu.: 12594.7 Max. :1030204.8 Max. :1035876.3 Max. :1108778.7 gamtheta quantregtheta glmboosttheta Min. : 175.7 Min. : 175.9 Min. : 175.7 1st Qu.: 1339.0 1st Qu.: 1335.8 1st Qu.: 1339.0 Median : 4099.8 Median : 3987.9 Median : 4099.8 Mean : 19029.6 Mean : 18961.6 Mean : 19029.6 3rd Qu.: 12796.5 3rd Qu.: 12561.8 3rd Qu.: 12796.5 Max. :1030204.8 Max. :1064937.4 Max. :1030209.7
1 - 2 - M3
%%R # Load necessary libraries library(doSNOW) library(tcltk) require(Mcomp) nseries <- length(M3) # Set up parallel backend cl <- makeSOCKcluster(parallel::detectCores()) # Use 2 cores (adjust as needed) registerDoSNOW(cl) # Define progress bar pb <- txtProgressBar(min = 0, max = nseries, style = 3) # Progress function progress <- function(n) setTxtProgressBar(pb, n) # Options for progress tracking opts <- list(progress = progress) pb <- utils::txtProgressBar(min=0, max=nseries, style = 3) (M3results <- foreach::foreach(i = 1:nseries, .combine = rbind, .errorhandling = "remove", .verbose=FALSE, .options.snow = opts)%dopar%{ x <- Mcomp::M3[[i]]$x xx <- Mcomp::M3[[i]]$xx h <- length(xx) obj <- suppressWarnings(thetaf(x, h=h, level=95)) res1 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=MASS::glm.nb, attention = TRUE)) res2 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=stats::glm, attention = TRUE)) res3 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=MASS::rlm, attention = TRUE)) res4 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=MASS::lqs, attention = TRUE)) res5 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=gam::gam, attention = TRUE)) res6 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=quantreg::rq, attention = TRUE)) res7 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=mboost::glmboost, attention = TRUE)) res8 <- accuracy(obj, xx) period <- switch (Mcomp::M3[[i]]$period, "YEARLY" = 1, "QUARTERLY" = 4, "MONTHLY" = 12, "OTHER" = 99 ) utils::setTxtProgressBar(pb, i) res <- cbind(i, period, res1, res2, res3, res4, res5, res6, res7, res8) colnames(res) <- c("series", "period", "theta", "glmnbtheta", "glmtheta", "rlmtheta", "lqstheta", "gamtheta", "quantregtheta", "glmboosttheta") res }) close(pb) M3results <- data.frame(M3results) print(head(M3results)) print(tail(M3results)) print(dim(M3results)) base::saveRDS(M3results, "results_M3.rds") print(summary(subset(M3results[grep("mase", rownames(M3results)), ], period==1))) print(summary(subset(M3results[grep("mase", rownames(M3results)), ], period==4))) print(summary(subset(M3results[grep("mase", rownames(M3results)), ], period==12))) print(summary(subset(M3results[grep("mase", rownames(M3results)), ], period==99))) print(summary(subset(M3results[grep("mae", rownames(M3results)), ], period==1))) print(summary(subset(M3results[grep("mae", rownames(M3results)), ], period==4))) print(summary(subset(M3results[grep("mae", rownames(M3results)), ], period==12))) print(summary(subset(M3results[grep("mae", rownames(M3results)), ], period==99))) print(summary(subset(M3results[grep("rmse", rownames(M3results)), ], period==1))) print(summary(subset(M3results[grep("rmse", rownames(M3results)), ], period==4))) print(summary(subset(M3results[grep("rmse", rownames(M3results)), ], period==12))) print(summary(subset(M3results[grep("rmse", rownames(M3results)), ], period==99))) from IPython.display import FileLink # Create a download link for the file FileLink('results_M3.rds') %%R results_M3 <- readRDS("results_M3.rds") cat("\n\n MASE - YEARLY ----- \n\n") print(summary(subset(results_M3[grep("mase", rownames(results_M3)), ], period==1))) cat("\n\n MASE - QUARTERLY ----- \n\n") print(summary(subset(results_M3[grep("mase", rownames(results_M3)), ], period==4))) cat("\n\n MASE - MONTHLY ----- \n\n") print(summary(subset(results_M3[grep("mase", rownames(results_M3)), ], period==12))) cat("\n\n MASE - OTHER ----- \n\n") print(summary(subset(results_M3[grep("mase", rownames(results_M3)), ], period==99))) cat("\n\n RMSE - YEARLY ----- \n\n") print(summary(subset(results_M3[grep("rmse", rownames(results_M3)), ], period==1))) cat("\n\n RMSE - QUARTERLY ----- \n\n") print(summary(subset(results_M3[grep("rmse", rownames(results_M3)), ], period==4))) cat("\n\n RMSE - MONTHLY ----- \n\n") print(summary(subset(results_M3[grep("rmse", rownames(results_M3)), ], period==12))) cat("\n\n RMSE - OTHER ----- \n\n") print(summary(subset(results_M3[grep("rmse", rownames(results_M3)), ], period==99))) cat("\n\n COVERAGE - YEARLY ----- \n\n") print(summary(subset(results_M3[grep("coverage", rownames(results_M3)), ], period==1))) cat("\n\n COVERAGE - QUARTERLY ----- \n\n") print(summary(subset(results_M3[grep("coverage", rownames(results_M3)), ], period==4))) cat("\n\n COVERAGE - MONTHLY ----- \n\n") print(summary(subset(results_M3[grep("coverage", rownames(results_M3)), ], period==12))) cat("\n\n COVERAGE - OTHER ----- \n\n") print(summary(subset(results_M3[grep("coverage", rownames(results_M3)), ], period==99))) cat("\n\n WINKLER - YEARLY ----- \n\n") print(summary(subset(results_M3[grep("winkler", rownames(results_M3)), ], period==1))) cat("\n\n WINKLER - QUARTERLY ----- \n\n") print(summary(subset(results_M3[grep("winkler", rownames(results_M3)), ], period==4))) cat("\n\n WINKLER - MONTHLY ----- \n\n") print(summary(subset(results_M3[grep("winkler", rownames(results_M3)), ], period==12))) cat("\n\n WINKLER - OTHER ----- \n\n") print(summary(subset(results_M3[grep("winkler", rownames(results_M3)), ], period==99))) MASE - YEARLY ----- series period theta glmnbtheta Min. : 1.0 Min. :1 Min. : 0.03876 Min. : 0.06781 1st Qu.:161.5 1st Qu.:1 1st Qu.: 1.13652 1st Qu.: 1.23557 Median :322.0 Median :1 Median : 1.98470 Median : 2.26387 Mean :322.5 Mean :1 Mean : 2.76912 Mean : 3.19215 3rd Qu.:484.5 3rd Qu.:1 3rd Qu.: 3.35399 3rd Qu.: 4.25194 Max. :645.0 Max. :1 Max. :18.39875 Max. :19.71222 glmtheta rlmtheta lqstheta gamtheta Min. : 0.04206 Min. : 0.08489 Min. : 0.03962 Min. : 0.04206 1st Qu.: 1.11360 1st Qu.: 1.11360 1st Qu.: 1.21102 1st Qu.: 1.11360 Median : 2.14429 Median : 2.09826 Median : 2.30911 Median : 2.14429 Mean : 2.88090 Mean : 2.88413 Mean : 3.13534 Mean : 2.88090 3rd Qu.: 3.73801 3rd Qu.: 3.72109 3rd Qu.: 4.01386 3rd Qu.: 3.73801 Max. :21.90144 Max. :21.77296 Max. :19.66367 Max. :21.90144 quantregtheta glmboosttheta Min. : 0.06057 Min. : 0.04204 1st Qu.: 1.11884 1st Qu.: 1.11358 Median : 2.15137 Median : 2.14420 Mean : 2.92007 Mean : 2.88088 3rd Qu.: 3.75612 3rd Qu.: 3.73791 Max. :21.50529 Max. :21.90127 MASE - QUARTERLY ----- series period theta glmnbtheta Min. : 646.0 Min. :4 Min. :0.04948 Min. :0.0643 1st Qu.: 834.5 1st Qu.:4 1st Qu.:0.50591 1st Qu.:0.6007 Median :1023.0 Median :4 Median :0.83113 Median :1.0169 Mean :1023.1 Mean :4 Mean :1.11726 Mean :1.2849 3rd Qu.:1211.5 3rd Qu.:4 3rd Qu.:1.36553 3rd Qu.:1.6517 Max. :1401.0 Max. :4 Max. :8.95676 Max. :9.1094 glmtheta rlmtheta lqstheta gamtheta Min. :0.09065 Min. :0.08851 Min. : 0.08128 Min. :0.09065 1st Qu.:0.61515 1st Qu.:0.61881 1st Qu.: 0.68118 1st Qu.:0.61515 Median :1.01690 Median :1.05730 Median : 1.17732 Median :1.01690 Mean :1.38350 Mean :1.38570 Mean : 1.50226 Mean :1.38350 3rd Qu.:1.76938 3rd Qu.:1.75291 3rd Qu.: 1.95377 3rd Qu.:1.76938 Max. :8.38250 Max. :8.39255 Max. :11.13771 Max. :8.38250 quantregtheta glmboosttheta Min. :0.07944 Min. :0.09066 1st Qu.:0.61232 1st Qu.:0.61516 Median :1.06087 Median :1.01687 Mean :1.42023 Mean :1.38349 3rd Qu.:1.78674 3rd Qu.:1.76936 Max. :8.62425 Max. :8.38252 MASE - MONTHLY ----- series period theta glmnbtheta Min. :1402 Min. :12 Min. :0.04156 Min. :0.07518 1st Qu.:1758 1st Qu.:12 1st Qu.:0.49464 1st Qu.:0.55326 Median :2115 Median :12 Median :0.72146 Median :0.79654 Mean :2115 Mean :12 Mean :0.86417 Mean :0.98665 3rd Qu.:2472 3rd Qu.:12 3rd Qu.:1.05258 3rd Qu.:1.21279 Max. :2829 Max. :12 Max. :5.05211 Max. :5.57131 glmtheta rlmtheta lqstheta gamtheta Min. :0.05811 Min. :0.05926 Min. :0.04708 Min. :0.05811 1st Qu.:0.52229 1st Qu.:0.51812 1st Qu.:0.54834 1st Qu.:0.52229 Median :0.82511 Median :0.82046 Median :0.88410 Median :0.82511 Mean :1.00510 Mean :1.00248 Mean :1.08024 Mean :1.00510 3rd Qu.:1.26832 3rd Qu.:1.26736 3rd Qu.:1.40810 3rd Qu.:1.26832 Max. :5.38855 Max. :5.38743 Max. :5.53397 Max. :5.38855 quantregtheta glmboosttheta Min. :0.0580 Min. :0.0581 1st Qu.:0.5366 1st Qu.:0.5223 Median :0.8469 Median :0.8251 Mean :1.0262 Mean :1.0051 3rd Qu.:1.2965 3rd Qu.:1.2683 Max. :5.2947 Max. :5.3886 MASE - OTHER ----- series period theta glmnbtheta Min. :2830 Min. :99 Min. : 0.220 Min. : 0.2614 1st Qu.:2873 1st Qu.:99 1st Qu.: 1.024 1st Qu.: 1.5711 Median :2916 Median :99 Median : 1.896 Median : 2.7695 Mean :2916 Mean :99 Mean : 2.271 Mean : 3.0931 3rd Qu.:2960 3rd Qu.:99 3rd Qu.: 2.967 3rd Qu.: 4.2789 Max. :3003 Max. :99 Max. :10.151 Max. :11.0702 glmtheta rlmtheta lqstheta gamtheta Min. :0.1891 Min. :0.1909 Min. :0.1219 Min. :0.1891 1st Qu.:0.8943 1st Qu.:0.9288 1st Qu.:0.9450 1st Qu.:0.8943 Median :1.6009 Median :1.6086 Median :1.7089 Median :1.6009 Mean :1.9444 Mean :1.9549 Mean :2.0180 Mean :1.9444 3rd Qu.:2.4451 3rd Qu.:2.4248 3rd Qu.:2.4961 3rd Qu.:2.4451 Max. :7.3144 Max. :7.3169 Max. :7.7471 Max. :7.3144 quantregtheta glmboosttheta Min. :0.2312 Min. :0.1890 1st Qu.:0.9104 1st Qu.:0.8942 Median :1.5795 Median :1.6009 Mean :1.9533 Mean :1.9444 3rd Qu.:2.4042 3rd Qu.:2.4451 Max. :7.3200 Max. :7.3145 RMSE - YEARLY ----- series period theta glmnbtheta Min. : 1.0 Min. :1 Min. : 8.301 Min. : 14.41 1st Qu.:161.5 1st Qu.:1 1st Qu.: 375.740 1st Qu.: 443.31 Median :322.0 Median :1 Median : 743.996 Median : 803.55 Mean :322.5 Mean :1 Mean : 1108.824 Mean : 1185.30 3rd Qu.:484.5 3rd Qu.:1 3rd Qu.: 1415.724 3rd Qu.: 1591.94 Max. :645.0 Max. :1 Max. :14639.170 Max. :12502.86 glmtheta rlmtheta lqstheta gamtheta Min. : 1.539 Min. : 23.92 Min. : 11.06 Min. : 1.539 1st Qu.: 342.056 1st Qu.: 358.53 1st Qu.: 380.97 1st Qu.: 342.056 Median : 816.486 Median : 789.31 Median : 898.02 Median : 816.486 Mean : 1310.461 Mean : 1308.33 Mean : 1408.77 Mean : 1310.461 3rd Qu.: 1718.193 3rd Qu.: 1707.00 3rd Qu.: 1777.14 3rd Qu.: 1718.193 Max. :29687.208 Max. :29687.21 Max. :17861.89 Max. :29687.208 quantregtheta glmboosttheta Min. : 20.97 Min. : 1.539 1st Qu.: 359.88 1st Qu.: 342.067 Median : 818.52 Median : 816.484 Mean : 1320.32 Mean : 1310.448 3rd Qu.: 1758.11 3rd Qu.: 1718.179 Max. :29005.49 Max. :29686.714 RMSE - QUARTERLY ----- series period theta glmnbtheta Min. : 646.0 Min. :4 Min. : 8.075 Min. : 10.3 1st Qu.: 834.5 1st Qu.:4 1st Qu.: 178.873 1st Qu.: 213.8 Median :1023.0 Median :4 Median : 356.054 Median : 413.5 Mean :1023.1 Mean :4 Mean : 568.246 Mean : 619.8 3rd Qu.:1211.5 3rd Qu.:4 3rd Qu.: 638.098 3rd Qu.: 712.3 Max. :1401.0 Max. :4 Max. :7592.100 Max. :8070.6 glmtheta rlmtheta lqstheta gamtheta Min. : 20.5 Min. : 20.07 Min. : 14.76 Min. : 20.5 1st Qu.: 214.7 1st Qu.: 214.43 1st Qu.: 226.35 1st Qu.: 214.7 Median : 416.0 Median : 414.46 Median : 456.80 Median : 416.0 Mean : 688.9 Mean : 688.75 Mean : 739.78 Mean : 688.9 3rd Qu.: 832.7 3rd Qu.: 843.02 3rd Qu.: 919.21 3rd Qu.: 832.7 Max. :8620.4 Max. :8763.45 Max. :6697.08 Max. :8620.4 quantregtheta glmboosttheta Min. : 19.05 Min. : 20.5 1st Qu.: 214.37 1st Qu.: 214.7 Median : 430.28 Median : 416.0 Mean : 703.29 Mean : 688.9 3rd Qu.: 842.21 3rd Qu.: 832.7 Max. :10508.84 Max. :8620.4 RMSE - MONTHLY ----- series period theta glmnbtheta Min. :1402 Min. :12 Min. : 16.07 Min. : 13.93 1st Qu.:1758 1st Qu.:12 1st Qu.: 255.31 1st Qu.: 283.97 Median :2115 Median :12 Median : 517.13 Median : 565.79 Mean :2115 Mean :12 Mean : 754.26 Mean : 827.42 3rd Qu.:2472 3rd Qu.:12 3rd Qu.: 944.13 3rd Qu.: 1029.99 Max. :2829 Max. :12 Max. :12302.42 Max. :11985.62 glmtheta rlmtheta lqstheta gamtheta Min. : 17.31 Min. : 17.28 Min. : 14.31 Min. : 17.31 1st Qu.: 265.61 1st Qu.: 263.04 1st Qu.: 280.40 1st Qu.: 265.61 Median : 589.47 Median : 593.14 Median : 594.36 Median : 589.47 Mean : 890.13 Mean : 887.46 Mean : 972.64 Mean : 890.13 3rd Qu.: 1124.05 3rd Qu.: 1110.66 3rd Qu.: 1250.92 3rd Qu.: 1124.05 Max. :13455.93 Max. :13538.13 Max. :11462.02 Max. :13455.93 quantregtheta glmboosttheta Min. : 15.6 Min. : 17.31 1st Qu.: 269.1 1st Qu.: 265.61 Median : 583.2 Median : 589.47 Mean : 914.6 Mean : 890.13 3rd Qu.: 1161.2 3rd Qu.: 1124.04 Max. :13634.0 Max. :13455.88 RMSE - OTHER ----- series period theta glmnbtheta Min. :2830 Min. :99 Min. : 8.218 Min. : 9.938 1st Qu.:2873 1st Qu.:99 1st Qu.: 61.988 1st Qu.: 100.167 Median :2916 Median :99 Median : 120.836 Median : 182.118 Mean :2916 Mean :99 Mean : 242.133 Mean : 309.795 3rd Qu.:2960 3rd Qu.:99 3rd Qu.: 279.193 3rd Qu.: 340.758 Max. :3003 Max. :99 Max. :3453.536 Max. :3129.978 glmtheta rlmtheta lqstheta gamtheta Min. : 6.652 Min. : 6.711 Min. : 4.814 Min. : 6.652 1st Qu.: 51.985 1st Qu.: 55.197 1st Qu.: 54.531 1st Qu.: 51.985 Median : 106.711 Median : 105.570 Median : 102.020 Median : 106.711 Mean : 249.562 Mean : 250.666 Mean : 256.004 Mean : 249.562 3rd Qu.: 223.361 3rd Qu.: 223.213 3rd Qu.: 238.648 3rd Qu.: 223.361 Max. :4079.840 Max. :4065.917 Max. :3765.921 Max. :4079.840 quantregtheta glmboosttheta Min. : 8.082 Min. : 6.651 1st Qu.: 55.418 1st Qu.: 51.986 Median : 103.246 Median : 106.712 Mean : 253.318 Mean : 249.559 3rd Qu.: 228.469 3rd Qu.: 223.364 Max. :4230.672 Max. :4079.814 COVERAGE - YEARLY ----- series period theta glmnbtheta glmtheta Min. : 1.0 Min. :1 Min. : 0.00 Min. : 0.00 Min. : 0.00 1st Qu.:161.5 1st Qu.:1 1st Qu.: 83.33 1st Qu.: 33.33 1st Qu.: 33.33 Median :322.0 Median :1 Median :100.00 Median : 83.33 Median : 83.33 Mean :322.5 Mean :1 Mean : 84.32 Mean : 68.56 Mean : 66.95 3rd Qu.:484.5 3rd Qu.:1 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 Max. :645.0 Max. :1 Max. :100.00 Max. :100.00 Max. :100.00 rlmtheta lqstheta gamtheta quantregtheta Min. : 0.00 Min. : 0.00 Min. : 0.00 Min. : 0.00 1st Qu.: 33.33 1st Qu.: 33.33 1st Qu.: 33.33 1st Qu.: 33.33 Median : 66.67 Median : 66.67 Median : 83.33 Median : 83.33 Mean : 66.38 Mean : 64.23 Mean : 66.95 Mean : 66.17 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 Max. :100.00 Max. :100.00 Max. :100.00 Max. :100.00 glmboosttheta Min. : 0.00 1st Qu.: 33.33 Median : 83.33 Mean : 66.95 3rd Qu.:100.00 Max. :100.00 COVERAGE - QUARTERLY ----- series period theta glmnbtheta Min. : 646.0 Min. :4 Min. : 0.00 Min. : 0.00 1st Qu.: 834.5 1st Qu.:4 1st Qu.: 87.50 1st Qu.: 75.00 Median :1023.0 Median :4 Median :100.00 Median :100.00 Mean :1023.1 Mean :4 Mean : 87.22 Mean : 83.77 3rd Qu.:1211.5 3rd Qu.:4 3rd Qu.:100.00 3rd Qu.:100.00 Max. :1401.0 Max. :4 Max. :100.00 Max. :100.00 glmtheta rlmtheta lqstheta gamtheta Min. : 0.00 Min. : 0.00 Min. : 0.0 Min. : 0.00 1st Qu.: 56.25 1st Qu.: 50.00 1st Qu.: 50.0 1st Qu.: 56.25 Median : 87.50 Median : 87.50 Median : 87.5 Median : 87.50 Mean : 75.30 Mean : 75.26 Mean : 74.5 Mean : 75.30 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.0 3rd Qu.:100.00 Max. :100.00 Max. :100.00 Max. :100.0 Max. :100.00 quantregtheta glmboosttheta Min. : 0.0 Min. : 0.00 1st Qu.: 50.0 1st Qu.: 56.25 Median : 87.5 Median : 87.50 Mean : 74.4 Mean : 75.30 3rd Qu.:100.0 3rd Qu.:100.00 Max. :100.0 Max. :100.00 COVERAGE - MONTHLY ----- series period theta glmnbtheta Min. :1402 Min. :12 Min. : 0.00 Min. : 5.556 1st Qu.:1758 1st Qu.:12 1st Qu.: 88.89 1st Qu.: 77.778 Median :2115 Median :12 Median :100.00 Median : 94.444 Mean :2115 Mean :12 Mean : 89.84 Mean : 86.101 3rd Qu.:2472 3rd Qu.:12 3rd Qu.:100.00 3rd Qu.:100.000 Max. :2829 Max. :12 Max. :100.00 Max. :100.000 glmtheta rlmtheta lqstheta gamtheta Min. : 5.556 Min. : 5.556 Min. : 0.00 Min. : 5.556 1st Qu.: 77.778 1st Qu.: 77.778 1st Qu.: 72.22 1st Qu.: 77.778 Median : 94.444 Median : 94.444 Median : 94.44 Median : 94.444 Mean : 86.183 Mean : 86.082 Mean : 83.09 Mean : 86.183 3rd Qu.:100.000 3rd Qu.:100.000 3rd Qu.:100.00 3rd Qu.:100.000 Max. :100.000 Max. :100.000 Max. :100.00 Max. :100.000 quantregtheta glmboosttheta Min. : 5.556 Min. : 5.556 1st Qu.: 77.778 1st Qu.: 77.778 Median : 94.444 Median : 94.444 Mean : 85.167 Mean : 86.183 3rd Qu.:100.000 3rd Qu.:100.000 Max. :100.000 Max. :100.000 COVERAGE - OTHER ----- series period theta glmnbtheta glmtheta Min. :2830 Min. :99 Min. : 0.00 Min. : 12.50 Min. : 12.50 1st Qu.:2873 1st Qu.:99 1st Qu.:100.00 1st Qu.:100.00 1st Qu.:100.00 Median :2916 Median :99 Median :100.00 Median :100.00 Median :100.00 Mean :2916 Mean :99 Mean : 93.68 Mean : 95.19 Mean : 91.31 3rd Qu.:2960 3rd Qu.:99 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 Max. :3003 Max. :99 Max. :100.00 Max. :100.00 Max. :100.00 rlmtheta lqstheta gamtheta quantregtheta Min. : 12.50 Min. : 12.50 Min. : 12.50 Min. : 12.50 1st Qu.:100.00 1st Qu.:100.00 1st Qu.:100.00 1st Qu.:100.00 Median :100.00 Median :100.00 Median :100.00 Median :100.00 Mean : 91.24 Mean : 91.24 Mean : 91.31 Mean : 90.73 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 Max. :100.00 Max. :100.00 Max. :100.00 Max. :100.00 glmboosttheta Min. : 12.50 1st Qu.:100.00 Median :100.00 Mean : 91.31 3rd Qu.:100.00 Max. :100.00 WINKLER - YEARLY ----- series period theta glmnbtheta Min. : 1.0 Min. :1 Min. : 149.8 Min. : 135.9 1st Qu.:161.5 1st Qu.:1 1st Qu.: 2088.6 1st Qu.: 2836.9 Median :322.0 Median :1 Median : 3965.6 Median : 5667.1 Mean :322.5 Mean :1 Mean : 9461.6 Mean : 14531.6 3rd Qu.:484.5 3rd Qu.:1 3rd Qu.: 8123.2 3rd Qu.: 16657.3 Max. :645.0 Max. :1 Max. :146923.2 Max. :150928.8 glmtheta rlmtheta lqstheta gamtheta Min. : 142.9 Min. : 148.2 Min. : 161.8 Min. : 142.9 1st Qu.: 2757.0 1st Qu.: 2773.6 1st Qu.: 2996.9 1st Qu.: 2757.0 Median : 6158.4 Median : 6234.4 Median : 7113.8 Median : 6158.4 Mean : 17825.6 Mean : 17968.2 Mean : 21628.9 Mean : 17825.6 3rd Qu.: 19483.3 3rd Qu.: 20031.8 3rd Qu.: 24644.4 3rd Qu.: 19483.3 Max. :652521.2 Max. :652521.2 Max. :319696.8 Max. :652521.2 quantregtheta glmboosttheta Min. : 147.1 Min. : 142.9 1st Qu.: 2785.1 1st Qu.: 2756.9 Median : 6591.8 Median : 6158.2 Mean : 18437.3 Mean : 17825.4 3rd Qu.: 20114.9 3rd Qu.: 19484.5 Max. :629977.7 Max. :652503.7 WINKLER - QUARTERLY ----- series period theta glmnbtheta Min. : 646.0 Min. :4 Min. : 181.7 Min. : 201.7 1st Qu.: 834.5 1st Qu.:4 1st Qu.: 1043.9 1st Qu.: 1407.0 Median :1023.0 Median :4 Median : 1901.2 Median : 2517.0 Mean :1023.1 Mean :4 Mean : 4710.3 Mean : 5593.2 3rd Qu.:1211.5 3rd Qu.:4 3rd Qu.: 3829.0 3rd Qu.: 4658.6 Max. :1401.0 Max. :4 Max. :189229.7 Max. :181194.4 glmtheta rlmtheta lqstheta gamtheta Min. : 150.4 Min. : 150.4 Min. : 141.7 Min. : 150.4 1st Qu.: 1375.3 1st Qu.: 1394.0 1st Qu.: 1433.3 1st Qu.: 1375.3 Median : 2760.6 Median : 2792.3 Median : 2965.4 Median : 2760.6 Mean : 6777.3 Mean : 6814.5 Mean : 7616.0 Mean : 6777.3 3rd Qu.: 6271.5 3rd Qu.: 6441.3 3rd Qu.: 7976.4 3rd Qu.: 6271.5 Max. :170507.1 Max. :171700.5 Max. :162725.5 Max. :170507.1 quantregtheta glmboosttheta Min. : 142.5 Min. : 150.4 1st Qu.: 1419.5 1st Qu.: 1375.4 Median : 2790.6 Median : 2760.4 Mean : 7105.7 Mean : 6777.1 3rd Qu.: 6900.2 3rd Qu.: 6270.8 Max. :176740.5 Max. :170507.4 WINKLER - MONTHLY ----- series period theta glmnbtheta Min. :1402 Min. :12 Min. : 123.1 Min. : 193.8 1st Qu.:1758 1st Qu.:12 1st Qu.: 1444.9 1st Qu.: 1650.2 Median :2115 Median :12 Median : 3154.7 Median : 3169.2 Mean :2115 Mean :12 Mean : 5071.6 Mean : 5788.5 3rd Qu.:2472 3rd Qu.:12 3rd Qu.: 5428.2 3rd Qu.: 5978.7 Max. :2829 Max. :12 Max. :129135.8 Max. :160190.5 glmtheta rlmtheta lqstheta gamtheta Min. : 147.1 Min. : 147.1 Min. : 110.5 Min. : 147.1 1st Qu.: 1637.9 1st Qu.: 1645.1 1st Qu.: 1721.2 1st Qu.: 1637.9 Median : 3455.6 Median : 3458.1 Median : 3610.6 Median : 3455.6 Mean : 6514.0 Mean : 6487.6 Mean : 8153.8 Mean : 6514.0 3rd Qu.: 6644.7 3rd Qu.: 6635.1 3rd Qu.: 7806.3 3rd Qu.: 6644.7 Max. :177738.4 Max. :177797.3 Max. :271625.2 Max. :177738.4 quantregtheta glmboosttheta Min. : 129.4 Min. : 147.1 1st Qu.: 1653.2 1st Qu.: 1637.9 Median : 3429.8 Median : 3455.6 Mean : 6845.1 Mean : 6513.9 3rd Qu.: 7183.7 3rd Qu.: 6644.5 Max. :172824.8 Max. :177737.8 WINKLER - OTHER ----- series period theta glmnbtheta Min. :2830 Min. :99 Min. : 215.8 Min. : 193.7 1st Qu.:2873 1st Qu.:99 1st Qu.: 416.6 1st Qu.: 712.6 Median :2916 Median :99 Median : 661.8 Median : 1229.0 Mean :2916 Mean :99 Mean : 1375.9 Mean : 2313.1 3rd Qu.:2960 3rd Qu.:99 3rd Qu.: 1320.4 3rd Qu.: 2185.5 Max. :3003 Max. :99 Max. :13205.7 Max. :29189.4 glmtheta rlmtheta lqstheta gamtheta Min. : 146.3 Min. : 147.8 Min. : 133.5 Min. : 146.3 1st Qu.: 448.3 1st Qu.: 458.1 1st Qu.: 515.1 1st Qu.: 448.3 Median : 895.8 Median : 885.8 Median : 875.2 Median : 895.8 Mean : 2256.3 Mean : 2261.6 Mean : 2025.5 Mean : 2256.3 3rd Qu.: 1755.3 3rd Qu.: 1888.6 3rd Qu.: 1762.8 3rd Qu.: 1755.3 Max. :33854.7 Max. :33975.6 Max. :38790.9 Max. :33854.7 quantregtheta glmboosttheta Min. : 149.7 Min. : 146.2 1st Qu.: 461.1 1st Qu.: 448.3 Median : 896.4 Median : 895.8 Mean : 2309.8 Mean : 2256.3 3rd Qu.: 1855.2 3rd Qu.: 1755.3 Max. :33681.9 Max. :33854.8
1 - 3 M1
%%R # Load necessary libraries library(doSNOW) library(tcltk) require(Mcomp) nseries <- length(M1) # Set up parallel backend cl <- makeSOCKcluster(parallel::detectCores()) # Use 2 cores (adjust as needed) registerDoSNOW(cl) # Define progress bar pb <- txtProgressBar(min = 0, max = nseries, style = 3) # Progress function progress <- function(n) setTxtProgressBar(pb, n) # Options for progress tracking opts <- list(progress = progress) pb <- utils::txtProgressBar(min=0, max=nseries, style = 3) (M1results <- foreach::foreach(i = 1:nseries, .combine = rbind, .errorhandling = "remove", .verbose=FALSE, .options.snow = opts)%dopar%{ x <- Mcomp::M1[[i]]$x xx <- Mcomp::M1[[i]]$xx h <- length(xx) obj <- suppressWarnings(thetaf(x, h=h, level=95)) res1 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=MASS::glm.nb, attention = TRUE)) res2 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=stats::glm, attention = TRUE)) res3 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=MASS::rlm, attention = TRUE)) res4 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=MASS::lqs, attention = TRUE)) res5 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=gam::gam, attention = TRUE)) res6 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=quantreg::rq, attention = TRUE)) res7 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=mboost::glmboost, attention = TRUE)) res8 <- accuracy(obj, xx) period <- switch (Mcomp::M1[[i]]$period, "YEARLY" = 1, "QUARTERLY" = 4, "MONTHLY" = 12 ) utils::setTxtProgressBar(pb, i) res <- cbind(i, period, res1, res2, res3, res4, res5, res6, res7, res8) colnames(res) <- c("series", "period", "theta", "glmnbtheta", "glmtheta", "rlmtheta", "lqstheta", "gamtheta", "quantregtheta", "glmboosttheta") res }) close(pb) M1results <- data.frame(M1results) print(head(M1results)) print(tail(M1results)) print(dim(M1results)) base::saveRDS(M1results, "results_M1.rds") print(summary(subset(M1results[grep("mase", rownames(M1results)), ], period==1))) print(summary(subset(M1results[grep("mase", rownames(M1results)), ], period==4))) print(summary(subset(M1results[grep("mase", rownames(M1results)), ], period==12))) print(summary(subset(M1results[grep("mae", rownames(M1results)), ], period==1))) print(summary(subset(M1results[grep("mae", rownames(M1results)), ], period==4))) print(summary(subset(M1results[grep("mae", rownames(M1results)), ], period==12))) print(summary(subset(M1results[grep("rmse", rownames(M1results)), ], period==1))) print(summary(subset(M1results[grep("rmse", rownames(M1results)), ], period==4))) print(summary(subset(M1results[grep("rmse", rownames(M1results)), ], period==12))) from IPython.display import FileLink # Create a download link for the file FileLink('results_M1.rds') %%R results_M1 <- readRDS("results_M1.rds") cat("\n\n MASE - YEARLY ----- \n\n") print(summary(subset(results_M1[grep("mase", rownames(results_M1)), ], period==1))) cat("\n\n MASE - QUARTERLY ----- \n\n") print(summary(subset(results_M1[grep("mase", rownames(results_M1)), ], period==4))) cat("\n\n MASE - MONTHLY ----- \n\n") print(summary(subset(results_M1[grep("mase", rownames(results_M1)), ], period==12))) cat("\n\n RMSE - YEARLY ----- \n\n") print(summary(subset(results_M1[grep("rmse", rownames(results_M1)), ], period==1))) cat("\n\n RMSE - QUARTERLY ----- \n\n") print(summary(subset(results_M1[grep("rmse", rownames(results_M1)), ], period==4))) cat("\n\n RMSE - MONTHLY ----- \n\n") print(summary(subset(results_M1[grep("rmse", rownames(results_M1)), ], period==12))) cat("\n\n COVERAGE - YEARLY ----- \n\n") print(summary(subset(results_M1[grep("coverage", rownames(results_M1)), ], period==1))) cat("\n\n COVERAGE - QUARTERLY ----- \n\n") print(summary(subset(results_M1[grep("coverage", rownames(results_M1)), ], period==4))) cat("\n\n COVERAGE - MONTHLY ----- \n\n") print(summary(subset(results_M1[grep("coverage", rownames(results_M1)), ], period==12))) cat("\n\n WINKLER - YEARLY ----- \n\n") print(summary(subset(results_M1[grep("winkler", rownames(results_M1)), ], period==1))) cat("\n\n WINKLER - QUARTERLY ----- \n\n") print(summary(subset(results_M1[grep("winkler", rownames(results_M1)), ], period==4))) cat("\n\n WINKLER - MONTHLY ----- \n\n") print(summary(subset(results_M1[grep("winkler", rownames(results_M1)), ], period==12))) MASE - YEARLY ----- series period theta glmnbtheta Min. : 1.00 Min. :1 Min. : 0.339 Min. : 0.2002 1st Qu.: 45.00 1st Qu.:1 1st Qu.: 1.590 1st Qu.: 1.7242 Median : 89.00 Median :1 Median : 3.030 Median : 3.5463 Mean : 89.81 Mean :1 Mean : 4.189 Mean : 4.8790 3rd Qu.:135.00 3rd Qu.:1 3rd Qu.: 5.488 3rd Qu.: 5.9936 Max. :181.00 Max. :1 Max. :53.736 Max. :54.4274 glmtheta rlmtheta lqstheta gamtheta Min. : 0.2284 Min. : 0.1634 Min. : 0.1689 Min. : 0.2284 1st Qu.: 1.2867 1st Qu.: 1.2723 1st Qu.: 1.1949 1st Qu.: 1.2867 Median : 2.3605 Median : 2.3112 Median : 2.4514 Median : 2.3605 Mean : 3.3171 Mean : 3.3137 Mean : 3.4067 Mean : 3.3171 3rd Qu.: 3.9079 3rd Qu.: 3.7760 3rd Qu.: 3.9569 3rd Qu.: 3.9079 Max. :50.3795 Max. :51.5947 Max. :54.2701 Max. :50.3795 quantregtheta glmboosttheta Min. : 0.1689 Min. : 0.2283 1st Qu.: 1.2799 1st Qu.: 1.2867 Median : 2.4032 Median : 2.3605 Mean : 3.3675 Mean : 3.3171 3rd Qu.: 3.8951 3rd Qu.: 3.9080 Max. :52.2621 Max. :50.3796 MASE - QUARTERLY ----- series period theta glmnbtheta Min. :182.0 Min. :4 Min. : 0.06685 Min. : 0.2688 1st Qu.:231.0 1st Qu.:4 1st Qu.: 0.76595 1st Qu.: 0.9400 Median :282.0 Median :4 Median : 1.28289 Median : 1.3712 Mean :281.8 Mean :4 Mean : 1.72391 Mean : 1.8599 3rd Qu.:331.0 3rd Qu.:4 3rd Qu.: 1.89038 3rd Qu.: 2.0453 Max. :384.0 Max. :4 Max. :13.56309 Max. :13.8709 glmtheta rlmtheta lqstheta gamtheta Min. : 0.1237 Min. : 0.1260 Min. : 0.1906 Min. : 0.1237 1st Qu.: 0.8431 1st Qu.: 0.8498 1st Qu.: 0.8649 1st Qu.: 0.8431 Median : 1.3482 Median : 1.3615 Median : 1.4702 Median : 1.3482 Mean : 1.8028 Mean : 1.8130 Mean : 1.9865 Mean : 1.8028 3rd Qu.: 2.1977 3rd Qu.: 2.2306 3rd Qu.: 2.3770 3rd Qu.: 2.1977 Max. :12.8633 Max. :12.4328 Max. :12.1660 Max. :12.8633 quantregtheta glmboosttheta Min. : 0.1329 Min. : 0.1237 1st Qu.: 0.8626 1st Qu.: 0.8431 Median : 1.4129 Median : 1.3482 Mean : 1.8693 Mean : 1.8028 3rd Qu.: 2.3317 3rd Qu.: 2.1977 Max. :12.5140 Max. :12.8633 MASE - MONTHLY ----- series period theta glmnbtheta Min. : 385 Min. :12 Min. :0.08899 Min. :0.03055 1st Qu.: 539 1st Qu.:12 1st Qu.:0.61489 1st Qu.:0.72027 Median : 693 Median :12 Median :0.88503 Median :1.09843 Mean : 693 Mean :12 Mean :1.09097 Mean :1.30865 3rd Qu.: 847 3rd Qu.:12 3rd Qu.:1.31576 3rd Qu.:1.59016 Max. :1001 Max. :12 Max. :5.66195 Max. :6.11137 glmtheta rlmtheta lqstheta gamtheta Min. :0.07755 Min. :0.06842 Min. :0.007376 Min. :0.07755 1st Qu.:0.74019 1st Qu.:0.73040 1st Qu.:0.768420 1st Qu.:0.74019 Median :1.17541 Median :1.16993 Median :1.230610 Median :1.17541 Mean :1.42698 Mean :1.40937 Mean :1.497829 Mean :1.42698 3rd Qu.:1.81082 3rd Qu.:1.79974 3rd Qu.:1.888202 3rd Qu.:1.81082 Max. :7.22650 Max. :6.92929 Max. :6.583633 Max. :7.22650 quantregtheta glmboosttheta Min. :0.008536 Min. :0.07755 1st Qu.:0.741870 1st Qu.:0.74019 Median :1.170760 Median :1.17541 Mean :1.427073 Mean :1.42697 3rd Qu.:1.783612 3rd Qu.:1.81080 Max. :6.317748 Max. :7.22647 RMSE - YEARLY ----- series period theta glmnbtheta Min. : 1.00 Min. :1 Min. : 0 Min. : 0 1st Qu.: 45.00 1st Qu.:1 1st Qu.: 17 1st Qu.: 22 Median : 89.00 Median :1 Median : 347 Median : 416 Mean : 89.81 Mean :1 Mean : 175332 Mean : 197775 3rd Qu.:135.00 3rd Qu.:1 3rd Qu.: 8364 3rd Qu.: 10104 Max. :181.00 Max. :1 Max. :15662440 Max. :16475297 glmtheta rlmtheta lqstheta gamtheta Min. : 0 Min. : 0 Min. : 0 Min. : 0 1st Qu.: 10 1st Qu.: 12 1st Qu.: 13 1st Qu.: 10 Median : 213 Median : 213 Median : 205 Median : 213 Mean : 157517 Mean : 157542 Mean : 175530 Mean : 157517 3rd Qu.: 7067 3rd Qu.: 7097 3rd Qu.: 7832 3rd Qu.: 7067 Max. :13016053 Max. :12958792 Max. :13326865 Max. :13016053 quantregtheta glmboosttheta Min. : 0 Min. : 0 1st Qu.: 11 1st Qu.: 10 Median : 212 Median : 213 Mean : 159385 Mean : 157517 3rd Qu.: 6784 3rd Qu.: 7067 Max. :13021534 Max. :13016145 RMSE - QUARTERLY ----- series period theta glmnbtheta Min. :182.0 Min. :4 Min. : 0.01 Min. : 0.02 1st Qu.:231.0 1st Qu.:4 1st Qu.: 7.38 1st Qu.: 7.50 Median :282.0 Median :4 Median : 24.01 Median : 24.87 Mean :281.8 Mean :4 Mean : 2351.98 Mean : 2584.09 3rd Qu.:331.0 3rd Qu.:4 3rd Qu.: 253.31 3rd Qu.: 252.57 Max. :384.0 Max. :4 Max. :94218.49 Max. :102660.28 glmtheta rlmtheta lqstheta Min. : 0.02 Min. : 0.02 Min. : 0.01 1st Qu.: 9.86 1st Qu.: 9.38 1st Qu.: 9.39 Median : 29.71 Median : 29.23 Median : 30.34 Mean : 2817.96 Mean : 2845.29 Mean : 3232.61 3rd Qu.: 200.88 3rd Qu.: 208.27 3rd Qu.: 212.49 Max. :129950.26 Max. :127877.25 Max. :201583.89 gamtheta quantregtheta glmboosttheta Min. : 0.02 Min. : 0.02 Min. : 0.02 1st Qu.: 9.86 1st Qu.: 9.53 1st Qu.: 9.86 Median : 29.71 Median : 28.72 Median : 29.71 Mean : 2817.96 Mean : 2853.71 Mean : 2817.95 3rd Qu.: 200.88 3rd Qu.: 240.04 3rd Qu.: 200.88 Max. :129950.26 Max. :115511.98 Max. :129949.34 RMSE - MONTHLY ----- series period theta glmnbtheta Min. : 385 Min. :12 Min. : 0.0 Min. : 0.0 1st Qu.: 539 1st Qu.:12 1st Qu.: 7.8 1st Qu.: 8.7 Median : 693 Median :12 Median : 46.4 Median : 50.8 Mean : 693 Mean :12 Mean : 2564.9 Mean : 2532.1 3rd Qu.: 847 3rd Qu.:12 3rd Qu.: 496.2 3rd Qu.: 594.1 Max. :1001 Max. :12 Max. :686105.3 Max. :521915.2 glmtheta rlmtheta lqstheta gamtheta Min. : 0.0 Min. : 0.0 Min. : 0.0 Min. : 0.0 1st Qu.: 9.5 1st Qu.: 9.7 1st Qu.: 10.5 1st Qu.: 9.5 Median : 52.1 Median : 50.8 Median : 56.8 Median : 52.1 Mean : 3548.7 Mean : 3449.2 Mean : 3953.3 Mean : 3548.7 3rd Qu.: 648.8 3rd Qu.: 641.3 3rd Qu.: 643.8 3rd Qu.: 648.8 Max. :969404.8 Max. :959390.3 Max. :1310439.1 Max. :969404.8 quantregtheta glmboosttheta Min. : 0.0 Min. : 0.0 1st Qu.: 10.1 1st Qu.: 9.5 Median : 53.6 Median : 52.1 Mean : 3221.8 Mean : 3548.6 3rd Qu.: 623.1 3rd Qu.: 648.8 Max. :854678.2 Max. :969391.4 COVERAGE - YEARLY ----- series period theta glmnbtheta Min. : 1.00 Min. :1 Min. : 0.00 Min. : 0.00 1st Qu.: 45.00 1st Qu.:1 1st Qu.: 33.33 1st Qu.: 16.67 Median : 89.00 Median :1 Median : 83.33 Median : 50.00 Mean : 89.81 Mean :1 Mean : 69.02 Mean : 51.22 3rd Qu.:135.00 3rd Qu.:1 3rd Qu.:100.00 3rd Qu.: 83.33 Max. :181.00 Max. :1 Max. :100.00 Max. :100.00 glmtheta rlmtheta lqstheta gamtheta Min. : 0.00 Min. : 0.00 Min. : 0.00 Min. : 0.00 1st Qu.: 33.33 1st Qu.: 33.33 1st Qu.: 16.67 1st Qu.: 33.33 Median : 50.00 Median : 50.00 Median : 50.00 Median : 50.00 Mean : 56.40 Mean : 55.18 Mean : 57.06 Mean : 56.40 3rd Qu.: 83.33 3rd Qu.: 83.33 3rd Qu.:100.00 3rd Qu.: 83.33 Max. :100.00 Max. :100.00 Max. :100.00 Max. :100.00 quantregtheta glmboosttheta Min. : 0.00 Min. : 0.00 1st Qu.: 16.67 1st Qu.: 33.33 Median : 50.00 Median : 50.00 Mean : 54.90 Mean : 56.40 3rd Qu.:100.00 3rd Qu.: 83.33 Max. :100.00 Max. :100.00 COVERAGE - QUARTERLY ----- series period theta glmnbtheta glmtheta Min. :182.0 Min. :4 Min. : 0.00 Min. : 0.00 Min. : 0.00 1st Qu.:231.0 1st Qu.:4 1st Qu.: 62.50 1st Qu.: 62.50 1st Qu.: 37.50 Median :282.0 Median :4 Median : 87.50 Median : 87.50 Median : 75.00 Mean :281.8 Mean :4 Mean : 74.24 Mean : 77.09 Mean : 67.83 3rd Qu.:331.0 3rd Qu.:4 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 Max. :384.0 Max. :4 Max. :100.00 Max. :100.00 Max. :100.00 rlmtheta lqstheta gamtheta quantregtheta Min. : 0.00 Min. : 0.00 Min. : 0.00 Min. : 0.00 1st Qu.: 37.50 1st Qu.: 37.50 1st Qu.: 37.50 1st Qu.: 37.50 Median : 75.00 Median : 75.00 Median : 75.00 Median : 75.00 Mean : 66.94 Mean : 64.97 Mean : 67.83 Mean : 66.31 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 Max. :100.00 Max. :100.00 Max. :100.00 Max. :100.00 glmboosttheta Min. : 0.00 1st Qu.: 37.50 Median : 75.00 Mean : 67.83 3rd Qu.:100.00 Max. :100.00 COVERAGE - MONTHLY ----- series period theta glmnbtheta Min. : 385 Min. :12 Min. : 0.00 Min. : 5.556 1st Qu.: 539 1st Qu.:12 1st Qu.: 83.33 1st Qu.: 66.667 Median : 693 Median :12 Median : 94.44 Median : 88.889 Mean : 693 Mean :12 Mean : 86.50 Mean : 80.146 3rd Qu.: 847 3rd Qu.:12 3rd Qu.:100.00 3rd Qu.:100.000 Max. :1001 Max. :12 Max. :100.00 Max. :100.000 glmtheta rlmtheta lqstheta gamtheta Min. : 5.556 Min. : 0.00 Min. : 0.00 Min. : 5.556 1st Qu.: 61.111 1st Qu.: 61.11 1st Qu.: 61.11 1st Qu.: 61.111 Median : 83.333 Median : 83.33 Median : 83.33 Median : 83.333 Mean : 77.220 Mean : 77.45 Mean : 76.24 Mean : 77.220 3rd Qu.:100.000 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.000 Max. :100.000 Max. :100.00 Max. :100.00 Max. :100.000 quantregtheta glmboosttheta Min. : 0.00 Min. : 5.556 1st Qu.: 66.67 1st Qu.: 61.111 Median : 88.89 Median : 83.333 Mean : 77.20 Mean : 77.220 3rd Qu.:100.00 3rd Qu.:100.000 Max. :100.00 Max. :100.000 WINKLER - YEARLY ----- series period theta glmnbtheta Min. : 1.00 Min. :1 Min. : 0 Min. : 0 1st Qu.: 45.00 1st Qu.:1 1st Qu.: 94 1st Qu.: 138 Median : 89.00 Median :1 Median : 2524 Median : 4572 Mean : 89.81 Mean :1 Mean : 2825772 Mean : 2625047 3rd Qu.:135.00 3rd Qu.:1 3rd Qu.: 52463 3rd Qu.: 103077 Max. :181.00 Max. :1 Max. :363721233 Max. :292512406 glmtheta rlmtheta lqstheta Min. : 1 Min. : 1 Min. : 0 1st Qu.: 80 1st Qu.: 84 1st Qu.: 118 Median : 2545 Median : 2545 Median : 1988 Mean : 2478384 Mean : 2449829 Mean : 2966028 3rd Qu.: 67371 3rd Qu.: 73562 3rd Qu.: 99765 Max. :272681766 Max. :266401330 Max. :250335398 gamtheta quantregtheta glmboosttheta Min. : 1 Min. : 0 Min. : 1 1st Qu.: 80 1st Qu.: 98 1st Qu.: 80 Median : 2545 Median : 2052 Median : 2546 Mean : 2478384 Mean : 2501609 Mean : 2478381 3rd Qu.: 67371 3rd Qu.: 72881 3rd Qu.: 67371 Max. :272681766 Max. :256611668 Max. :272682043 WINKLER - QUARTERLY ----- series period theta glmnbtheta Min. :182.0 Min. :4 Min. : 0.1 Min. : 0.2 1st Qu.:231.0 1st Qu.:4 1st Qu.: 29.9 1st Qu.: 44.1 Median :282.0 Median :4 Median : 161.0 Median : 168.8 Mean :281.8 Mean :4 Mean : 16183.1 Mean : 17696.5 3rd Qu.:331.0 3rd Qu.:4 3rd Qu.: 2614.2 3rd Qu.: 2741.3 Max. :384.0 Max. :4 Max. :558932.9 Max. :648026.8 glmtheta rlmtheta lqstheta gamtheta Min. : 0.2 Min. : 0.2 Min. : 0.2 Min. : 0.2 1st Qu.: 71.6 1st Qu.: 75.2 1st Qu.: 82.3 1st Qu.: 71.6 Median : 244.4 Median : 254.6 Median : 252.7 Median : 244.4 Mean : 16607.8 Mean : 16945.3 Mean : 29875.9 Mean : 16607.8 3rd Qu.: 2168.3 3rd Qu.: 2686.1 3rd Qu.: 2491.8 3rd Qu.: 2168.3 Max. :619354.8 Max. :593478.7 Max. :1938535.2 Max. :619354.8 quantregtheta glmboosttheta Min. : 0.2 Min. : 0.2 1st Qu.: 73.4 1st Qu.: 71.6 Median : 260.7 Median : 244.3 Mean : 18923.8 Mean : 16607.8 3rd Qu.: 3340.1 3rd Qu.: 2168.3 Max. :598457.6 Max. :619355.6 WINKLER - MONTHLY ----- series period theta glmnbtheta Min. : 385 Min. :12 Min. : 0.1 Min. : 0.2 1st Qu.: 539 1st Qu.:12 1st Qu.: 39.7 1st Qu.: 47.8 Median : 693 Median :12 Median : 286.6 Median : 403.2 Mean : 693 Mean :12 Mean : 15275.0 Mean : 14985.3 3rd Qu.: 847 3rd Qu.:12 3rd Qu.: 2956.9 3rd Qu.: 3832.6 Max. :1001 Max. :12 Max. :3159077.6 Max. :2662241.0 glmtheta rlmtheta lqstheta gamtheta Min. : 0 Min. : 0 Min. : 0 Min. : 0 1st Qu.: 57 1st Qu.: 58 1st Qu.: 60 1st Qu.: 57 Median : 474 Median : 473 Median : 546 Median : 474 Mean : 35530 Mean : 34776 Mean : 46968 Mean : 35530 3rd Qu.: 4202 3rd Qu.: 4181 3rd Qu.: 4098 3rd Qu.: 4202 Max. :13125821 Max. :12816589 Max. :19791829 Max. :13125821 quantregtheta glmboosttheta Min. : 0 Min. : 0 1st Qu.: 61 1st Qu.: 57 Median : 450 Median : 474 Mean : 27957 Mean : 35529 3rd Qu.: 3920 3rd Qu.: 4202 Max. :8714877 Max. :13125496
1 - 4 M4 Yearly
%%R library(M4comp2018) M4Yearly <- Filter(function(l) l$period == "Yearly", M4) # Load necessary libraries library(doSNOW) library(tcltk) require(Mcomp) nseries <- length(M4Yearly) # Set up parallel backend cl <- makeSOCKcluster(parallel::detectCores()) # Use 2 cores (adjust as needed) registerDoSNOW(cl) # Define progress bar pb <- txtProgressBar(min = 0, max = nseries, style = 3) # Progress function progress <- function(n) setTxtProgressBar(pb, n) # Options for progress tracking opts <- list(progress = progress) pb <- utils::txtProgressBar(min=0, max=nseries, style = 3) (M4results <- foreach::foreach(i = 1:nseries, .combine = rbind, .errorhandling = "remove", .verbose=FALSE, .options.snow = opts)%dopar%{ x <- M4Yearly[[i]]$x xx <- M4Yearly[[i]]$xx h <- length(xx) obj <- suppressWarnings(thetaf(x, h=h, level=95)) res1 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=MASS::glm.nb, attention = TRUE)) res2 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=stats::glm, attention = TRUE)) res3 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=MASS::rlm, attention = TRUE)) res4 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=MASS::lqs, attention = TRUE)) res5 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=gam::gam, attention = TRUE)) res6 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=quantreg::rq, attention = TRUE)) res7 <- accuracy(obj, xx) obj <- suppressWarnings(glmthetaf(x, h=h, fit_func=mboost::glmboost, attention = TRUE)) res8 <- accuracy(obj, xx) utils::setTxtProgressBar(pb, i) res <- cbind(i, res1, res2, res3, res4, res5, res6, res7, res8) colnames(res) <- c("series", "theta", "glmnbtheta", "glmtheta", "rlmtheta", "lqstheta", "gamtheta", "quantregtheta", "glmboosttheta") res }) close(pb) M4results <- data.frame(M4results) print(head(M4results)) print(tail(M4results)) print(dim(M4results)) base::saveRDS(M4results, "results_M4.rds") %%R print(summary(subset(M4results[grep("mase", rownames(M4results)), ]))) from IPython.display import FileLink # Create a download link for the file FileLink('results_M4.rds') %%R results_M4Yearly <- readRDS("results_M4.rds") cat("\n\n MASE - YEARLY ----- \n\n") print(summary(results_M4Yearly[grep("mase", rownames(results_M4Yearly)), ])) cat("\n\n RMSE - YEARLY ----- \n\n") print(summary(results_M4Yearly[grep("rmse", rownames(results_M4Yearly)), ])) cat("\n\n COVERAGE - YEARLY ----- \n\n") print(summary(results_M4Yearly[grep("coverage", rownames(results_M4Yearly)), ])) cat("\n\n WINKLER - YEARLY ----- \n\n") print(summary(results_M4Yearly[grep("winkler", rownames(results_M4Yearly)), ])) MASE - YEARLY ----- series theta glmnbtheta glmtheta Min. : 1 Min. : 0.03825 Min. : 0.08616 Min. : 0.05602 1st Qu.: 5750 1st Qu.: 1.24816 1st Qu.: 1.57047 1st Qu.: 1.25346 Median :11498 Median : 2.31134 Median : 2.95540 Median : 2.20297 Mean :11499 Mean : 3.37253 Mean : 3.98933 Mean : 3.08111 3rd Qu.:17246 3rd Qu.: 4.20756 3rd Qu.: 5.11213 3rd Qu.: 3.83220 Max. :23000 Max. :52.23208 Max. :53.45190 Max. :52.33301 rlmtheta lqstheta gamtheta quantregtheta Min. : 0.01779 Min. : 0.04004 Min. : 0.05602 Min. : 0.01118 1st Qu.: 1.24618 1st Qu.: 1.30599 1st Qu.: 1.25346 1st Qu.: 1.26680 Median : 2.20604 Median : 2.35514 Median : 2.20297 Median : 2.25031 Mean : 3.08741 Mean : 3.28814 Mean : 3.08111 Mean : 3.13130 3rd Qu.: 3.83867 3rd Qu.: 4.09708 3rd Qu.: 3.83220 3rd Qu.: 3.89659 Max. :52.68334 Max. :51.94242 Max. :52.33301 Max. :52.45575 glmboosttheta Min. : 0.05602 1st Qu.: 1.25324 Median : 2.20283 Mean : 3.08085 3rd Qu.: 3.83188 Max. :52.33302 NA's :4 RMSE - YEARLY ----- series theta glmnbtheta glmtheta Min. : 1 Min. : 1.72 Min. : 4.94 Min. : 2.12 1st Qu.: 5750 1st Qu.: 200.02 1st Qu.: 264.62 1st Qu.: 189.72 Median :11498 Median : 499.14 Median : 614.67 Median : 457.67 Mean :11499 Mean : 1021.30 Mean : 1159.17 Mean : 995.90 3rd Qu.:17246 3rd Qu.: 1211.77 3rd Qu.: 1412.04 3rd Qu.: 1121.98 Max. :23000 Max. :34316.38 Max. :34391.85 Max. :35284.94 rlmtheta lqstheta gamtheta quantregtheta Min. : 0.69 Min. : 1.27 Min. : 2.12 Min. : 0.48 1st Qu.: 189.85 1st Qu.: 199.59 1st Qu.: 189.72 1st Qu.: 191.53 Median : 457.02 Median : 479.90 Median : 457.67 Median : 462.37 Mean : 994.38 Mean : 1056.00 Mean : 995.90 Mean : 1010.53 3rd Qu.: 1117.41 3rd Qu.: 1182.88 3rd Qu.: 1121.98 3rd Qu.: 1128.71 Max. :34141.46 Max. :41798.59 Max. :35284.94 Max. :32639.88 glmboosttheta Min. : 2.12 1st Qu.: 189.73 Median : 457.76 Mean : 996.01 3rd Qu.: 1122.19 Max. :35284.45 NA's :4 COVERAGE - YEARLY ----- series theta glmnbtheta glmtheta Min. : 1 Min. : 0.00 Min. : 0.00 Min. : 0.00 1st Qu.: 5750 1st Qu.: 66.67 1st Qu.: 50.00 1st Qu.: 50.00 Median :11498 Median :100.00 Median :100.00 Median :100.00 Mean :11499 Mean : 78.74 Mean : 76.19 Mean : 74.67 3rd Qu.:17246 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 Max. :23000 Max. :100.00 Max. :100.00 Max. :100.00 rlmtheta lqstheta gamtheta quantregtheta Min. : 0.00 Min. : 0.00 Min. : 0.00 Min. : 0.00 1st Qu.: 50.00 1st Qu.: 50.00 1st Qu.: 50.00 1st Qu.: 50.00 Median :100.00 Median :100.00 Median :100.00 Median :100.00 Mean : 74.66 Mean : 73.06 Mean : 74.67 Mean : 73.99 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 3rd Qu.:100.00 Max. :100.00 Max. :100.00 Max. :100.00 Max. :100.00 glmboosttheta Min. : 0.00 1st Qu.: 50.00 Median :100.00 Mean : 74.68 3rd Qu.:100.00 Max. :100.00 NA's :4 WINKLER - YEARLY ----- series theta glmnbtheta glmtheta Min. : 1 Min. : 48.2 Min. : 36.4 Min. : 38.1 1st Qu.: 5750 1st Qu.: 1125.6 1st Qu.: 1689.0 1st Qu.: 1293.0 Median :11498 Median : 2823.9 Median : 4013.1 Median : 3349.8 Mean :11499 Mean : 11418.0 Mean : 12791.4 Mean : 12283.2 3rd Qu.:17246 3rd Qu.: 8017.8 3rd Qu.: 10444.7 3rd Qu.: 9313.3 Max. :23000 Max. :886227.6 Max. :938877.6 Max. :930890.3 rlmtheta lqstheta gamtheta quantregtheta Min. : 37.7 Min. : 23.6 Min. : 38.1 Min. : 35.3 1st Qu.: 1300.0 1st Qu.: 1418.7 1st Qu.: 1293.0 1st Qu.: 1331.0 Median : 3370.7 Median : 3686.6 Median : 3349.8 Median : 3470.1 Mean : 12298.1 Mean : 13778.0 Mean : 12283.2 Mean : 12656.4 3rd Qu.: 9311.0 3rd Qu.: 10250.2 3rd Qu.: 9313.3 3rd Qu.: 9559.5 Max. :938995.6 Max. :1336459.5 Max. :930890.3 Max. :933935.2 glmboosttheta Min. : 38.1 1st Qu.: 1292.6 Median : 3349.9 Mean : 12284.5 3rd Qu.: 9313.4 Max. :930890.5 NA's :4
To leave a comment for the author, please follow the link and comment on their blog: T. Moudiki's Webpage - R.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.