Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

predict.VAR

Predict method for objects of class ‘VAR’, ‘VECM’ or ‘TVAR’


Description

Forecating the level of a series estimated by ‘VAR’ / ‘VECM’ or ‘TVAR

Usage

## S3 method for class 'TVAR'
predict(object, newdata, n.ahead = 5, newdataTrendStart, ...)

## S3 method for class 'VAR'
predict(object, newdata, n.ahead = 5, newdataTrendStart,
  exoPred = NULL, ...)

Arguments

object

An object of class ‘VAR’, ‘VECM’ or ‘TVAR

newdata

Optional. A new data frame to predict from. This should contain lags of the level of the original series. See Details.

n.ahead

An integer specifying the number of forecast steps.

newdataTrendStart

If ‘newdata’ is provided by the user, and the estimated model includes a trend, this argument specifies where the trend should start

...

Arguments passed to the unexported ‘VAR.gen’ or ‘TVAR.gen’ function

exoPred

vector/matrix of predictions for the exogeneous variable(s) (with ‘n.ahead’ rows). Only for ‘VAR’/‘VECM’, not for ‘TVAR’.

Details

The forecasts are obtained recursively, and are for the levels of the series.

When providing newdata, newdata has to be ordered chronologically, so that the first row/element is the earliest value.

For VECM, the forecasts are obtained by transforming the VECM to a VAR (using function VARrep). Note that a VECM(lag=p) corresponds to a VAR(lag=p+1), so that if the user provides newdata for a VECM(lag=p), newdata should actually contain p+1 rows.

Value

A matrix of predicted values.

Author(s)

Matthieu Stigler

See Also

A more sophisticated predict function, allowing to do sub-sample rolling predictions: predict_rolling.

Examples

data(barry)
barry_in <- head(barry, -5)
barry_out <- tail(barry, 5)

mod_vecm <- VECM(barry_in, lag=2)
mod_var <- lineVar(barry_in, lag=3)
mod_tvar <- TVAR(barry_in, lag=3, nthresh=1, thDelay=1)

pred_vecm <- predict(mod_vecm)
pred_var  <- predict(mod_var) 
pred_tvar <- predict(mod_tvar)

 
## compare forecasts on a plot
n <- 30
plot(1:n, tail(barry[,1], n), type="l", xlim=c(0,n))
lines((n-5+1):n, pred_var[,1], lty=2, col=2)
lines((n-5+1):n, pred_vecm[,1], lty=2, col=3)
lines((n-5+1):n, pred_tvar[,1], lty=2, col=4) 
legend("bottomright", lty=c(1,2,2,2), col=1:4, legend=c("true", "var", "vecm", "tvar"))

## example for newdata:
all.equal(predict(mod_vecm), predict(mod_vecm, newdata=barry[c(317, 318, 319),]))

tsDyn

Nonlinear Time Series Models with Regime Switching

v10-1.2
GPL (>= 2)
Authors
Antonio Fabio Di Narzo [aut], Jose Luis Aznarte [ctb], Matthieu Stigler [aut], Ho Tsung-wu [cre]
Initial release
2020-02-04

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.