R/fevd.r

Defines functions gfevd

Documented in gfevd

#' @title generalized forecast error variance decomposition
#' @param Alpha nxnxp array of the VMA-coefficients
#' @param Sigma nxn matrix with the variance-covariance matrix
#' @param nhor horizon of the fevd
gfevd <- function(Alpha, Sigma, nhor){

  # preliminaries

  nVar <- dim(Sigma)[1]
  delta <- array(0,dim=c(nVar,nVar))

  # Calculate the generalized fevd

  for(ii in 1:nVar){

    # shock to variable ii

    ei <- matrix(0,nrow = 1,ncol=nVar)
    ei[1,ii] <- 1

    tsum2 <- 0

    for(hh in 1:nhor){

      tmp <- ei %*% Alpha[,,hh]  %*% Sigma %*% t(Alpha[,,hh]) %*% t(ei)
      tsum2 <- tsum2 + tmp

    }

    for(jj in 1:nVar){

      ej <-   matrix(0,nrow = 1,ncol=nVar)
      ej[1,jj] <- 1
      tsum <- 0

      for(hh in 1:nhor){

        tmp <- (ei %*% Alpha[,,hh] %*% t(ej))^2
        tsum <- tsum + tmp

      }

      delta[ii,jj] <- Sigma[ii,ii]^(-1) * tsum / tsum2

    }

  }

  return(delta)



}
joergrieger/bayesianConnectedness documentation built on July 31, 2019, 9:36 a.m.