config-i1 / legion

Multivariate models for forecasting purposes
9 stars 2 forks source link

Prediction intervals for ves() and vets() #8

Open config-i1 opened 3 years ago

config-i1 commented 3 years ago

In the best case these should include:

  1. "conditional" - elliptic intervals for each j. These are correct, but are very hard to evaluate and return. Their usefulness is questionable.
  2. "unconditional" - rectangular regions for each separate series for each j=1,..,h. These are just projections of the max and min values of ellipses on separate axes. These are incorrect but could be useful;
  3. "independent" - assuming independence between series and based on variances for each separate series. These are even less correct than (2), but still useful. The simplest one is (3). It is already available in ves() and vets(). The hardest one is (1).

One of the options - produce general class from ves() / vets() and create functions that would extract and plot things. For example:

ourModel <- ves(Y, intervals="conditional", level=0.95)
plotEllipse(ourModel, h=1)

ourModel$bounds would contain matrix with upper and lower bounds of y_1, y_2, y_3 etc conditional on a value of y_k (could be a large matrix). In case with "unconditional" or "independent" this thing would simplify to a matrix with one row. plotEllipse() function would plot all the ellipses for h=1.

config-i1 commented 3 years ago

Other options to implement after these ones:

  1. "simulated" - simulate data, get "individual" intervals;
  2. "semiparametric" - use rmultistep(), get errors, estimate Sigma, get "individual" intervals;
  3. "nonparametric" - use rmultistep(), get errors, use Taylor & Bunn quantile regression, generate "individual" intervals;