irf.bvar {bvartools} | R Documentation |
Impulse Response Function
Description
Computes the impulse response coefficients of an object of class "bvar"
for
n.ahead
steps.
Usage
## S3 method for class 'bvar'
irf(
x,
impulse = NULL,
response = NULL,
n.ahead = 5,
ci = 0.95,
shock = 1,
type = "feir",
cumulative = FALSE,
keep_draws = FALSE,
period = NULL,
...
)
Arguments
x |
an object of class |
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. |
shock |
size of the shock. |
type |
type of the impulse response. 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 |
period |
integer. Index of the period, for which the IR should be generated.
Only used for TVP or SV models. Default is |
... |
further arguments passed to or from other methods. |
Details
The function produces different types of impulse responses for the VAR model
with .
Forecast error impulse responses are obtained by recursions
with .
Orthogonalised impulse responses are calculated as
,
where P is the lower triangular Choleski decomposition of
.
Structural impulse responses are calculated as
.
(Structural) Generalised impulse responses for variable , i.e.
are calculated as
, where
is the variance
of the
diagonal element of
and
is a selection vector containing
one in its
element and zero otherwise. If the
"bvar"
object does not contain draws
of , it is assumed to be an identity matrix.
Value
A time-series object of class "bvarirf"
and if keep_draws = TRUE
a simple matrix.
References
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.
Examples
# 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)