through

through(idx, horizons, order) --> Q

All paths must go through variables in idx in periods horizons. Note, this uses the dynamic system notation y such that idx refers to the index of the variable in the original dynamic system, i.e. in the SVARMA.

Arguments

For the single variable version:

  • idx::Int: Index of variable through which the paths should go. This is the original index in the dynamic system, e.g. the SVAR, before applying the transmission matrix.
  • horizons::AbstractVector{<:Int}: Horizons for which the paths must go through the variable.
  • order::AbstractVector{<:Int}: Variable ordering determined by the transmission matrix

For the multiple variable version:

  • idx::AbstractVector{<:Int}: Indices of variables through which the paths should go. These are the original indices in the dynamic system, e.g. the SVAR, before applying the transmission matrix.
  • horizons::Union{AbstractVector{<:Int},Vector{AbstractVector{<:Int}}}: Horizons for which the paths must go through the variable. Must either be a vector for each variable in idx or a single vector. If it is a single vector, then the horizons will be applied to each variable in idx.
  • order::AbstractVector{<:Int}: Variable ordering determined by the transmission matrix

Returns

  • Returns a transmission condition Q.

Notes

  • The transmission effect can be calculated using transmission.

Examples

Suppose we are interested in the contemporaneous channel in Section 5.1 of Wegner et al (2024), i.e. we are interested in the effect going through the federal funds rate contemporaneously. In our estimated model, the federal funds rate is the first variable. We would thus define the contemporaneous channe```{julia}s

contemporaneous_channel = through(1, [0], 1:4)  # we have four variables with ffr being first

More generally, we could define the following, which would be the effect through the federal funds rate in the first t```{julia}periods.

q = through(1, [0, 1], 1:4)

The following is also allowed which is the effect through the federal funds rate contemporaneously and one period later, and through the output gap contemporaneously and one period later, where the federal funds rate is ordered first and the ```{julia}put gap second.

q = through([1, 2], [[0, 1], [0, 1]], 1:4)

If we want to re-order the federal funds rate after the output gap, we simply change the ordering to [2, 1, 3, 4] where 2 corresponds to the output gap ```{julia}the original ordering.

q = through([1, 2], [[0, 1], [0, 1]], [2, 1, 3, 4])
through(
    model::Model, 
    variables::Union{AbstractVector{Symbol}, Symbol}, 
    horizons::Union{AbstractVector{<:Int},Vector{<:AbstractVector{<:Int}}}, 
    order::AbstractVector{Symbol}
) --> Q

Define a transmission channel through variables for horizons. Contrary to the other through methods, variables and order are defined using the variable names of the model – other through methods use indices.