Table of Contents


File

network_measures.m

Name

network_measures

Synopsis

network_measures - Using the adjacency matrix of inter-institutional Granger causal relationships, network measures of interconnectedness are calculated for all nodes based on Billio et al. (2010)

Introduction

NOTE: PART OF A SET OF 8 RELATED FILES:

To investigate the dynamic propagation of systemic risk, the authors measure the direction of the relationship between institutions using Granger causality. Specifically, the authors analyze the pairwise Granger causalities between the t and t + 1 monthly returns of 4 indexes [monthly returns of hedge funds, banks, brokers, and insurance companies]; see discussion in Bisias et al. (2012), section B.5.3, specifically around equations (A.16), for detailed discussion of how Granger causality is estimated.

The authors take a step further and apply the dynamic Granger-causality methodology to individual institutions. For a given 36-month window, they select the 25 largest institutions from each of the four categories as determined by average market capitalization over the period for banks, insurers, and brokers, and by average AUM for hedge funds. They then compute the "directional" network of these 100 institutions using Granger causalities. The following set of risk measures can then be computed for each institution:

  1. Number of "In" Connections: The number of financial institutions that significantly Granger-cause this financial institution.

  2. Number of "Out" Connections: The number of financial institutions that are significantly Granger-caused by this financial institution.

  3. Number of "In+Out" Connections: The sum of In and Out connections.

  4. Number of "In-from-Other" Connections: The number of other types of financial institutions that significantly Granger-cause this financial institution. For example, for a hedge fund, "other types" are banks, brokers, and insurers.

  5. Number of "Out-to-Other" Connections: The number of other types of financial institutions that are significantly Granger-caused by this financial institution.

  6. Number of "In+Out Other" Connections: The sum of "In-from-Other" and "Out-to-Other" connections.

  7. Closeness: The shortest path between a financial institution and all other financial institutions reachable from it, averaged across all other financial institutions.

  8. Eigenvector Centrality: For a network with n nodes, let A be the adjacency matrix, the (n x n) matrix of 0's and 1's in which the (i, j) element is 1 if there is a connection between nodes i and j, and 0 otherwise. The eigenvector centrality measure is the eigenvector corresponding to the largest eigenvalue of A.

License

=============================================================================

Copyright 2011, Dimitrios Bisias, Andrew W. Lo, and Stavros Valavanis

COPYRIGHT STATUS: This work was funded in whole or in part by the Office of Financial Research under U.S. Government contract TOSOFR-11-C-0001, and is, therefore, subject to the following license: The Government is granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license to reproduce, prepare derivative works, distribute copies to the public, perform and display the work.
All other rights are reserved by the copyright owner.

THIS SOFTWARE IS PROVIDED "AS IS". YOU ARE USING THIS SOFTWARE AT YOUR OWN RISK. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS, CONTRIBUTORS, OR THE UNITED STATES GOVERNMENT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

=============================================================================

Inputs

adjacency_matrix
Name:
adjacency_matrix
Description:

Adjacency matrix of the network indicating inter-institutional Granger causal relationships. It is generated as output arg connection_matrix from dynamic_causality_index.m. The matrix is need not be symmetric. Note: values are yes/no flags, represented as 1/0 values, respectively.

Type:
float
Range:
{0, 1}
Dimensions:

KxK matrix

  1. Rows represent institutions.
  2. Columns represent institutions.

groups
Name:
groups
Description:

A vector with node numbers that serve as delimiters between groups. E.g. group = [2 6] this means that there are 3 groups of nodes:

Type:
integer
Range:
{1,...,+inf}
Dimensions:

Px1 matrix

  1. P represents the number of separations between groups. Groups = P + 1.

Outputs

in_connections
Name:
in_connections
Description:

For each node the number of incoming links.

Type:
integer
Range:
{0, ..., +inf}
Dimensions:

Kx1 matrix

  1. Rows represent institutions.

out_connections
Name:
out_connections
Description:

For each node the number of outgoing links.

Type:
integer
Range:
{0, ..., +inf}
Dimensions:

Kx1 matrix

  1. Rows represent institutions.

in_out_connections
Name:
in_out_connections
Description:

For each node the sum of incoming and outgoing links.

Type:
integer
Range:
{0, ..., +inf}
Dimensions:

Kx1 matrix

  1. Rows represent institutions.

in_from_other
Name:
in_from_other
Description:

For each node the number of incoming links from nodes in different categories.

Type:
integer
Range:
{0, ..., +inf}
Dimensions:

Kx1 matrix

  1. Rows represent institutions.

out_to_other
Name:
out_to_other
Description:

For each node the number of outgoing links to nodes in different categories.

Type:
integer
Range:
{0, ..., +inf}
Dimensions:

Kx1 matrix

  1. Rows represent institutions.

in_out_other
Name:
in_out_other
Description:

For each node the sum of in_from_other and out_to_other.

Type:
integer
Range:
{0, ..., +inf}
Dimensions:

Kx1 matrix

  1. Rows represent institutions.

closeness
Name:
closeness
Description:

For each node the average shortest path length to reachable nodes.
This is calculated by calc_closeness.m which in turns calls dijkstra.m for actual calculations.

Type:
float
Range:
(0,+inf)
Dimensions:

Kx1 matrix

  1. Rows represent institutions.

eigenvector_centrality
Name:
eigenvector_centrality
Description:

The eigenvector centrality measure is the eigenvector corresponding to the largest eigenvalue of A.

Type:
float
Range:
(-1:+1)
Dimensions:

KxK matrix

  1. Rows represent institutions.
  2. Columns represent institutions.

Code

% Run warning message
warning('OFRwp0001:UntestedCode', ...
    ['This version of the source code is very preliminary, ' ...
     'and has not been thoroughly tested. Users should not rely on ' ...
     'these calculations.']);




num_nodes = size(adjacency_matrix,1);

in_connections = zeros(num_nodes,1);
out_connections = zeros(num_nodes,1);
in_out_connections = zeros(num_nodes,1);
in_from_other = zeros(num_nodes,1);
out_to_other = zeros(num_nodes,1);
in_out_other = zeros(num_nodes,1);
closeness = zeros(num_nodes,1);
eigenvector_centrality = zeros(num_nodes,1);

for j = 1:num_nodes
    in_connections(j) = sum(adjacency_matrix(:,j));
    out_connections(j) = sum(adjacency_matrix(j,:));
end

in_out_connections = in_connections + out_connections;


for j=1:num_nodes
    % Find the begin index and the end index where node j belongs to
    [begin_group end_group] = find_group_node(j,groups, num_nodes);
    in_from_other = in_connections(j) - sum(adjacency_matrix( ...
    begin_group:end_group, j));
    out_to_other = out_connections(j) - sum(adjacency_matrix( ...
    j,begin_group:end_group));
end

in_out_other = in_from_other + out_to_other;

for j=1:num_nodes
    closeness(j) = calc_closeness(adjacency_matrix, j);
end

[eigenvectors, eigenvalues] = eig(adjacency_matrix);
[vals ind] = sort(diag(eigenvalues))
eigenvector_centrality = eigenvectors(:,ind);

Examples

NOTE: Numbers used in the examples are arbitrary valid values.
They do not necessarily represent a realistic or plausible scenario.

 adjacency_matrix = ...
 [0, 0, 1, 0, 0;
 1, 0, 1, 0, 1;
 0, 0, 0, 1, 1;
 0, 0, 1, 0, 1;
 1, 1, 0, 1, 0];

 groups = [2,4];

 [in_connections, out_connections, in_out_connections, ...
 in_from_other, out_to_other, in_out_other, closeness, ...
 eigenvector_centrality] = network_measures(adjacency_matrix, groups);

References

Billio et al. (2010). Econometric measures of systemic risk in the finance and insurance sectors (No. w16223). National Bureau of Economic Research.

Bisias et al. (2012). A survey of systemic risk analytics (Working paper #0001). Washington, DC: Office of Financial Research, 65-69.