R: Impulse response function

irf {vars} | R Documentation

## 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`’; generated by `vec2var()`, or object of class ‘`svecest`’; generated by `SVEC()`.
`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.

### 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_{α/2}^*, s_{1 - α/2}^*] \quad ,

with s_{α/2}^* and s_{1 - α/2}^* are the α/2 and 1 - α/2 quantiles of the bootstrap distribution of Ψ^* or Φ^* depending whether `ortho = TRUE`. In case `cumulative = TRUE`, the confidence bands are calculated from the cumulated impulse response coefficients.

### Value

A list of class ‘`varirf`’ with the following elements is returned:

`irf` | A list with matrices for each of the impulse variables containing the impulse response coefficients.
`Lower` | If `boot = TRUE`, a list with matrices for each of the impulse variables containing the lower bands.
`Upper` | If `boot = TRUE`, a list with matrices for each of the impulse variables containing the upper bands.
`response` | Character vector holding the names of the response variables.
`impulse` | Character vector holding the names of the impulse variables.
`ortho` | Logical, if `TRUE`, orthogonalised impulse reponses have been computed.
`cumulative` | Logical, if `TRUE`, cumulated impulse reponses have been computed.
`runs` | An integer, specifying the number of bootstrap runs.
`ci` | Numeric, defining the confidence level.
`boot` | Logical, if `TRUE` bootstrapped error bands have been computed.
`model` | Character, containing ‘`class(x)`’.

### Author(s)

Bernhard Pfaff

### 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`, `vec2var`, `SVEC`, `Phi`, `Psi`, `plot`

### Examples

    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, estmethod = "direct", Amat = amat)
    irf(svar.a, impulse = "e", response = c("prod", "rw", "U"), boot =
    FALSE)

[Package vars version 1.5-3 Index]