Impulse Response Function
Computes the impulse response coefficients of an object of class "bvar"
for
n.ahead
steps.
A plot function for objects of class "bvarirf".
irf( x, impulse = NULL, response = NULL, n.ahead = 5, ci = 0.95, type = "feir", cumulative = FALSE, keep_draws = FALSE ) ## S3 method for class 'bvarirf' plot(x, ...)
x |
an object of class "bvarirf", usually, a result of a call to |
impulse |
name of the impulse variable. |
response |
name of the response variable. |
n.ahead |
number of steps ahead. |
ci |
a numeric between 0 and 1 specifying the probability mass covered by the credible intervals. Defaults to 0.95. |
type |
type of the impulse resoponse. Possible choices are forecast error |
cumulative |
logical specifying whether a cumulative IRF should be calculated. |
keep_draws |
logical specifying whether the function should return all draws of
the posterior impulse response function. Defaults to |
... |
further graphical parameters. |
The function produces different types of impulse responses for the VAR model
A_0 y_t = ∑_{i = 1}^{p} A_{i} y_{t-i} + u_t,
with u_t \sim N(0, Σ).
Forecast error impulse responses Φ_i are obtained by recursions
Φ_i = ∑_{j = 1}^{i} Φ_{i-j} A_j, i = 1, 2,...,h
with Φ_0 = I_K.
Orthogonalised impulse responses Θ^o_i are calculated as Θ^o_i = Φ_i P, where P is the lower triangular Choleski decomposition of Σ.
Structural impulse responses Θ^s_i are calculated as Θ^s_i = Φ_i A_0^{-1}.
(Structural) Generalised impulse responses for variable j, i.e. Θ^g_ji are calculated as
Θ^g_{ji} = σ_{jj}^{-1/2} Φ_i A_0^{-1} Σ e_j, where σ_{jj} is the variance
of the j^{th} diagonal element of Σ and e_i is a selection vector containing
one in its j^{th} element and zero otherwise. If the "bvar"
object does not contain draws
of A_0, it is assumed to be an identity matrix.
A time-series object of class "bvarirf"
and if keep_draws = TRUE
a simple matrix.
Lütkepohl, H. (2006). New introduction to multiple time series analysis (2nd ed.). Berlin: Springer.
Pesaran, H. H., Shin, Y. (1998). Generalized impulse response analysis in linear multivariate models. Economics Letters, 58, 17-29.
# Load data data("e1") e1 <- diff(log(e1)) * 100 # Generate model data model <- gen_var(e1, p = 2, deterministic = 2, iterations = 100, burnin = 10) # Chosen number of iterations and burnin should be much higher. # Add prior specifications model <- add_priors(model) # Obtain posterior draws object <- draw_posterior(model) # Obtain IR ir <- irf(object, impulse = "invest", response = "cons") # Plot IR plot(ir) # Load data data("e1") e1 <- diff(log(e1)) * 100 # Generate model data model <- gen_var(e1, p = 2, deterministic = 2, iterations = 100, burnin = 10) # Number of iterations and burnin should be much higher. # Add prior specifications model <- add_priors(model) # Optain posterior draws object <- draw_posterior(model) # Calculate IR ir <- irf(object, impulse = "invest", response = "cons") # Plot IR plot(ir)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.