34
Financial Networks 2. Fundamentals of Network Theory and FNA Dr. Kimmo Soramäki Founder and CEO FNA, www.fna.fi Center for Financial Studies at the Goethe University PhD Mini-course Frankfurt, 25 January 2013

Financial Networks: II. Fundamentals of Network Theory and FNA

Embed Size (px)

DESCRIPTION

Second lecture of a PhD level course on "Financial Networks" at Center for Financial Research at Goethe University, Frankfurt.

Citation preview

Page 1: Financial Networks: II. Fundamentals of Network Theory and FNA

Financial Networks

2. Fundamentals of NetworkTheory and FNA

Dr. Kimmo SoramäkiFounder and CEOFNA, www.fna.fi

Center for Financial Studies at the Goethe UniversityPhD Mini-course Frankfurt, 25 January 2013

Page 2: Financial Networks: II. Fundamentals of Network Theory and FNA

www.fna.fi

FNA

Page 3: Financial Networks: II. Fundamentals of Network Theory and FNA

3

FNA Platform

• Go to www.fna.fi

• Register account (click login on top right)

• Watch ‘Getting started with FNA’ video

• More documentation available at www.fna.fi/gettingstarted

Page 4: Financial Networks: II. Fundamentals of Network Theory and FNA

4

FNA Commands

• FNA operates on commands that are submitted to FNA server for execution. Commands explore the database, alter it or create visualizations from it

• Command syntax:

commandname –parameter1 value1 –parameter2 value2 …

e.g.

loada -file sample-arcs.csv -preserve false

(load arcs from sample-arcs.csv file and don’t preserve any existing networks in database)

• Each command is on a single line. Character # marks a comment line

• Commands can be bundled into scripts and executed in one go

Page 5: Financial Networks: II. Fundamentals of Network Theory and FNA

5

Data Model

loada -file sample-arcs.csv -preserve false

network,source,target,value2005-1Q,Australia,Austria,4992005-1Q,Australia,Belgium,11352005-1Q,Australia,Canada,1884...

sample-arcs.csv

vertex_id : Australia

vertex_id : Austria

vertex_id : Belgium

vertex_id : Canada

arc_id : Australia-Austriavalue : 499

net_id : 2005-1Q

Stores the data into a graph database on FNA Server

Page 6: Financial Networks: II. Fundamentals of Network Theory and FNA

6

Basic terms

• Graph• Network = Graph with properties

• Node, Vertex, (Point)

• Link, (Line)• Arc = Directed Link• Edge = Undirected Link

Page 7: Financial Networks: II. Fundamentals of Network Theory and FNA

7

Types of Networks

Page 8: Financial Networks: II. Fundamentals of Network Theory and FNA

Trivial Graph (1)

#G(V,E) = Trivial Graph

#V = {1}#E = {empty set}

# Add network ‘Trivial' to database. addn -n Trivial -preserve false

# Add vertex v1 to network ‘Trivial' .addv -id Trivial -v v1

# Visualize network ‘Trivial'.viz -id Trivial -vlabel vertex_id -vsizedefault 10 -fontsize 25 -saveas TrivialViz -scale 1

Page 9: Financial Networks: II. Fundamentals of Network Theory and FNA

Empty Graph (2)

# G(V,E) = Empty Graph

# V = {1, 2, 3, 4}# E = {empty set}

# Add network ‘Empty' to database. # The -preserve parameter defines whethe to keep # existing networks in memory or to delete them addn -n Empty -preserve false

# Add vertices v1 to v4 to network ‘Empty' .addv -id Empty -v v1 addv -id Empty -v v2addv -id Empty -v v3 addv -id Empty -v v4

# Visualize network ‘Empty' . Add vertex names using -vlabel and change the font size of these labels using -fontsize. Set size of vertices to size 10 using -vsizedefault.

viz -id Empty -vlabel vertex_id -vsizedefault 10 -fontsize 25 -saveas EmptyViz

Page 10: Financial Networks: II. Fundamentals of Network Theory and FNA

Simple Undirected Graph (3)

# G(V,E) = Simple Graph

# V = {1, 2, 3, 4}# E = {(1,2),(1,3),(2,3),(2,4),(3,4)}

# Add network ‘Simple' to database. addn -n Simple -preserve false

# Add vertices v1 to v4 to network ‘Simple'.addv -id Simple -v v1 addv -id Simple -v v2addv -id Simple -v v3addv -id Simple -v v4

# Add arcs to network ‘Simple'.adda -id Simple -a v1-v2adda -id Simple -a v1-v3adda -id Simple -a v2-v3 adda -id Simple -a v2-v4adda -id Simple -a v3-v4

# Visualize network ‘Simple'.viz -id Simple -vlabel vertex_id -awidthdefault 2 -vsizedefault 10 -fontsize 25 -arrows false -saveas

SimpleViz

Page 11: Financial Networks: II. Fundamentals of Network Theory and FNA

Complete Graph –K4 (4)

# Add network 'netk4' to database. complete -nv 4 -directed false -preserve false

# Visualize network netk4.viz -vlabel vertex_id -awidthdefault 2 -vsizedefault 10 -fontsize 25 -arrows false -saveas

complete_k4

Notes

If no -saveas parameter is given, created networks are autonamed

Without -id paremeter in the viz -command all networks in memry are visualized

Page 12: Financial Networks: II. Fundamentals of Network Theory and FNA

Complete Graph –K7 (5)

# Add network 'netk7' to database. complete -nv 7 -directed false -saveas netk7 -preserve false

# Visualize network netk7.viz -vlabel vertex_id -awidthdefault 2 -vsizedefault 10 -fontsize 25 -arrows false -saveas

complete_k7

Page 13: Financial Networks: II. Fundamentals of Network Theory and FNA

Directed Graph, Digraph (6)

# Create a Petersen Graph# '-direction any' allows creation of arcs in any direction between two verticespetersen -direction any -seed 111 -saveas Digraph -preserve false

# Visualize the network. Setting the parameter -arrows true gives a directed network. viz -id Digraph -awidthdefault 2 -vsizedefault 10 -fontsize 25 -vlabel vertex_id -arrows true

-saveas Digraph

Page 14: Financial Networks: II. Fundamentals of Network Theory and FNA

Directed Weighted Graph (7)# A directed and weighed Petersen graph.

# Create a Petersen Graph # '-direction both' creates arcs in both directionpetersen -direction both -seed 111 -saveas WeightedDigraph -

preserve false

# Set random arc propertycalcap -e [?random:uniform:1,10?] -saveas value

# Visualize the network# Setting the parameter '-arrows true' shows direction of arcs viz -id WeightedDigraph -alabel value -awidthdefault 3 -

vsizedefault 10 -fontsize 25 -vlabel vertex_id -arrows true -saveas Digraph

# Visualize arc values as arc widthviz -id WeightedDigraph -awidth value -awidthdefault 3 -

vsizedefault 10 -fontsize 25 -vlabel vertex_id -arrows true -saveas Digraph

Page 15: Financial Networks: II. Fundamentals of Network Theory and FNA

15

Example application areas

Cross-border banking exposures Interbank payment flows

Page 16: Financial Networks: II. Fundamentals of Network Theory and FNA

Bipartite Graph (8)#G(V,E) = Bipartite Graph

# Vl = {1, 2, 3, 4, 5, 6, 7, 8} # Vr = {9, 10, 11, 12, 13, 14, 15, 16} # E = {randomly generated set}

Page 17: Financial Networks: II. Fundamentals of Network Theory and FNA

Bipartite Graph# Create a bipartite graph with 8 vertices in left group (-nl) and 8 vertices in right

group (-nr) and 12 randomly assigned arcs (-na) that will go in both directions. bipartite -nl 8 -nr 8 -na 12 -direction any -partition true -seed 123 -saveas bipartite -

preserve false

# Separate the two sets of vertices, ready for visualization.bipartitelayout -partition partition

# Visualize the bipartite network.viz -vsizedefault 10 -vlabel vertex_id -awidthdefault 2 -fontsize 25 -saveas Bipartite

Notes

Adding the parameter -seed to the bipartite command will generate a specific graph. So for example using -seed 111 will always assign the arcs in the same way, to generate the same graph. Without the -seed parameter the the random generator is initialized from system time.

Page 18: Financial Networks: II. Fundamentals of Network Theory and FNA

18

Example application areas

Banks Countries Insurers Risk Drivers

Page 19: Financial Networks: II. Fundamentals of Network Theory and FNA

Tree (9)# A tree is a graph with no cycles

# Create a tree with 6 verticestree -nv 10 -seed 111 -saveas Tree

#Visualize the treeviz -id Tree -vlabel vertex_id -vsizedefault 5 -awidthdefault 3

Notes

A forest is a disjoint union of trees

Page 20: Financial Networks: II. Fundamentals of Network Theory and FNA

Minimum Spanning Tree (10)

#G(V,E) = MST,

#V = {1, 2, 3, 4, 5, 6, 7}#E = {(1,2),(1,4),(3,2),(3,4),(4,6),(4,7),(5,3),(5,4),(6,5),(6,7),(7,6)}

Page 21: Financial Networks: II. Fundamentals of Network Theory and FNA

Minimum Spanning Tree# Create random network with 10 vertices and 30 arcsrandom -nv 5 -na 10 -seed 123 -preserve false

# Calculate random arc property between 1 and 10calcap -e [?random:uniform:1,10:111?] -saveas value

# Visualize original networkviz -vlabel vertex_id -awidthdefault 2 -saveas Random

# Identify minimun spanning tree for 'value' propertyminst -p value

# Highlight Minimum Spannign Tree in 'Random' networkviz -acolor minst -alabel value -awidthdefault 2 -saveas RandomWithMST

# Drop arcs not in Minimum Spannin treedropa -e minst=false

# Visualize Minimum Spanning Treeviz -vlabel vertex_id -awidthdefault 2 -alabel value -saveas MST

Page 22: Financial Networks: II. Fundamentals of Network Theory and FNA

22

MST: ApplicationRosario Mantegna (1999). Hierarchical Structure in Financial Markets. Eur. Phys. J. B 11, 193-197.

Page 23: Financial Networks: II. Fundamentals of Network Theory and FNA

23

Connectivity

Page 24: Financial Networks: II. Fundamentals of Network Theory and FNA

Degree (11)

# Add network 'degree' to databasepetersen -direction any -seed 111 -saveas Path -

preserve false

# Calculate degree, in-degree and out-degreedegree -saveas degreedegree -direction in -saveas in-degreedegree -direction out -saveas out-degree

# Visualize network degree. The vertices are labelled using their degree.

viz -vlabel degree -vsizedefault 10 -vcolordefault orange -fontsize 25 -awidthdefault 3 -saveas Degree

viz -vlabel in-degree -vsizedefault 10 -vcolordefault orange -fontsize 25 -awidthdefault 3 -saveas In-Degree

viz -vlabel out-degree -vsizedefault 10 -vcolordefault orange -fontsize 25 -awidthdefault 3 -saveas Out-Degree

Degree

In-Degree

Out-Degree

Page 25: Financial Networks: II. Fundamentals of Network Theory and FNA

25

Degree Distribution

The topology of interbank payment flows. Soramäki et al. Physica A: Statistical Mechanics and its Applications 379 (1), 317-333

Page 26: Financial Networks: II. Fundamentals of Network Theory and FNA

26

Degree Correlations

• Calculate – Neighbor degree/out-degree/in-degree (and)– Successor degree/out-degree/in-degree (asd)– Predecessor degree/out-degree/in-degree (apd)

• Correlate to degree/out-degree/in-degree of each node:– zero for uncorrelated networks– positive for assortative networks and – negative fordisasortative networks

• In assortative networks nodes with a given degree are more likely to have links with nodes of similar degree. Disassortative if the opposite is true.

Page 27: Financial Networks: II. Fundamentals of Network Theory and FNA

27

Example: US Banks

Page 28: Financial Networks: II. Fundamentals of Network Theory and FNA

Paths, Trails, Walks (12)

# Create a Petersen Graph# -seed 111 allows the same standard layout to be produced

each time.petersen -direction any -seed 111 -saveas Path -preserve false

# Calculate the path from vertex 5 to vertex 8distance -from 00005 -to 00008 -p value -savepath true

# Visualize the network. The arc colors highlight the pathviz -acolor path(00005,00008) -awidthdefault 2 -vsizedefault

10 -fontsize 25 -vlabel vertex_id -saveas Path

Notes

A Walk is any free movement along the arcsA Trail is a walk where a given arc is visited only onceA Path is a walk where a given vertex is visited only onceA Geadesic Path is the Shortest PathA Cycle is a path starting and ending to the same vertex

Page 29: Financial Networks: II. Fundamentals of Network Theory and FNA

29

Other connectivity measures

• Size: Number of arcs

• Order: Number of vertices

• Connectivity: order/(size*(size-1))

• Ego distance: distance to/from given vertex from/to other vertices

• Eccentricity: Maximum distance from/to a vertex

• Diameter: Maximum eccentricity

• Clustering coefficient: Share of neighbours with links

Page 30: Financial Networks: II. Fundamentals of Network Theory and FNA

30

Weighted Shortest Path (13)

# Create a Petersen Graph# -seed 111 allows the same standard layout to be produced

each time.petersen -direction any -seed 111 -saveas Path -preserve false

#Assign random values to arcs.calcap -e[?random:uniform:1,10:104?] -saveas value

# Calculate the path from vertex 5 to vertex 8distance -from 00005 -to 00008 -p value -savepath true

# Visualize the network. The arc colors highlight the pathviz -acolor path(00005,00008) -alabel value -awidthdefault 2 -

vsizedefault 10 -fontsize 25 -vhover vertex_id -saveas WeightedPath4

Page 31: Financial Networks: II. Fundamentals of Network Theory and FNA

Components

GWCC : Giant Weakly Connected ComponentGIN : Giant In-ComponentGSSC : Giant Strongly Connected ComponentGOUT : Giant Out-Component

Dorogovtsev S.N., J.F.F. Mendes, and A.N. Samukhin(2001). “Giant strongly connected component of directed networks”, Phys. Rev. E 64.

Page 32: Financial Networks: II. Fundamentals of Network Theory and FNA

Weakly Connected Graph (14)

# Create random networkrandom -nv 30 -na 40 -seed 100 -preserve false

# Identify SCwc

# Color vertices in SC as redsetvp -p color -value blacksetvp -e wc=0 -p color -value red

# Create visualizationviz -vcolor color -vsizedefault 5 -saveas WCViZ

Page 33: Financial Networks: II. Fundamentals of Network Theory and FNA

Strongly Connected Graph (15)

# Create random networkrandom -nv 30 -na 60 -seed 100 -preserve false

# Identify SCsc

# Color vertices in SC as redsetvp -p color -value blacksetvp -e sc=0 -p color -value red

# Color arcs within nodes in SC as redcalcap -e source.sc=0 -saveas srcsccalcap -e target.sc=0 -saveas tgtsccalcap -e "srcsc AND tgtsc" -saveas scarcsetap -p color -value blacksetap -p color -e scarc=true -value red

# Create visualizationviz -vcolor color -acolor color -vsizedefault 8 -awidthdefault 2 -saveas SCViZ

Page 34: Financial Networks: II. Fundamentals of Network Theory and FNA

Blog, Library and Demos at www.fna.fi

Dr. Kimmo Soramäki [email protected]: soramaki