Learn R Programming

vars (version 1.1-9)

irf: Impulse response function

Description

Computes the impulse response coefficients of a VAR(p) (or transformed VECM to VAR(p)) or a SVAR for n.ahead steps.

Usage

## S3 method for class 'varest':
irf(x, impulse = NULL, response = NULL, n.ahead = 10,
ortho = TRUE, cumulative = FALSE, boot = TRUE, ci = 0.95,
runs = 100, seed = NULL, ...)
## S3 method for class 'svarest':
irf(x, impulse = NULL, response = NULL, n.ahead = 10,
ortho = TRUE, cumulative = FALSE, boot = TRUE, ci = 0.95,
runs = 100, seed = NULL, ...)
## S3 method for class 'vec2var':
irf(x, impulse = NULL, response = NULL, n.ahead = 10,
ortho = TRUE, cumulative = FALSE, boot = TRUE, ci = 0.95,
runs = 100, seed = NULL, ...)
## S3 method for class 'svecest':
irf(x, impulse = NULL, response = NULL, n.ahead = 10,
ortho = TRUE, cumulative = FALSE, boot = TRUE, ci = 0.95,
runs = 100, seed = NULL, ...)

Arguments

x
Object of class varest; generated by VAR(), or object of class svarest; generated by SVAR(), or object of class vec2var
impulse
A character vector of the impulses, default is all variables.
response
A character vector of the responses, default is all variables.
n.ahead
Integer specifying the steps.
ortho
Logical, if TRUE (the default) the orthogonalised impulse response coefficients are computed (only for objects of class varest).
cumulative
Logical, if TRUE the cumulated impulse response coefficients are computed. The default value is false.
boot
Logical, if TRUE (the default) bootstrapped error bands for the imuplse response coefficients are computed.
ci
Numeric, the confidence interval for the bootstrapped errors bands.
runs
An integer, specifying the runs for the bootstrap.
seed
An integer, specifying the seed for the rng of the bootstrap.
...
Currently not used.

Value

  • A list of class varirf with the following elements is returned:
  • irfA list with matrices for each of the impulse variables containing the impulse response coefficients.
  • LowerIf boot = TRUE, a list with matrices for each of the impulse variables containing the lower bands.
  • UpperIf boot = TRUE, a list with matrices for each of the impulse variables containing the upper bands.
  • responseCharacter vector holding the names of the response variables.
  • impulseCharacter vector holding the names of the impulse variables.
  • orthoLogical, if TRUE, orthogonalised impulse reponses have been computed.
  • cumulativeLogical, if TRUE, cumulated impulse reponses have been computed.
  • runsAn integer, specifying the number of bootstrap runs.
  • ciNumeric, defining the confidence level.
  • bootLogical, if TRUE bootstrapped error bands have been computed.
  • modelCharacter, containing class(x).

encoding

latin1

concept

  • VAR
  • SVAR
  • Vector autoregressive model
  • Structural vector autoregressive model
  • irf
  • impulse response function
  • VECM

Details

The impulse response coefficients of a VAR(p) for n.ahead steps are computed by utilising either the function Phi() or Psi(). If boot = TRUE (the default), confidence bands for a given width specified by ci are derived from runs bootstrap. Hereby, it is at the users leisure to set a seed for the random number generator. The standard percentile interval is defined as: $$CI_s = [s_{\alpha/2}^*, s_{1 - \alpha/2}^*] \quad ,$$ with $s_{\alpha/2}^*$ and $s_{1 - \alpha/2}^*$ are the $\alpha/2$ and $1 - \alpha/2$ quantiles of the bootstrap distribution of $\Psi^*$ or $\Phi^*$ depending whether ortho = TRUE. In case cumulative = TRUE, the confidence bands are calculated from the cumulated impulse response coefficients.

References

Efron, B. and R. J. Tibshirani (1993), An Introduction to the Bootstrap, Chapman & Hall, New York. Hamilton, J. (1994), Time Series Analysis, Princeton University Press, Princeton. L�tkepohl, H. (2006), New Introduction to Multiple Time Series Analysis, Springer, New York.

See Also

VAR, SVAR, SVAR2, vec2var, SVEC, Phi, Psi, plot

Examples

Run this code
data(Canada)
## For VAR
var.2c <- VAR(Canada, p = 2, type = "const")
irf(var.2c, impulse = "e", response = c("prod", "rw", "U"), boot =
FALSE)
## For SVAR
amat <- diag(4)
diag(amat) <- NA
svar.a <- SVAR(var.2c, Amat = amat)
irf(svar.a, impulse = "e", response = c("prod", "rw", "U"), boot =
FALSE)

Run the code above in your browser using DataLab