select_and_forecast function

Create table for different forecast horizons

Create table for different forecast horizons

Creates tables for different forecast horizons and table for combined forecasts

select_and_forecast( formula, data, from, to, insample, outsample, weights, wstart, start = NULL, IC = "AIC", seltype = c("restricted", "unrestricted"), test = "hAh_test", ftype = c("fixed", "recursive", "rolling"), measures = c("MSE", "MAPE", "MASE"), fweights = c("EW", "BICW", "MSFE", "DMSFE"), ... )

Arguments

  • formula: initial formula for the
  • data: list of data
  • from: a named list of starts of lags from where to fit. Denotes the horizon
  • to: a named list for lag selections
  • insample: the low frequency indexes for in-sample data
  • outsample: the low frequency indexes for out-of-sample data
  • weights: names of weight function candidates
  • wstart: starting values for weight functions
  • start: other starting values
  • IC: name of information criteria to choose model from
  • seltype: argument to modsel, "restricted" for model selection based on information criteria of restricted MIDAS model, "unrestricted" for model selection based on unrestricted (U-MIDAS) model.
  • test: argument to modsel
  • ftype: which type of forecast to use.
  • measures: the names of goodness of fit measures
  • fweights: names of weighting schemes
  • ...: additional arguments for optimisation method, see midas_r

Returns

a list containing forecasts, tables of accuracy measures and the list with selected models

Details

Divide data into in-sample and out-of-sample. Fit different forecasting horizons for in-sample data. Calculate accuracy measures for individual and average forecasts.

Examples

### Sets a seed for RNG ### set.seed(1001) ## Number of low-frequency observations n<-250 ## Linear trend and higher-frequency explanatory variables (e.g. quarterly and monthly) trend<-c(1:n) x<-rnorm(4*n) z<-rnorm(12*n) ## Exponential Almon polynomial constraint-consistent coefficients fn.x <- nealmon(p=c(1,-0.5),d=8) fn.z <- nealmon(p=c(2,0.5,-0.1),d=17) ## Simulated low-frequency series (e.g. yearly) y<-2+0.1*trend+mls(x,0:7,4)%*%fn.x+mls(z,0:16,12)%*%fn.z+rnorm(n) ##Do not run ## cbfc<-select_and_forecast(y~trend+mls(x,0,4)+mls(z,0,12), ## from=list(x=c(4,8,12),z=c(12,24,36)), ## to=list(x=rbind(c(14,19),c(18,23),c(22,27)),z=rbind(c(22,27),c(34,39),c(46,51))), ## insample=1:200,outsample=201:250, ## weights=list(x=c("nealmon","almonp"),z=c("nealmon","almonp")), ## wstart=list(nealmon=rep(1,3),almonp=rep(1,3)), ## IC="AIC", ## seltype="restricted", ## ftype="fixed", ## measures=c("MSE","MAPE","MASE"), ## fweights=c("EW","BICW","MSFE","DMSFE") ## )

Author(s)

Virmantas Kvedaras, Vaidotas Zemlys

  • Maintainer: Vaidotas Zemlys-Balevičius
  • License: GPL-2 | MIT + file LICENCE
  • Last published: 2021-02-23