soi_avg_est: Estimation of Average, Minimal, and Maximal Spillover Index

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/SOI_avg_est.r


Calculates an estimate of the average, the minimum, and the maximum spillover index based on different permutations.


soi_avg_est(Sigma, A, ncores = 1, ...)



Either a covariance matrix or a list thereof.


Either a 3-dimensional array with A[,,h] being MA coefficient matrices of the same dimension as Sigma or a list thereof.


Number of cores. Missing ncores or ncores=1 means no parallelization (just one core is used). ncores=0 means automatic detection of the number of available cores. Any other integer determines the maximal number of cores to be used.


Further arguments, especially perms which is used to reorder variables. If perms is missing, then 10.000 randomly created permutations of 1:N will be used as reorderings of the model variables. If perms is defined, it has to be either a matrix with each column being a permutation of 1:N, or, alternatively, an integer value defining the number of randomly created permutations.


The spillover index introduced by Diebold and Yilmaz (2009) (see References) depends on the ordering of the model variables. While soi_avg_exact provides a fast algorithm for exact calculation of average, minimum, and maximum of the spillover index over all permutations, there might be reasons to prefer to estimate these quantities using a limited number of permutations (mainly to save time when N is large). This is exactly what soi_avg_est does.

The typical application of the 'list' version of soi_avg_est is a rolling windows approach when Sigma and A are lists representing the corresponding quantities at different points in time (rolling windows).


The 'single' version returns a list containing the estimated average, minimal, and maximal spillover index as well as permutations that generated the minimal and maximal value. The 'list' version returns a list consisting of three vectors (the average, minimal, and maximal spillover index values) and two matrices (the columns of which are the permutations generating the minima and maxima).


Stefan Kloessner (,
with contributions by Sven Wagner (


[1] Diebold, F. X. and Yilmaz, K. (2009): Measuring financial asset return and volatitliy spillovers, with application to global equity markets, Economic Journal 199(534): 158-171.

[2] Kloessner, S. and Wagner, S. (2012): Exploring All VAR Orderings for Calculating Spillovers? Yes, We Can! - A Note on Diebold and Yilmaz (2009), Journal of Applied Econometrics 29(1): 172-179

See Also

fastSOM-package, soi_avg_exact


# generate randomly positive definite matrix Sigma of dimension N 
N <- 10
Sigma <- crossprod(matrix(rnorm(N*N),nrow=N)) 
# generate randomly coefficient matrices
H <- 10 
A <- array(rnorm(N*N*H),dim=c(N,N,H)) 
# calculate estimates of the average, minimal, 
# and maximal spillover index and determine the corresponding ordering
# of the model variables
soi_avg_est(Sigma, A) 

Example output

[1] 91.09991

[1] 87.78032

[1] 94.19889

 [1]  7  5  9  2  4 10  1  8  6  3

 [1]  1 10  3  9  6  4  5  7  2  8

fastSOM documentation built on Nov. 19, 2019, 5:08 p.m.