GIRF {sstvars} | R Documentation |
Estimate generalized impulse response function for structural STVAR models.
Description
GIRF
estimates generalized impulse response function for
structural STVAR models.
Usage
GIRF(
stvar,
which_shocks,
shock_size = 1,
N = 30,
R1 = 250,
R2 = 250,
init_regime = 1,
init_values = NULL,
which_cumulative = numeric(0),
scale = NULL,
scale_type = c("instant", "peak"),
scale_horizon = N,
ci = c(0.95, 0.8),
ncores = 2,
burn_in = 1000,
exo_weights = NULL,
seeds = NULL,
use_parallel = TRUE
)
## S3 method for class 'girf'
plot(x, margs, ...)
## S3 method for class 'girf'
print(x, ..., digits = 2, N_to_print)
Arguments
stvar |
an object of class |
which_shocks |
a numeric vector of length at most |
shock_size |
a non-zero scalar value specifying the common size for all scalar components of the structural shock. Note that the conditional covariance matrix of the structural shock is normalized to an identity matrix and that the (generalized) impulse responses may not be symmetric with respect to the sign and size of the shock. |
N |
a positive integer specifying the horizon how far ahead should the generalized impulse responses be calculated. |
R1 |
the number of repetitions used to estimate GIRF for each initial value. |
R2 |
the number of initial values to use, i.e., to draw from |
init_regime |
an integer in |
init_values |
a size |
which_cumulative |
a numeric vector with values in |
scale |
should the GIRFs to some of the shocks be scaled so that they
correspond to a specific magnitude of instantaneous or peak response
of some specific variable (see the argument |
scale_type |
If argument |
scale_horizon |
If |
ci |
a numeric vector with elements in |
ncores |
the number CPU cores to be used in parallel computing. Only single core computing is supported if an initial value is specified (and the GIRF won't thus be estimated multiple times). |
burn_in |
Burn-in period for simulating initial values from a regime when |
exo_weights |
if |
seeds |
a length |
use_parallel |
employ parallel computing? If |
x |
object of class |
margs |
numeric vector of length four that adjusts the
|
... |
graphical parameters passed to |
digits |
the number of decimals to print |
N_to_print |
an integer specifying the horizon how far to print the estimates and confidence intervals. The default is that all the values are printed. |
Details
The confidence bounds reflect uncertainty about the initial state (but not about the parameter estimates) if initial values are not specified. If initial values are specified, confidence intervals won't be estimated.
Note that if the argument scale
is used, the scaled responses of
the transition weights might be more than one in absolute value.
If weight_function="exogenous"
, exogenous transition weights used in
the Monte Carlo simulations for the future sample paths of the process must
the given in the argument exo_weights
. The same weights are used as
the transition weights across the Monte Carlo repetitions.
Value
Returns a class 'girf'
list with the GIRFs in the first
element ($girf_res
) and the used arguments the rest. The first
element containing the GIRFs is a list with the m
th element
containing the point estimates for the GIRF in $point_est
(the first
element) and confidence intervals in $conf_ints
(the second
element). The first row is for the GIRF at impact (n=0)
, the second
for n=1
, the third for n=2
, and so on.
The element $all_girfs
is a list containing results from all the individual GIRFs
obtained from the MC repetitions. Each element is for one shock and results are in
array of the form [horizon, variables, MC-repetitions]
.
Functions
-
plot(girf)
: plot method -
print(girf)
: print method
See Also
Kilian L., Lütkepohl H. 20017. Structural Vector Autoregressive Analysis. 1st edition. Cambridge University Press, Cambridge.
Examples
# These are long-running examples that use parallel computing.
# It takes approximately 30 seconds to run all the below examples.
# Note that larger R1 and R2 should be used for more reliable results;
# small R1 and R2 are used here to shorten the estimation time.
# Recursively identified logistic Student's t STVAR(p=3, M=2) model with the first
# lag of the second variable as the switching variable:
params32logt <- c(0.5959, 0.0447, 2.6279, 0.2897, 0.2837, 0.0504, -0.2188, 0.4008,
0.3128, 0.0271, -0.1194, 0.1559, -0.0972, 0.0082, -0.1118, 0.2391, 0.164, -0.0363,
-1.073, 0.6759, 3e-04, 0.0069, 0.4271, 0.0533, -0.0498, 0.0355, -0.4686, 0.0812,
0.3368, 0.0035, 0.0325, 1.2289, -0.047, 0.1666, 1.2067, 7.2392, 11.6091)
mod32logt <- STVAR(gdpdef, p=3, M=2, params=params32logt, weight_function="logistic",
weightfun_pars=c(2, 1), cond_dist="Student", identification="recursive")
# GIRF for one-standard-error positive structural shocks, N=30 steps ahead,
# with the inital values drawn from the first regime.
girf1 <- GIRF(mod32logt, which_shocks=1:2, shock_size=1, N=30, R1=50, R2=50,
init_regime=2)
print(girf1) # Print the results
plot(girf1) # Plot the GIRFs
# GIRF for one-standard-error positive structural shocks, N=30 steps ahead,
# with the inital values drawn from the second regime. The responses of the
# GDP and GDP deflator growth rates are accumulated.
girf2 <- GIRF(mod32logt, which_shocks=1:2, which_cumulative=1:2, shock_size=1,
N=30, R1=50, R2=50, init_regime=2)
plot(girf2) # Plot the GIRFs
# GIRF for two-standard-error negative structural shock - the first shock only.
# N=50 steps ahead with the inital values drawn from the first regime. The responses
# are scaled to correspond an instantanous increase of 0.5 of the first variable.
girf3 <- GIRF(mod32logt, which_shocks=1, shock_size=-2, N=50, R1=50, R2=50,
init_regime=1, scale_type="instant", scale=c(1, 1, 0.5))
plot(girf3) # Plot the GIRFs