::p_load(
pacman
jsonlite,
tidyverse,
ggtext,
knitr,
lubridate,
patchwork,
ggraph,
tidygraph,
igraph,
ggiraph )
Take Home Ex3: VAST Challenge 2024 Mini-Challenge 3
1 Overview
In this exercise, we will be tacking Mini-case 3 of VAST Challenge 2024.
We will answer Questions 3 and 4 from the mini-challenge:
Develop a visual approach to examine inferences. Infer how the influence of a company changes through time. Can you infer ownership or influence that a network may have?
Identify the network associated with SouthSeafood Express Corp and visualize how this network and competing businesses change as a result of their illegal fishing behavior. Which companies benefited from SouthSeafood Express Corp legal troubles? Are there other suspicious transactions that may be related to illegal fishing? Provide visual evidence for your conclusions.
If you want to skip through all the exploration and go straight to the answer, go to 9 Mini-Challenge 3.
1.1 The data
We will use the dataset provided by VAST Challenge. It is a network data that contains nodes that represent the different entities in the fishing business industry, and edges which represent the relationships between different entities.
1.2 Methodology
To answer this questions, we will investigate the changes in the fishing business community through time. We will do this by creating animations of the network through time.
Secondly, we will identify the influential entities in the network. We will do this by first visually inspecting the network and making inferences.
Lastly, we will use measures of centrality to verify our inferences.
For the purposes of this exercise we will define 2 types of influential entity:
Power holders - Those who hold the most power and beneficiary of resources in the network. We will use pagerank centrality to identify power holders.
Power brokers - Those who facilitate the transfer of power/resources from a less powerful entity to another. We will use betweenness centrality to identify power brokers.
2 Setup
2.1 Loading Packages
Utility Tools
jsonlite - To parse JSON
tidyverse - Data science tools
ggtext - Tools for text formatting
knitr - For better table displays
lubridate - For processing date and time
Graphing Tools
patchwork - For combining
ggplot
plotsggraph - For plotting network data
tidygraph - For graph manipulations
igraph - Contains functions for network analysis
ggiraph - Interactive plots
2.2 Loading Data
<- fromJSON("data/mc3.json")
mc3_data glimpse(mc3_data)
List of 5
$ directed : logi TRUE
$ multigraph: logi TRUE
$ graph : Named list()
$ nodes :'data.frame': 60520 obs. of 15 variables:
..$ type : chr [1:60520] "Entity.Organization.Company" "Entity.Organization.Company" "Entity.Organization.Company" "Entity.Organization.Company" ...
..$ country : chr [1:60520] "Uziland" "Mawalara" "Uzifrica" "Islavaragon" ...
..$ ProductServices : chr [1:60520] "Unknown" "Furniture and home accessories" "Food products" "Unknown" ...
..$ PointOfContact : chr [1:60520] "Rebecca Lewis" "Michael Lopez" "Steven Robertson" "Anthony Wyatt" ...
..$ HeadOfOrg : chr [1:60520] "Émilie-Susan Benoit" "Honoré Lemoine" "Jules Labbé" "Dr. Víctor Hurtado" ...
..$ founding_date : chr [1:60520] "1954-04-24T00:00:00" "2009-06-12T00:00:00" "2029-12-15T00:00:00" "1972-02-16T00:00:00" ...
..$ revenue : num [1:60520] 5995 71767 0 0 4747 ...
..$ TradeDescription : chr [1:60520] "Unknown" "Abbott-Gomez is a leading manufacturer and supplier of high-quality furniture and home accessories, catering to"| __truncated__ "Abbott-Harrison is a leading manufacturer of high-quality food products, including baked goods, snacks, and bev"| __truncated__ "Unknown" ...
..$ _last_edited_by : chr [1:60520] "Pelagia Alethea Mordoch" "Pelagia Alethea Mordoch" "Pelagia Alethea Mordoch" "Pelagia Alethea Mordoch" ...
..$ _last_edited_date: chr [1:60520] "2035-01-01T00:00:00" "2035-01-01T00:00:00" "2035-01-01T00:00:00" "2035-01-01T00:00:00" ...
..$ _date_added : chr [1:60520] "2035-01-01T00:00:00" "2035-01-01T00:00:00" "2035-01-01T00:00:00" "2035-01-01T00:00:00" ...
..$ _raw_source : chr [1:60520] "Existing Corporate Structure Data" "Existing Corporate Structure Data" "Existing Corporate Structure Data" "Existing Corporate Structure Data" ...
..$ _algorithm : chr [1:60520] "Automatic Import" "Automatic Import" "Automatic Import" "Automatic Import" ...
..$ id : chr [1:60520] "Abbott, Mcbride and Edwards" "Abbott-Gomez" "Abbott-Harrison" "Abbott-Ibarra" ...
..$ dob : chr [1:60520] NA NA NA NA ...
$ links :'data.frame': 75817 obs. of 11 variables:
..$ start_date : chr [1:75817] "2016-10-29T00:00:00" "2035-06-03T00:00:00" "2028-11-20T00:00:00" "2024-09-04T00:00:00" ...
..$ type : chr [1:75817] "Event.Owns.Shareholdership" "Event.Owns.Shareholdership" "Event.Owns.Shareholdership" "Event.Owns.Shareholdership" ...
..$ _last_edited_by : chr [1:75817] "Pelagia Alethea Mordoch" "Niklaus Oberon" "Pelagia Alethea Mordoch" "Pelagia Alethea Mordoch" ...
..$ _last_edited_date: chr [1:75817] "2035-01-01T00:00:00" "2035-07-15T00:00:00" "2035-01-01T00:00:00" "2035-01-01T00:00:00" ...
..$ _date_added : chr [1:75817] "2035-01-01T00:00:00" "2035-07-15T00:00:00" "2035-01-01T00:00:00" "2035-01-01T00:00:00" ...
..$ _raw_source : chr [1:75817] "Existing Corporate Structure Data" "Oceanus Corporations Monthly - Jun '35" "Existing Corporate Structure Data" "Existing Corporate Structure Data" ...
..$ _algorithm : chr [1:75817] "Automatic Import" "Manual Entry" "Automatic Import" "Automatic Import" ...
..$ source : chr [1:75817] "Avery Inc" "Berger-Hayes" "Bowers Group" "Bowman-Howe" ...
..$ target : chr [1:75817] "Allen, Nichols and Thompson" "Jensen, Morris and Downs" "Barnett Inc" "Bennett Ltd" ...
..$ key : int [1:75817] 0 0 0 0 0 0 0 0 0 0 ...
..$ end_date : chr [1:75817] NA NA NA NA ...
It contains graph data, where nodes can be accessed via nodes
and edges via links
. This dataset has a lot of columns but we will only filter the relevant data during wrangling..
2.3. Defining common variables
We will also set some values to have consistency throughout all graphs. This is also so that we only need to change them in one place
We are going to define styles for plotting our different kind of graphs. This is to provide consistency and reduce mistakes when changing how plots are rendered.
= list(
STYLES font_family = "Roboto Condensed",
# Colors
primary_color = "blue",
#primary_light_color = "#e6e6ff",
primary_light_color = "white",
secondary_color = "darkorange",
secondary_light_color = "white",
muted_color = "grey50",
title_color = "grey25",
normal_text_color = "grey50",
# Graph
node_size = 7.5,
node_border_color = "grey50",
node_border_stroke = 0.5,
node_emphasized_border_color = "black",
node_emphasized_border_stroke = 1,
arrow_margin = 3.2,
arrow_style = arrow(type = "closed", length = unit(2, "pt")),
base_edge_thickness = 0.2,
# Panel
panel_border_color = "grey50",
panel_border_thickness = 0.5,
# Texts
node_label_size = 2,
node_label_dark = "black",
node_label_light = "white",
default_caption = "Hover on the nodes to see more details.",
# Interactive elemnents
tooltip_css = paste0(
"background-color:black;color:white;",
"font-family:Roboto Condensed;font-size:10pt;",
"padding:4px;text-align:center;"
),svg_width = 6,
svg_height = 6 * 0.618
)
Common theme elements, another theme()
definition can be used if these elements need to be overridden.
= theme(
COMMON_THEME text = element_text(family = STYLES$font_family, color = STYLES$normal_text_color),
plot.title = element_markdown(
color = STYLES$title_color,
face = "bold",
size = unit(10, "pt")
),plot.subtitle = element_markdown(size = unit(8, "pt")),
plot.caption = element_markdown(size = unit(6, "pt"), hjust = 0),
plot.margin = margin(2, 0, 0, 0, unit = "pt"),
# Legend styles
legend.position = "right",
legend.location = "plot",
legend.justification = "top",
legend.title = element_markdown(
color = STYLES$title_color,
face = "bold",
size = unit(8, "pt")
),legend.text = element_text(size = unit(6, "pt"), vjust = 0.5),
legend.box.spacing = unit(4, "pt"),
legend.margin = margin(0),
legend.spacing.x = unit(2, "pt"),
legend.spacing.y = unit(8, "pt"),
legend.key.size = unit(12, "pt"),
panel.border = element_rect(
color = STYLES$panel_border_color,
fill = NA,
linewidth = STYLES$panel_border_thickness
) )
= list(
MAPPINGS # Available shapes: https://www.datanovia.com/en/blog/ggplot-point-shapes-best-tips/
node_supertype_to_shape = c(
"Person" = 24, # Triangle
"Organization" = 21 # Circle
),# Color schemes
# Colorblind pallettes from https://davidmathlogic.com/colorblind
node_subtype_to_color = c(
"Person" = "#44AA99",
"CEO" = "#117733",
"Company" = "#DDCC77",
"FishingCompany" = "#88CCEE",
"LogisticsCompany" = "#332288",
"FinancialCompany" = "#AA4499",
"NGO" = "#CC6677",
"NewsCompany" = "#882255"
),edge_relationship_subtype_to_color = c(
"WorksFor" = "#D81B60",
"Shareholdership" = "#FFC107",
"BeneficialOwnership" = "#004D40",
"FamilyRelationship" = "#1E88E5"
),edge_power_subtype_to_color = c(
"WorksFor" = "#D81B60",
"HasShareholder" = "#FFC107",
"OwnedBy" = "#004D40",
"FamilyRelationship" = "#1E88E5"
) )
= list(
CONFIGS default_seed = 4231 # For reproduceability
)
3 Data Wrangling
3.1 Extracting Graph Elements
We need to do time and network analysis so we will only include the columns needed to do these analysis.
The nodes represent the entities in the network. They can be people or companies.
<- as_tibble(mc3_data$nodes)
mc3_nodes_raw glimpse(mc3_nodes_raw)
Rows: 60,520
Columns: 15
$ type <chr> "Entity.Organization.Company", "Entity.Organizatio…
$ country <chr> "Uziland", "Mawalara", "Uzifrica", "Islavaragon", …
$ ProductServices <chr> "Unknown", "Furniture and home accessories", "Food…
$ PointOfContact <chr> "Rebecca Lewis", "Michael Lopez", "Steven Robertso…
$ HeadOfOrg <chr> "Émilie-Susan Benoit", "Honoré Lemoine", "Jules La…
$ founding_date <chr> "1954-04-24T00:00:00", "2009-06-12T00:00:00", "202…
$ revenue <dbl> 5994.73, 71766.67, 0.00, 0.00, 4746.67, 46566.67, …
$ TradeDescription <chr> "Unknown", "Abbott-Gomez is a leading manufacturer…
$ `_last_edited_by` <chr> "Pelagia Alethea Mordoch", "Pelagia Alethea Mordoc…
$ `_last_edited_date` <chr> "2035-01-01T00:00:00", "2035-01-01T00:00:00", "203…
$ `_date_added` <chr> "2035-01-01T00:00:00", "2035-01-01T00:00:00", "203…
$ `_raw_source` <chr> "Existing Corporate Structure Data", "Existing Cor…
$ `_algorithm` <chr> "Automatic Import", "Automatic Import", "Automatic…
$ id <chr> "Abbott, Mcbride and Edwards", "Abbott-Gomez", "Ab…
$ dob <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
We will only retain the following columns:
id
- to serve as the identifier for the nodetype
- to differentiate people from companies in the graph.
<- mc3_nodes_raw %>% select(id, type) mc3_nodes_lite
The edges represent the relationship between different nodes.
<- as_tibble(mc3_data$links)
mc3_edges_raw glimpse(mc3_edges_raw)
Rows: 75,817
Columns: 11
$ start_date <chr> "2016-10-29T00:00:00", "2035-06-03T00:00:00", "202…
$ type <chr> "Event.Owns.Shareholdership", "Event.Owns.Sharehol…
$ `_last_edited_by` <chr> "Pelagia Alethea Mordoch", "Niklaus Oberon", "Pela…
$ `_last_edited_date` <chr> "2035-01-01T00:00:00", "2035-07-15T00:00:00", "203…
$ `_date_added` <chr> "2035-01-01T00:00:00", "2035-07-15T00:00:00", "203…
$ `_raw_source` <chr> "Existing Corporate Structure Data", "Oceanus Corp…
$ `_algorithm` <chr> "Automatic Import", "Manual Entry", "Automatic Imp…
$ source <chr> "Avery Inc", "Berger-Hayes", "Bowers Group", "Bowm…
$ target <chr> "Allen, Nichols and Thompson", "Jensen, Morris and…
$ key <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
$ end_date <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
We will only retain the following columns:
source
- to identify the actor of the relationship, corresponds toid
in nodes.target
- to identify the receiver of the relationship, corresponds toid
in nodes.type
- to identify the type of the relationshipstart_date
- to identify when the relationship startedend_date
- to identify when the relationship ended
<- mc3_edges_raw %>% select(source, target, type, start_date, end_date) mc3_edges_lite
3.2 Closer look at type
Both the nodes
and edges
have type
which contains the type of the nodes and edges. We will assign a supertype
and a subtype
from type
.
$type) %>% unique() (mc3_nodes_lite
[1] "Entity.Organization.Company"
[2] "Entity.Organization.LogisticsCompany"
[3] "Entity.Organization.FishingCompany"
[4] "Entity.Organization.FinancialCompany"
[5] "Entity.Organization.NewsCompany"
[6] "Entity.Organization.NGO"
[7] "Entity.Person"
[8] "Entity.Person.CEO"
supertype
- type of entity, either Person or Organization
subtype
- subcategory of supertype, e.g., Company, FishingCompany, CEO
$type) %>% unique() (mc3_edges_lite
[1] "Event.Owns.Shareholdership" "Event.Owns.BeneficialOwnership"
[3] "Event.WorksFor" "Relationship.FamilyRelationship"
supertype
- type of relationship, either Ownership, Employment, Relationship.
subtype
- subcategory of supertype, e.g., Shareholdership, BeneficialOwnership, FamilyRelationship
3.3 Preparing the data
With the considerations above, we will shape the data needed for our graph visualization.
For nodes, we will also assign a shape for visualization depending on supertype. For people, we will use 📐, while we use 🔴 for organizations.
Lastly, we will assign alias to each node as an alternative label to the names (as they are long). This will be generated using the first 4 initials of the name
<- function(name) {
to_initials strsplit(name, "[^[:alnum:]]")[[1]] %>% # Split when non-alphanumeric
substr(1, 1) %>% # Get first letter
paste0(collapse = "") %>%
substr(1, 4) # Get first 4 letters only as some names are still too long
}
<- mc3_nodes_lite %>%
mc3_nodes_clean mutate(
name = id,
alias = sapply(name, to_initials),
supertype = strsplit(type, ".", fixed=TRUE) %>% sapply('[', 2),
# Get the last type as subtype. In the case of Entity.Person,
# both supertype and subtype are "Person".
subtype = strsplit(type, ".", fixed=TRUE) %>% sapply(tail, n=1)
# Names are long so will create alias from initials of name for display in graph
%>%
) select(name, alias, supertype, subtype)
kable(head(mc3_nodes_clean))
name | alias | supertype | subtype |
---|---|---|---|
Abbott, Mcbride and Edwards | AMaE | Organization | Company |
Abbott-Gomez | AG | Organization | Company |
Abbott-Harrison | AH | Organization | Company |
Abbott-Ibarra | AI | Organization | Company |
Abbott-Sullivan | AS | Organization | Company |
Acevedo and Sons | AaS | Organization | Company |
Let’s also check if supertype
, subtype
, have been mapped correctly.
%>%
mc3_nodes_clean group_by(supertype, subtype) %>%
summarize(count = n()) %>%
arrange(-count) %>%
kable()
supertype | subtype | count |
---|---|---|
Person | Person | 50356 |
Organization | Company | 7927 |
Person | CEO | 1293 |
Organization | FishingCompany | 600 |
Organization | LogisticsCompany | 311 |
Organization | FinancialCompany | 23 |
Organization | NGO | 5 |
Organization | NewsCompany | 5 |
For ggraph
to plot the edges correctly, we need to assigns weights to the edges. For simplicity, let us assign the number of edges with the same source
, target
and type
.
Lastly, we will change source
and target
to from
and to
, respectively for compatibility with network functions we will use.
<- mc3_edges_lite %>%
mc3_edges_clean rename(from = source, to = target, ) %>%
mutate(
supertype = ifelse(
grepl("Event.Owns", type),
"Ownership",
ifelse(grepl("Relationship", type), "Relationship", "Employment")
),subtype = strsplit(type, ".", fixed = TRUE) %>% sapply(tail, n = 1),
# Convert date strings to datetime
start_date = as_datetime(start_date),
end_date = as_datetime(end_date)
%>%
) filter(from != to) %>%
group_by(from, to, supertype, subtype, start_date, end_date) %>%
summarize(weight = n())
kable(head(mc3_edges_clean))
from | to | supertype | subtype | start_date | end_date | weight |
---|---|---|---|---|---|---|
4. SeaCargo Ges.m.b.H. | Dry CreekRybachit Marine A/S | Ownership | Shareholdership | 2034-12-31 | NA | 1 |
4. SeaCargo Ges.m.b.H. | KambalaSea Freight Inc | Ownership | Shareholdership | 2033-04-12 | NA | 1 |
9. RiverLine CJSC | SumacAmerica Transport GmbH & Co. KG | Ownership | Shareholdership | 2028-12-02 | NA | 1 |
Aaron Acosta | Manning-Pratt | Employment | WorksFor | 2008-07-30 | NA | 1 |
Aaron Acosta | Manning-Pratt | Ownership | Shareholdership | 2008-09-14 | NA | 1 |
Aaron Allen | Hicks-Calderon | Ownership | BeneficialOwnership | 2025-03-06 | NA | 1 |
Lastly, let’s check if type
has been mapped correctly to supertype
and subtype
.
%>%
mc3_edges_clean group_by(supertype, subtype) %>%
summarize(count = n()) %>%
arrange(-count) %>%
kable()
supertype | subtype | count |
---|---|---|
Ownership | Shareholdership | 39378 |
Ownership | BeneficialOwnership | 21529 |
Employment | WorksFor | 14817 |
Relationship | FamilyRelationship | 91 |
3.4 Preparing the supernetwork
We will prepare the supernetwork from the nodes and edges we prepared.
= tbl_graph(edges = mc3_edges_clean,
supernetwork nodes = mc3_nodes_clean,
directed = TRUE)
We call this a supernetwork as this covers the entire network of entities within the fishing business community.
4 Extracting subnetworks
4.1 Extracting for ease of analysis
As the supernetwork
is very large, we will need to extract part of it to perform analysis effectively. To do this, we will need to extract subnetworks from this bigger network.
We will extract subnetworks based on distance from a given node. By default, we will get the network of all connected nodes to the reference node.
We will use the following functions:
ego()
from igraph to get a list of nodes within a given distance from the given nodeinduced_subgraph()
to extract the subgraph containing only the nodes from the result ofego()
. This will return an igraph type.as_data_frame()
to extract the nodes and edges so we can generate atbl_graph
which is compatible to both igraph and ggraph functions.
<- function(graph, node_name, distance=NULL) {
extract_subnetwork <- which(V(graph)$name == node_name)
node <- ifelse(is.null(distance), length(graph), distance)
distance <- ego(graph, nodes = node, order = distance)[[1]]
vertices <- induced_subgraph(graph, vids = vertices)
igraph_subgraph <- as_data_frame(igraph_subgraph, what = "vertices")
nodes_df <- as_data_frame(igraph_subgraph, what = "edges")
edges_sf tbl_graph(nodes=nodes_df, edges=edges_sf, directed=is_directed(graph))
}
4.2 Plotting the subnetworks
To demonstrate what this function does, we will look at 3 subnetworks related to SouthSeafood Express Corp.
- Direct neighbors - They have the strongest influence on and can be influenced the most by SouthSeafood Express Corp.
- Sphere of influence - Based on Nicholas A. Christakis and James H. Fowler’s theory of Three Degrees of Influence, which states that that influence gradually dissipates and eventually cease to be notable beyond the 3rd degree of separation. This contains the nodes where SouthSeafood Express Corp have notable influence.
- Connected network - We will look at the entire network containing the nodes that are connected to SouthSeafood Express Corp in any way.
We will use plot_fishing_relationships()
to plot the relationship graph of the network.
Show the code for plot_fishing_relationships()
<- function(graph,
plot_fishing_relationships # Name of nodes to emphasize
emphasize_nodes = c(),
# Date where to get the snapshot
datestring = NULL,
# Layout options
layout = "nicely",
circular = FALSE,
# Texts
title = NULL,
subtitle = NULL,
caption = STYLES$default_caption,
# Plot styling
node_size = STYLES$node_size,
arrow_margin = STYLES$arrow_margin,
# Seed
seed_num = CONFIGS$default_seed) {
set.seed(seed_num)
<- NULL
date if(!is.null(datestring)) { date <- as_date(datestring) }
<- as_data_frame(graph, what = "vertices")
nodes
<- ggraph(graph, layout = layout, circular = circular) +
g # Render nodes
geom_point_interactive(
aes(
x = x,
y = y,
data_id = name,
tooltip = sprintf("%s<br/>(%s)", name, subtype),
fill = subtype,
# To show people as triangle, organizations as circle
# See scale_shape_manual code below
shape = supertype,
),size = node_size,
# Thicken border if emphasized
color = ifelse(
$name %in% emphasize_nodes,
nodes$node_emphasized_border_color,
STYLES$node_border_color
STYLES
),stroke = ifelse(
$name %in% emphasize_nodes,
nodes$node_emphasized_border_stroke,
STYLES$node_border_stroke
STYLES
),+
) geom_node_text(
aes(label = alias),
family = STYLES$font_family,
size = STYLES$node_label_size,
color = STYLES$node_label_light,
fontface = ifelse(nodes$name %in% emphasize_nodes, "bold", "plain"),
+
)
# Render edges. Use geom_edge fan so edges along the same path don't overlap
geom_edge_fan(
aes(
color = subtype,
# Will identify if the edge is active at this date, if not do not display
# Ideally this should be in a function but I can't figure out how to make it work inside aes
# Logic is same as is extract_network_snapshot.R
filter = ifelse(is.null(date) | is.na(start_date), TRUE,
ifelse(start_date <= date & (is.na(end_date) | end_date > date),
TRUE,
FALSE
)
)
),strength = 0.5,
arrow = STYLES$arrow_style,
end_cap = circle(arrow_margin, "mm"),
start_cap = circle(arrow_margin, "mm"),
alpha = 0.8
+
) scale_shape_manual(values = MAPPINGS$node_supertype_to_shape) +
scale_fill_manual(values = MAPPINGS$node_subtype_to_color) +
scale_edge_color_manual(values = MAPPINGS$edge_relationship_subtype_to_color) +
# Change legend names
labs(shape = "Node Supertypes",
fill = "Node Subtypes",
edge_color = "Edge Subtypes") +
# Make sure the plot is not clipped
scale_x_continuous(expand = expansion(mult = c(0.10, 0.10))) +
scale_y_continuous(expand = expansion(mult = c(0.10, 0.10))) +
# Style legend keys
guides(
shape = guide_legend(
override.aes = list(size = 3, fill = STYLES$primary_color),
order = 1
),fill = guide_legend(
override.aes = list(
size = 4,
shape = 22,
color = NA
),order = 2
),edge_color = guide_legend(order = 3),
+
)
# Style graph
unset_graph_style() +
theme_graph(base_family = STYLES$font_family,
plot_margin = margin(0)) +
plot_annotation(title = title,
subtitle = subtitle,
caption = caption) &
COMMON_THEME
girafe(
ggobj = g,
width_svg = STYLES$svg_width,
height_svg = STYLES$svg_height,
options = list(opts_tooltip(css = STYLES$tooltip_css))
) }
We call this the Relationship Graph as the provided graph shows the different relationships among the different entities.
Later, we will tackle how to generate the Power Graph which will represent the power and flow of resources within the network.
In this part, we just want to make a basic visualization so we can see earlier if we have processed the data appropriate for analysis.
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp",
distance=1
%>% plot_fishing_relationships(
) emphasize_nodes = c("SouthSeafood Express Corp"),
layout = "linear",
circular = TRUE,
node_size = 12,
arrow_margin = 5.5,
title = "Relationship Graph: SouthSeafood Express Corp's Direct Neighbors",
subtitle = "Two other fishing companies, <span style='color:blue;'>**AguaLeska Transit N.V.**</span> and <span style='color:blue;'>**Tainamarine Fishing Co**</span> hold shares in<br />SouthSeafood Express Corp. They are posed to benefit the most from the company's illegal fishing activities."
)
As shareholders, AguaLeska Transit N.V. and Tainamarine Fishing Co have big influence on where the resources of SouthSeafood Express Corp go.
In this case, most of it will most likely opposite of the arrow direction, i.e. benefiting the shareholders.
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp",
distance=3
%>% plot_fishing_relationships(
) emphasize_nodes = c(
"SouthSeafood Express Corp",
"Tainamarine Fishing Co",
"AguaLeska Transit N.V.",
"StichtingMarine Shipping Company",
"SavanetaCreek Solutions NV",
"Liam Conti",
"Fintan Park",
"Nadia Conti"
),title = "Relationship Graph: SouthSeafood Express Corp's Sphere of Influence",
subtitle = "Entities with 3 degrees of separation from **SouthSeafood Express Corp**. This is where the influence of the<br />company is noticeable."
)
The network map is comprised mostly of Shareholderships and BenificialOwnerships.
SouthSeafood Express Corp’s shareholders, AguaLeska Transit N.V. and Tainamarine Fishing Co have additional shareholders.
StichtingMarine Shipping Company holds shares in these companies (via other entities). SavanetaCreek Solutions N.V., a Logistics Company, also holds a shareholdership in StichtingMarine Shipping Company. These two nodes serve as resource hubs, gathering resources from the companies in which they hold shares, ultimately benefiting their owners and shareholders.
Moreover, Liam Conti and Fintan Park are the beneficial owners of these companies, giving them final decision-making power and likely the greatest benefits from the network’s resources. Additionally, as a family member of Liam Conti, Nadia Conti may also benefit from Liam’s ownership of these companies.
Intuitively, these five nodes are likely candidates for the most influential entities within the network.
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp"
%>% plot_fishing_relationships(
) emphasize_nodes = c(
"SouthSeafood Express Corp",
"Tainamarine Fishing Co",
"AguaLeska Transit N.V.",
"StichtingMarine Shipping Company",
"SavanetaCreek Solutions NV",
"Liam Conti",
"Fintan Park",
"Nadia Conti"
),node_size = 5,
arrow_margin = 2,
title = "Relationship Graph: SouthSeafood Express Corp's Full Network",
subtitle = "This shows the full view of the network connected to SouthSeafood Express Corp in any way."
)
With this sheer number of nodes, it is hard to easily infer any relationships aside from general estimate of how many of each entity and the type of relationships present in the system.
To more easily make inferences about the network, we need to do 2 things:
Narrow down the relationships through time so we can make sense of the transactions in the network
Use appropriate measures of centrality based on what we have in the 1.2 Methodology
5 Investigating network changes
The plots we generated so far ignored the time component. However, the fishing business network is dynamic and changes through time.
We need to visualize these changes.
5.1 Extracting snapshots
The base of this analysis is to capture a snapshot of a relationship in time.
We will define a 2 functions to enable this:
extract this network, which accepts a graph and date of the snapshot.
figure out if an edge is active at that point in time
<- function(graph, datestring) {
extract_network_snapshot <- as_date(datestring)
date
= as_data_frame(graph, what = "vertices")
graph_nodes = as_data_frame(graph, what = "edges")
graph_edges
# Assume transition is at 12 AM of given date
<- graph_edges %>%
filtered_edges filter(is.na(start_date) | (
<= date &
start_date is.na(end_date) |
(> date)
end_date
))
tbl_graph(nodes = graph_nodes,
edges = filtered_edges,
directed = is_directed(graph))
}
<- source("helpers/extract_network_snapshot.R", local = knitr::knit_global())$value extract_network_snapshot
5.2 Change in SouthSeafood Express Corp network
Let us look at the relationships of SouthSeafood Express Corp.
%>%
supernetwork as_data_frame(what = "edges") %>%
filter(from == "SouthSeafood Express Corp" | to == "SouthSeafood Express Corp") %>%
kable()
from | to | supertype | subtype | start_date | end_date | weight |
---|---|---|---|---|---|---|
AguaLeska Transit N.V. | SouthSeafood Express Corp | Ownership | Shareholdership | 2033-10-29 | 2035-05-25 | 1 |
Tainamarine Fishing Co | SouthSeafood Express Corp | Ownership | Shareholdership | 2035-05-25 | NA | 1 |
This indicates a Transfer of Shareholdership from AguaLeska Transit N.V. to Tainamarine Fishing Co on 2035-05-25.
We will visualize relationships based on this date using 2 approaches:
- Using
extract_network_snapshot()
to filter the active edges at that point in time, or - Making use of
filter
aesthetic ingeom_edge_fan
to hide the inactive edges
5.2.1 By filtering our edges using extract_network_snapshot()
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp"
%>%
) extract_network_snapshot("2035-05-24") %>%
plot_fishing_relationships(
emphasize_nodes = c("SouthSeafood Express Corp",
"Tainamarine Fishing Co",
"AguaLeska Transit N.V.",
"StichtingMarine Shipping Company"),
node_size = 5,
arrow_margin = 2,
title = "Relationship Graph: SouthSeafood Express Corp's Full Network (May 24, 2035)",
subtitle = "This shows the full view of the network around SouthSeafood Express Corp in any way **after** the transfer of<br />shareholdership from <span style='color:blue;'>**AguaLeska Transit N.V.**</span> to <span style='color:blue;'>**Tainamarine Fishing Co**</span>."
)
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp"
%>%
) extract_network_snapshot("2035-05-25") %>%
plot_fishing_relationships(
emphasize_nodes = c("SouthSeafood Express Corp",
"Tainamarine Fishing Co",
"AguaLeska Transit N.V.",
"StichtingMarine Shipping Company"),
node_size = 5,
arrow_margin = 2,
title = "Relationship Graph: SouthSeafood Express Corp's Full Network (May 25, 2035)",
subtitle = "This shows the full view of the network around SouthSeafood Express Corp in any way **after** the transfer of<br />shareholdership from <span style='color:blue;'>**AguaLeska Transit N.V.**</span> to <span style='color:blue;'>**Tainamarine Fishing Co**</span>."
)
This visualization is difficult to compare as the layout changed due to the different edges.
5.2.2 By hiding inactive edges
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp"
%>%
) plot_fishing_relationships(
datestring = "2035-05-24",
emphasize_nodes = c("SouthSeafood Express Corp",
"Tainamarine Fishing Co",
"AguaLeska Transit N.V.",
"StichtingMarine Shipping Company"),
node_size = 5,
arrow_margin = 2,
title = "Relationship Graph: SouthSeafood Express Corp's Full Network (May 24, 2035)",
subtitle = "This shows the full view of the network around SouthSeafood Express Corp in any way **before** the transfer of<br />shareholdership from <span style='color:blue;'>**AguaLeska Transit N.V.**</span> to <span style='color:blue;'>**Tainamarine Fishing Co**</span>."
)
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp"
%>%
) plot_fishing_relationships(
datestring = "2035-05-25",
emphasize_nodes = c("SouthSeafood Express Corp",
"Tainamarine Fishing Co",
"AguaLeska Transit N.V.",
"StichtingMarine Shipping Company"),
node_size = 5,
arrow_margin = 2,
title = "Relationship Graph: SouthSeafood Express Corp's Full Network (May 25, 2035)",
subtitle = "This shows the full view of the network around SouthSeafood Express Corp in any way **after** the transfer of<br />shareholdership from <span style='color:blue;'>**AguaLeska Transit N.V.**</span> to <span style='color:blue;'>**Tainamarine Fishing Co**</span>."
)
The layout is intact, making it easier to identify which relationships changed.
The change of shareholders put SouthSeafood Express Corp farther away (distance of 2 to 4) from StichtingMarine Shipping Company, a company owned by Liam Conti and Fintan Park. This puts StichtingMarine Shipping Company outside of SouthSeafood Express Corp’s sphere of influence.
This can be an effort to distance the owners from SouthSeafood Express Corp’s illegal activity, especially as it is put under the non-fishing company branch of StichtingMarine Shipping Company (under Namorna Transit Ltd and V. Miesel Shipping).
We will hide inactive edges so that the nodes don’t move upon re-rendering, and makes it easy to compare.
5.3 Animations
In our 1.2 Methodology, we indicated that we wanted to animate the plot so that we can see how the network changes through time.
However, we encountered issues in animating as the available libraries (plotly
and gganimate
) do not fully support animations especially with the level of details that our static but interactive plots provide.
For example, plotly
cannot translate the ggraph
plots with the full detail, especially on the edges. In addition, gganimate
does not accept ggraph
plots as frames.
As a workaround, we will just use Quatro’s tabset to visualize the changes via tab switches.
6 Generating Power Graph
To figure out who are the most influential or greatest beneficiaries within the network, we have to look at the power dynamics in each relationship.
6.1 Direction
As we want to investigate the flow of power and resources, the direction will be from the less powerful to more powerful entity.
6.2 Weights
For the purpose of our analysis, we will score each relationship flow according to the following:
Benefits from the resources: 1 (+1 if they are the owner of a company)
A decision-maker on where resources go: 2 (+1 if they are the ultimate decision maker)
Influential on the other person: 1 (only if target is a person)
We will use the total as the weights for each edge. Lastly, we will rename the relationship to prevent confusion in case of direction reversal.
6.3 Score tables
Beneficial owners benefit from the resources of the company.
While BeneficialOwners may or may not be Shareholders in the same company, they hold the ultimate decision-making power.
Current From
Current From | Owner |
Current To | Company |
New From (Lower power) |
Company |
New To (Higher power) |
Owner |
New subtype | OwnedBy |
Beneficiary | 1 + 1 |
Decision-maker | 2 + 1 |
Influential (on person) | 0 |
Total | 5 |
Shareholders may receive proceeds from the profits of the company.
They have some decision-making power within the company. However, it is the Beneficial Owner that ultimately gets the final say in decisions.
Current From | Shareholder |
Current To | Company |
New From (Lower power) |
Company |
New To (Higher power) |
Shareholder |
New subtype | HasShareholder |
Beneficiary | 1 |
Decision-maker | 2 |
Influential (on person) | 0 |
Total | 3 |
Employees are contractually obligated to act in the interests of their employer.
Employers also influence what their employees do in the business.
Current From | Owner |
Current To | Company |
New From (Lower power) |
Company |
New To (Higher power) |
Owner |
New subtype | OwnedBy |
Beneficiary | 1 + 1 |
Decision-maker | 2 + 1 |
Influential (on person) | 0 |
Total | 5 |
Assuming that family members have a healthy relationship, they share resources and confide in each other.
Due to this, they have power over each other.
Current From | Person 1 |
Current To | Person 2 |
New From (Lower power) |
Person 2 (additional) |
New To (Higher power) |
Person 2 (additional) |
New subtype | FamilyRelationship |
Beneficiary | 1 |
Decision-maker | 0 |
Influential (on person) | 1 |
Total | 2 |
These scores are subjective and based on general assumptions. We also lack the information to model the power dynamics accurately.
6.4 Converting relationship edges to power flow
Using the table above, we will create a function to convert relationship edges to power flow.
<- function(edges) {
convert_edges_to_power_flow # Employee -> Employer, weight: 2
<- edges %>% filter(subtype == "WorksFor") %>% mutate(weight = 2)
works_for
# Person1 <-> Person2, weight: 1
<- edges %>% filter(subtype == "FamilyRelationship") %>% mutate(weight = 2)
family <- family %>%
family_rev mutate(temp = from, from = to, to = temp) %>%
select(from, to, supertype, subtype, start_date, end_date, weight)
# Shareholder <- Company, weight: 2
<- edges %>% filter(subtype == "Shareholdership") %>%
shareholder mutate(
temp = from,
from = to,
to = temp,
weight = 3,
# Rename to prevent confusion due to reversed arrows
subtype = "HasShareholder",
%>%
) select(from, to, supertype, subtype, start_date, end_date, weight)
# BeneficialOwner <- Company, weight: 3
<- edges %>% filter(subtype == "BeneficialOwnership") %>%
owner mutate(
temp = from,
from = to,
to = temp,
weight = 5,
# Rename to prevent confusion due to reversed arrows
subtype = "OwnedBy",
%>%
) select(from, to, supertype, subtype, start_date, end_date, weight)
%>%
works_for rbind(family) %>%
rbind(family_rev) %>%
rbind(shareholder) %>%
rbind(owner)
}
Let us check the resulting edges table. We are expecting that all edge types would have the same number, expect for FamilyRelationship, which is expected to double.
%>%
supernetwork as_data_frame(what = "edges") %>%
group_by(supertype, subtype) %>%
summarize(count = n()) %>%
arrange(-count) %>%
kable()
supertype | subtype | count |
---|---|---|
Ownership | Shareholdership | 39378 |
Ownership | BeneficialOwnership | 21529 |
Employment | WorksFor | 14817 |
Relationship | FamilyRelationship | 91 |
%>%
supernetwork as_data_frame(what = "edges") %>%
convert_edges_to_power_flow() %>%
group_by(supertype, subtype) %>%
summarize(count = n()) %>%
arrange(-count) %>%
kable()
supertype | subtype | count |
---|---|---|
Ownership | HasShareholder | 39378 |
Ownership | OwnedBy | 21529 |
Employment | WorksFor | 14817 |
Relationship | FamilyRelationship | 182 |
6.5 Converting relationship graphs to power flow
Using the edge converter, we will generate a new tbl_graph
with the power flow edges.
<- function(graph) {
convert_graph_to_power_flow <- as_data_frame(graph, what = "vertices")
nodes_df <- as_data_frame(graph, what = "edges")
edges_sf
<- convert_edges_to_power_flow(edges_sf)
resource_edges tbl_graph(nodes=nodes_df, edges=resource_edges, directed=TRUE)
}
6.6 Plotting the power graph
Similar to [4.3 Plotting the subnetworks], we will look at 3 subnetworks related to SouthSeafood Express Corp.
We will use plot_fishing_power()
to plot the relationship graph of the network.
Show the code for plot_fishing_power()
<- function(graph,
plot_fishing_power # Name of nodes to emphasize
emphasize_nodes = c(),
# Date where to get the snapshot
datestring = NULL,
# Layout options
layout = "nicely",
circular = FALSE,
# Texts
title = NULL,
subtitle = NULL,
caption = STYLES$default_caption,
# Plot styling
node_size = STYLES$node_size,
arrow_margin = STYLES$arrow_margin,
edge_thickness = STYLES$base_edge_thickness,
# Seed
seed_num = CONFIGS$default_seed) {
set.seed(seed_num)
<- as_data_frame(graph, what = "vertices")
nodes <- as_data_frame(graph, what = "edges")
edges <- edges$weight %>% max()
max_weight <- edges$weight %>% min()
min_weight
<- NULL
date if(!is.null(datestring)) { date <- as_date(datestring) }
<- ggraph(graph, layout = layout, circular = circular) +
g # Render nodes
geom_point_interactive(
aes(
x = x,
y = y,
data_id = name,
tooltip = sprintf("%s<br/>(%s)", name, subtype),
fill = subtype,
# To show people as triangle, organizations as circle
# See scale_shape_manual code below
shape = supertype,
),size = node_size,
# Thicken border if emphasized
color = ifelse(
$name %in% emphasize_nodes,
nodes$node_emphasized_border_color,
STYLES$node_border_color
STYLES
),stroke = ifelse(
$name %in% emphasize_nodes,
nodes$node_emphasized_border_stroke,
STYLES$node_border_stroke
STYLES
),+
) geom_node_text(
aes(label = alias),
family = STYLES$font_family,
size = STYLES$node_label_size,
color = STYLES$node_label_light,
fontface = ifelse(nodes$name %in% emphasize_nodes, "bold", "plain"),
+
)
# Render edges. Use geom_edge fan so edges along the same path don't overlap
geom_edge_fan(
aes(
color = subtype,
edge_width = weight,
# Will identify if the edge is active at this date, if not do not display
# Ideally this should be in a function but I can't figure out how to make it work inside aes
# Logic is same as is extract_network_snapshot.R
filter = ifelse(
is.null(date) | is.na(start_date),
TRUE,
ifelse(start_date <= date &
is.na(end_date) | end_date > date), TRUE, FALSE)
(
)
),strength = 0.5,
arrow = STYLES$arrow_style,
end_cap = circle(arrow_margin, "mm"),
start_cap = circle(arrow_margin, "mm"),
alpha = 0.8
+
) scale_shape_manual(values = MAPPINGS$node_supertype_to_shape) +
scale_fill_manual(values = MAPPINGS$node_subtype_to_color) +
scale_edge_color_manual(values = MAPPINGS$edge_power_subtype_to_color) +
# Make sure edge widths are consistent across diff graphs
scale_edge_width(
range = c(min_weight * edge_thickness, max_weight * edge_thickness),
guide = "none"
+
)
# Change legend names
labs(shape = "Node Supertypes",
fill = "Node Subtypes",
edge_color = "Edge Subtypes") +
# Make sure the plot is not clipped
scale_x_continuous(expand = expansion(mult = c(0.10, 0.10))) +
scale_y_continuous(expand = expansion(mult = c(0.10, 0.10))) +
# Style legend keys
guides(
shape = guide_legend(
override.aes = list(size = 3, fill = STYLES$primary_color),
order = 1
),fill = guide_legend(
override.aes = list(
size = 4,
shape = 22,
color = NA
),order = 2
),edge_color = guide_legend(order = 3),
+
)
# Style graph
unset_graph_style() +
theme_graph(base_family = STYLES$font_family,
plot_margin = margin(0)) +
plot_annotation(title = title,
subtitle = subtitle,
caption = caption) &
COMMON_THEME
girafe(
ggobj = g,
width_svg = STYLES$svg_width,
height_svg = STYLES$svg_height,
options = list(opts_tooltip(css = STYLES$tooltip_css))
) }
6.6.1 Direct Neighbors
Show the code
%>%
supernetwork extract_subnetwork(node_name = "SouthSeafood Express Corp", distance = 1) %>%
convert_graph_to_power_flow() %>%
plot_fishing_power(
emphasize_nodes = c("SouthSeafood Express Corp", "AguaLeska Transit N.V."),
datestring = "2035-05-24",
layout = "linear",
circular = TRUE,
node_size = 12,
arrow_margin = 5.5,
title = "Power Graph: SouthSeafood Express Corp's Direct Neighbors (May 24, 2035)",
subtitle = "<span style='color:blue;'>**AguaLeska Transit N.V.**</span> is the sole shareholder in SouthSeafood Express Corp, having large control in the company.<br />They benefit the most from and could have controlled company's illegal fishing activities."
)
Show the code
%>%
supernetwork extract_subnetwork(node_name = "SouthSeafood Express Corp", distance = 1) %>%
convert_graph_to_power_flow() %>%
plot_fishing_power(
emphasize_nodes = c("SouthSeafood Express Corp", "Tainamarine Fishing Co"),
datestring = "2035-05-25",
layout = "linear",
circular = TRUE,
node_size = 12,
arrow_margin = 5.5,
title = "Power Graph: SouthSeafood Express Corp's Direct Neighbors (May 25, 2035)",
subtitle = "On this day, shareholdership in SouthSeafood Express Corp transferred from <span style='color:blue;'>**AguaLeska Transit N.V.**</span> to <span style='color:blue;'>**Tainamarine Fishing Co**</span>.<br />This also transferred the control, and consequently, responsibility over the company."
)
The transfer of shareholdership constituted a transfer of power and responsibility over SouthSeafood Express Corp from one company to the other.
From this scope, it not easy to see who is ultimately pulling the strings. We need to cast our net wider to see the effect of this transaction in SouthSeafood Express Corp’s network.
6.6.2 Sphere of Influence
Show the code
%>%
supernetwork extract_subnetwork(node_name = "SouthSeafood Express Corp", distance = 3) %>%
convert_graph_to_power_flow() %>%
plot_fishing_power(
emphasize_nodes = c(
"SouthSeafood Express Corp",
"AguaLeska Transit N.V.",
"StichtingMarine Shipping Company",
"SavanetaCreek Solutions NV",
"Liam Conti",
"Fintan Park"
),datestring = "2035-05-24",
title = "Power Graph: SouthSeafood Express Corp's Sphere of Influence (May 24, 2035)",
subtitle = "Before the transfer of shareholdership, <span style='color:blue;'>**Liam Conti**</span> and <span style='color:blue;'>**Fintan Park**</span> controls SouthSeafood Express Corp through<br /><span style='color:blue;'>**AguaLeska Transit N.V.**</span> and <span style='color:blue;'>**StichtingMarine Shipping Company**</span>."
)
Show the code
%>%
supernetwork extract_subnetwork(node_name = "SouthSeafood Express Corp", distance = 3) %>%
convert_graph_to_power_flow() %>%
plot_fishing_power(
emphasize_nodes = c(
"SouthSeafood Express Corp",
"Tainamarine Fishing Co",
"V. Miesel Shipping",
"Namorna Transit Ltd"
),datestring = "2035-05-25",
title = "Power Graph: SouthSeafood Express Corp's Sphere of Influence (May 25, 2035)",
subtitle = "The transfer of shareholdership, distances <span style='color:blue;'>**Liam Conti**</span> and <span style='color:blue;'>**Fintan Park**</span> form SouthSeafood Express Corp. <br /> The company is put under the non-fishing branch of <span style='color:blue;'>**StichtingMarine Shipping Company**</span>."
)
With this visualization, it is now clearer that change of shareholdership puts Liam Conti and Fintan Park out of the sphere of influence of SouthSeafood Express Corp.
As inferred previously, this could have been an effort to distance themselves from SouthSeafood Express Corp to lower the impact of the sanctions and punishments after the fishing company’s illegall fishing activities were discovered.
This is because according to the Theory of Sphere of Influence, one’s influence diminish the farther the other party is. Beyond the 3rd, degree the effect may not be too noticeable.
6.6.3 Connected Network
Show the code
%>%
supernetwork extract_subnetwork(node_name = "SouthSeafood Express Corp") %>%
convert_graph_to_power_flow() %>%
plot_fishing_power(
emphasize_nodes = c(
"SouthSeafood Express Corp",
"AguaLeska Transit N.V.",
"StichtingMarine Shipping Company",
"SavanetaCreek Solutions NV",
"Liam Conti",
"Fintan Park"
),datestring = "2035-05-24",
title = "Power Graph: SouthSeafood Express Corp's Connected Nodes (May 24, 2035)",
subtitle = "This shows the full view of the network connected to SouthSeafood Express Corp in any way at any point in time",
caption = "Highlighted nodes are with *SouthSeafood Express Corp's* **Sphere of Influence**. Hover on the nodes to see more details."
)
Show the code
%>%
supernetwork extract_subnetwork(node_name = "SouthSeafood Express Corp") %>%
convert_graph_to_power_flow() %>%
plot_fishing_power(
emphasize_nodes = c(
"SouthSeafood Express Corp",
"Tainamarine Fishing Co",
"V. Miesel Shipping",
"Namorna Transit Ltd"
),datestring = "2035-05-25",
title = "Power Graph: SouthSeafood Express Corp's Sphere of Influence (May 25, 2035)",
subtitle = "This shows the full view of the network connected to SouthSeafood Express Corp in any way at any point in time",
caption = "Highlighted nodes are with *SouthSeafood Express Corp's* **Sphere of Influence**. Hover on the nodes to see more details."
)
We can see that SouthSeafood Express Corp’s Sphere of Influence only tells part of the story in this part of the fishing business network.
By generating this power graph, we can more easily see that most of the Person nodes with arrows pointing have the Conti family name. These are:
Liam Conti, and his wife Nadia
Nathan Conti
Fabio Conti
Lemuel Conti
Lena Conti - Park
Fintan Park is also part of the Conti Clan by marriage to Lena Conti-Park. This indicates that the Conti Clan controls the fishing business in this network. They do this by holding shares of fishing companies through the companies that they own.
7 Measures of Centrality
In 1.2 Methodology, we defined the influential entities as having 2 types:
Type 1: Power holders - entities who hold the most power and main beneficiaries of resources in the network.
Type 2: Power brokers - entities who facilitate the transfer of power/resources from a less powerful entity to another.
7.1 Appropriate measures of centrality
To identify the most powerful nodes/entities in the network, we will use page rank centrality. Originally developed by Google, this is used in ranking web pages. The principle is that the more incoming edges a node has, the more influential it is and nodes to which they are connected share of that influence. (Disney, 2020)
This measure for centrality is useful in this context as in our power graph, the node where the power flow stops is the most powerful node as they have the ultimate control over all the nodes inwardly connected to them.
The main candidates for these are the BeneficialOwners and Shareholders.
To identify the power brokers, we will use betweenness centrality.
Power Brokers must be nodes with both incoming and outgoing edges, so that they can connect a more powerful node to a less powerful node. Hence, having a large number of edges connected to a node is not enough (which the degree centrality offers).
This is because if a node only has incoming or outgoing edges, it won’t be able to connect to other nodes to keep the flow going.
7.2 Generating template graphs
We will again use the networks of SouthSeafood Express Corp to check how these centrality measures play in the network.
We will use the power graphs of Sphere of Influence and the Connected Network.
For the purpose of visualization, we will use these graphs as templates for visualization so they have the same layouts even if the edges change through time.
<- supernetwork %>%
sfec_sphere_of_influence_power extract_subnetwork(node_name = "SouthSeafood Express Corp", distance = 3) %>%
convert_graph_to_power_flow()
<- supernetwork %>%
sfec_connected_network_power extract_subnetwork(node_name = "SouthSeafood Express Corp") %>%
convert_graph_to_power_flow()
7.3 Calculating measures of centrality
We will now calculate the measures of centrality before and from May 25, 2035. We will use extract_network_snapshot()
to do this.
After the calculation, we will extract the node dataframe to join with the template
We cannot just calculate the the measures of centrality and hide the inactive edges in the visualization.
This is because the network structure itself change, which affect the calculations. Hence, we will do the calculations on the underlying network snapshot itself then join the calculations with the template graphs we generated above for visualization.
7.3.1 Sphere of Influence
<- sfec_sphere_of_influence_power %>%
nodes_influence_before extract_network_snapshot('2035-05-24') %>%
mutate(
pagerank = centrality_pagerank(weights = E(.)$weight),
betweenness = centrality_betweenness(weights = E(.)$weight, normalized = TRUE)
%>%
) as_data_frame(what="vertices")
%>% arrange(name) %>% select(-name) %>% kable() nodes_influence_before
alias | supertype | subtype | pagerank | betweenness | |
---|---|---|---|---|---|
AguaLeska Transit N.V. | ATNV | Organization | FishingCompany | 0.0355032 | 0.0454545 |
Elise Hauser | EH | Person | Person | 0.0191909 | 0.0000000 |
Fintan Park | FP | Person | Person | 0.0944603 | 0.0000000 |
Liam Conti | LC | Person | Person | 0.2686402 | 0.0727273 |
Nadia Conti | NC | Person | Person | 0.2475351 | 0.0000000 |
Namorna Transit Ltd | NTL | Organization | Company | 0.0632341 | 0.1363636 |
Sanaa El-Amin | SEA | Person | Person | 0.0191909 | 0.0000000 |
SavanetaCreek Solutions NV | SSN | Organization | LogisticsCompany | 0.0426176 | 0.0000000 |
SouthSeafood Express Corp | SEC | Organization | FishingCompany | 0.0191909 | 0.0000000 |
StichtingMarine Shipping Company | SSC | Organization | FishingCompany | 0.1194300 | 0.2545455 |
Tainamarine Fishing Co | TFC | Organization | FishingCompany | 0.0191909 | 0.0000000 |
V. Miesel Shipping | VMS | Organization | Company | 0.0518155 | 0.1090909 |
<- sfec_sphere_of_influence_power %>%
nodes_influence_after extract_network_snapshot('2035-05-25') %>%
mutate(
pagerank = centrality_pagerank(weights = E(.)$weight),
betweenness = centrality_betweenness(weights = E(.)$weight, normalized = TRUE)
%>%
) as_data_frame(what="vertices")
%>% arrange(name) %>% select(-name) %>% kable() nodes_influence_after
alias | supertype | subtype | pagerank | betweenness | |
---|---|---|---|---|---|
AguaLeska Transit N.V. | ATNV | Organization | FishingCompany | 0.0189866 | 0.0000000 |
Elise Hauser | EH | Person | Person | 0.0189866 | 0.0000000 |
Fintan Park | FP | Person | Person | 0.0915753 | 0.0000000 |
Liam Conti | LC | Person | Person | 0.2612949 | 0.0727273 |
Nadia Conti | NC | Person | Person | 0.2410872 | 0.0000000 |
Namorna Transit Ltd | NTL | Organization | Company | 0.0742209 | 0.1818182 |
Sanaa El-Amin | SEA | Person | Person | 0.0189866 | 0.0000000 |
SavanetaCreek Solutions NV | SSN | Organization | LogisticsCompany | 0.0414171 | 0.0000000 |
SouthSeafood Express Corp | SEC | Organization | FishingCompany | 0.0189866 | 0.0000000 |
StichtingMarine Shipping Company | SSC | Organization | FishingCompany | 0.1143515 | 0.2545455 |
Tainamarine Fishing Co | TFC | Organization | FishingCompany | 0.0351252 | 0.0636364 |
V. Miesel Shipping | VMS | Organization | Company | 0.0649816 | 0.1636364 |
7.3.2 Connected Network
<- sfec_connected_network_power %>%
nodes_connected_before extract_network_snapshot('2035-05-24') %>%
mutate(
pagerank = centrality_pagerank(weights = E(.)$weight),
betweenness = centrality_betweenness(weights = E(.)$weight, normalized = TRUE)
%>%
) as_data_frame(what="vertices")
%>% arrange(name) %>% select(-name) %>% kable() nodes_connected_before
alias | supertype | subtype | pagerank | betweenness | |
---|---|---|---|---|---|
4. SeaCargo Ges.m.b.H. | 4SGm | Organization | LogisticsCompany | 0.0200378 | 0.0015856 |
9. RiverLine CJSC | 9RC | Organization | Company | 0.0071910 | 0.0010571 |
AguaLeska Transit N.V. | ATNV | Organization | FishingCompany | 0.0100879 | 0.0047569 |
ArawakFish Cargo Ges.m.b.H. | ACGm | Organization | Company | 0.0110149 | 0.0042283 |
BaringoAmerica Marine Ges.m.b.H. | BMGm | Organization | FishingCompany | 0.0054529 | 0.0000000 |
Dry CreekRybachit Marine A/S | DCMA | Organization | FishingCompany | 0.0163835 | 0.0036998 |
Dry CreekWorldLogistics Ltd. Liability Co | DCLL | Organization | LogisticsCompany | 0.0054529 | 0.0000000 |
Elise Hauser | EH | Person | Person | 0.0054529 | 0.0000000 |
Eun-Ji Park | EJP | Person | Person | 0.0054529 | 0.0000000 |
Fabio Conti | FC | Person | Person | 0.0359335 | 0.0000000 |
Fintan Park | FP | Person | Person | 0.1213095 | 0.0121564 |
FlounderLeska Marine BV | FMB | Organization | FishingCompany | 0.0054529 | 0.0000000 |
GvardeyskAmerica Shipping Plc | GSP | Organization | Company | 0.0296475 | 0.0211416 |
Harvey Janus | HJ | Person | Person | 0.0083498 | 0.0000000 |
HomabayMarine Carriers N.V. | HCNV | Organization | Company | 0.0081180 | 0.0021142 |
James Bell | JB | Person | Person | 0.0100879 | 0.0000000 |
KambalaSea Freight Inc | KFI | Organization | Company | 0.0110149 | 0.0021142 |
KisumuSeafoodBrothers Ltd | KL | Organization | FishingCompany | 0.0179674 | 0.0047569 |
Lemuel Conti | LC | Person | Person | 0.0484389 | 0.0000000 |
Lena Conti-Park | LCP | Person | Person | 0.2023729 | 0.0116279 |
Liam Conti | LC | Person | Person | 0.0276357 | 0.0084567 |
Maacama Ocean Worldwide LLC | MOWL | Organization | FishingCompany | 0.0054529 | 0.0000000 |
Nadia Conti | NC | Person | Person | 0.0289432 | 0.0073996 |
NamRiver Transit A/S | NTAS | Organization | LogisticsCompany | 0.0306533 | 0.0211416 |
Namorna Transit Ltd | NTL | Organization | Company | 0.0179674 | 0.0142706 |
Nathan Conti | NC | Person | Person | 0.1103611 | 0.0095137 |
NyanzaRiver Worldwide AS | NWA | Organization | FishingCompany | 0.0172575 | 0.0005285 |
Oka Charter Boat Transport OJSC | OCBT | Organization | Company | 0.0054529 | 0.0000000 |
Oka Seafood Shipping Ges.m.b.H. | OSSG | Organization | FishingCompany | 0.0177538 | 0.0052854 |
OranjestadCreek Express Sagl | OES | Organization | Company | 0.0147229 | 0.0042283 |
Rafael Sanchez | RS | Person | Person | 0.0094033 | 0.0000000 |
RechFish Freight Plc | RFP | Organization | LogisticsCompany | 0.0054529 | 0.0000000 |
SamakaDredgeTransport OJSC | SO | Organization | Company | 0.0054529 | 0.0000000 |
Samuel Conti | SC | Person | Person | 0.0054529 | 0.0000000 |
Sanaa El-Amin | SEA | Person | Person | 0.0054529 | 0.0000000 |
SavanetaCreek Solutions NV | SSN | Organization | LogisticsCompany | 0.0170411 | 0.0058140 |
ScaniaSeafood Holdings Ltd. Liability Co | SHLL | Organization | FishingCompany | 0.0054529 | 0.0000000 |
SouthLeska Worldwide AS | SWA | Organization | FishingCompany | 0.0126558 | 0.0015856 |
SouthSeafood Express Corp | SEC | Organization | FishingCompany | 0.0054529 | 0.0000000 |
StichtingMarine Shipping Company | SSC | Organization | FishingCompany | 0.0302269 | 0.0290698 |
SumacAmerica Transport GmbH & Co. KG | STGC | Organization | LogisticsCompany | 0.0054529 | 0.0000000 |
Tainamarine Fishing Co | TFC | Organization | FishingCompany | 0.0054529 | 0.0000000 |
The News Buoy | TNB | Organization | NewsCompany | 0.0054529 | 0.0000000 |
V. Miesel Shipping | VMS | Organization | Company | 0.0147229 | 0.0105708 |
WestRiver Shipping KgaA | WSK | Organization | Company | 0.0054529 | 0.0000000 |
<- sfec_connected_network_power %>%
nodes_connected_after extract_network_snapshot('2035-05-25') %>%
mutate(
pagerank = centrality_pagerank(weights = E(.)$weight),
betweenness = centrality_betweenness(weights = E(.)$weight, normalized = TRUE)
%>%
) as_data_frame(what="vertices")
%>% arrange(name) %>% select(-name) %>% kable() nodes_connected_after
alias | supertype | subtype | pagerank | betweenness | |
---|---|---|---|---|---|
4. SeaCargo Ges.m.b.H. | 4SGm | Organization | LogisticsCompany | 0.0200305 | 0.0015856 |
9. RiverLine CJSC | 9RC | Organization | Company | 0.0071884 | 0.0010571 |
AguaLeska Transit N.V. | ATNV | Organization | FishingCompany | 0.0054509 | 0.0000000 |
ArawakFish Cargo Ges.m.b.H. | ACGm | Organization | Company | 0.0110109 | 0.0042283 |
BaringoAmerica Marine Ges.m.b.H. | BMGm | Organization | FishingCompany | 0.0054509 | 0.0000000 |
Dry CreekRybachit Marine A/S | DCMA | Organization | FishingCompany | 0.0163775 | 0.0036998 |
Dry CreekWorldLogistics Ltd. Liability Co | DCLL | Organization | LogisticsCompany | 0.0054509 | 0.0000000 |
Elise Hauser | EH | Person | Person | 0.0054509 | 0.0000000 |
Eun-Ji Park | EJP | Person | Person | 0.0054509 | 0.0000000 |
Fabio Conti | FC | Person | Person | 0.0359203 | 0.0000000 |
Fintan Park | FP | Person | Person | 0.1197989 | 0.0121564 |
FlounderLeska Marine BV | FMB | Organization | FishingCompany | 0.0054509 | 0.0000000 |
GvardeyskAmerica Shipping Plc | GSP | Organization | Company | 0.0296367 | 0.0211416 |
Harvey Janus | HJ | Person | Person | 0.0083467 | 0.0000000 |
HomabayMarine Carriers N.V. | HCNV | Organization | Company | 0.0081151 | 0.0021142 |
James Bell | JB | Person | Person | 0.0100842 | 0.0000000 |
KambalaSea Freight Inc | KFI | Organization | Company | 0.0110109 | 0.0021142 |
KisumuSeafoodBrothers Ltd | KL | Organization | FishingCompany | 0.0179608 | 0.0047569 |
Lemuel Conti | LC | Person | Person | 0.0484212 | 0.0000000 |
Lena Conti-Park | LCP | Person | Person | 0.2003477 | 0.0116279 |
Liam Conti | LC | Person | Person | 0.0270662 | 0.0084567 |
Maacama Ocean Worldwide LLC | MOWL | Organization | FishingCompany | 0.0054509 | 0.0000000 |
Nadia Conti | NC | Person | Person | 0.0284572 | 0.0073996 |
NamRiver Transit A/S | NTAS | Organization | LogisticsCompany | 0.0306421 | 0.0211416 |
Namorna Transit Ltd | NTL | Organization | Company | 0.0213083 | 0.0190275 |
Nathan Conti | NC | Person | Person | 0.1094915 | 0.0095137 |
NyanzaRiver Worldwide AS | NWA | Organization | FishingCompany | 0.0172511 | 0.0005285 |
Oka Charter Boat Transport OJSC | OCBT | Organization | Company | 0.0054509 | 0.0000000 |
Oka Seafood Shipping Ges.m.b.H. | OSSG | Organization | FishingCompany | 0.0175452 | 0.0052854 |
OranjestadCreek Express Sagl | OES | Organization | Company | 0.0147175 | 0.0042283 |
Rafael Sanchez | RS | Person | Person | 0.0093353 | 0.0000000 |
RechFish Freight Plc | RFP | Organization | LogisticsCompany | 0.0054509 | 0.0000000 |
SamakaDredgeTransport OJSC | SO | Organization | Company | 0.0054509 | 0.0000000 |
Samuel Conti | SC | Person | Person | 0.0054509 | 0.0000000 |
Sanaa El-Amin | SEA | Person | Person | 0.0054509 | 0.0000000 |
SavanetaCreek Solutions NV | SSN | Organization | LogisticsCompany | 0.0167560 | 0.0058140 |
ScaniaSeafood Holdings Ltd. Liability Co | SHLL | Organization | FishingCompany | 0.0054509 | 0.0000000 |
SouthLeska Worldwide AS | SWA | Organization | FishingCompany | 0.0126512 | 0.0015856 |
SouthSeafood Express Corp | SEC | Organization | FishingCompany | 0.0054509 | 0.0000000 |
StichtingMarine Shipping Company | SSC | Organization | FishingCompany | 0.0291230 | 0.0290698 |
SumacAmerica Transport GmbH & Co. KG | STGC | Organization | LogisticsCompany | 0.0054509 | 0.0000000 |
Tainamarine Fishing Co | TFC | Organization | FishingCompany | 0.0100842 | 0.0058140 |
The News Buoy | TNB | Organization | NewsCompany | 0.0054509 | 0.0000000 |
V. Miesel Shipping | VMS | Organization | Company | 0.0186558 | 0.0158562 |
WestRiver Shipping KgaA | WSK | Organization | Company | 0.0054509 | 0.0000000 |
7.3.3 Putting it all together
We will combine the calculated measures in the template graphs.
<- sfec_sphere_of_influence_power %>%
sfec_sphere_of_influence_power left_join(
%>% rename(
nodes_influence_before d_20350524.pagerank = pagerank,
d_20350524.betweenness = betweenness
)%>%
) left_join(
%>% rename(
nodes_influence_after d_20350525.pagerank = pagerank,
d_20350525.betweenness = betweenness
) )
<- sfec_connected_network_power %>%
sfec_connected_network_power left_join(
%>% rename(
nodes_connected_before d_20350524.pagerank = pagerank,
d_20350524.betweenness = betweenness
)%>%
) left_join(
%>% rename(
nodes_connected_after d_20350525.pagerank = pagerank,
d_20350525.betweenness = betweenness
) )
8 Visualizing Influential Nodes
We will use plot_centrality
to identify the most powerful nodes by visualizing the measures of centrality of the nodes.
Show the code for plot_centrality()
<- function(graph,
plot_centrality # Column containing centrality measure, can be
# pagerank: for most powerful nodes
# betweeness: for power brokers
centrality_col,# Name of nodes to emphasize
emphasize_nodes = c(),
# Date where to get the snapshot
datestring = NULL,
# Layout options
layout = "nicely",
circular = FALSE,
# Texts
title = NULL,
subtitle = NULL,
caption = paste("*Bigger and brighter nodes are more influential.", STYLES$default_caption),
# Plot styling
arrow_margin = STYLES$arrow_margin / 2,
edge_thickness = STYLES$base_edge_thickness,
# Seed
seed_num = CONFIGS$default_seed) {
set.seed(seed_num)
= NULL
centrality_type
if (endsWith(centrality_col, "pagerank")) {
= "pagerank"
centrality_type else if (endsWith(centrality_col, "betweenness")) {
} = "betweenness"
centrality_type
}
if (!(centrality_type %in% c("pagerank", "betweenness"))) {
stop("Only pagerank and betweenness centralities are relevant in our analysis")
}
<- NULL
date if(!is.null(datestring)) { date <- as_date(datestring) }
<- as_data_frame(graph, what = "vertices")
nodes <- (nodes[[centrality_col]] %>% max()) * 0.6
score_boundary
<- as_data_frame(graph, what = "edges")
edges <- edges$weight %>% max()
max_weight <- edges$weight %>% min()
min_weight
<- ggraph(graph, layout = layout, circular = circular) +
g # Render nodes
geom_point_interactive(
aes(
x = x,
y = y,
data_id = name,
tooltip = sprintf("%s (%s)<br/>Score: %0.5f", name, subtype, .data[[centrality_col]]),
# To show people as triangle, organizations as circle
# See scale_shape_manual code below
shape = supertype,
# Get centrality measures from a column
fill = .data[[centrality_col]],
size = .data[[centrality_col]],
),# Thicken border if emphasized
color = ifelse(
$name %in% emphasize_nodes,
nodes$node_emphasized_border_color,
STYLES$node_border_color
STYLES
),stroke = ifelse(
$name %in% emphasize_nodes,
nodes$node_emphasized_border_stroke,
STYLES$node_border_stroke
STYLES
),+
) geom_node_text(
aes(label = alias),
family = STYLES$font_family,
size = STYLES$node_label_size,
# Nodes with lower centrality have lighter nodes and have black text
color = ifelse(
< score_boundary,
nodes[[centrality_col]] $node_label_dark,
STYLES$node_label_light
STYLES
),fontface = ifelse(nodes$name %in% emphasize_nodes, "bold", "plain"),
+
)
# Render edges. Use geom_edge fan so edges along the same path don't overlap
geom_edge_fan(
aes(color = subtype, edge_width = weight,
# Will identify if the edge is active at this date, if not do not display
# Ideally this should be in a function but I can't figure out how to make it work inside aes
# Logic is same as is extract_network_snapshot.R
filter = ifelse(is.null(date) | is.na(start_date), TRUE,
ifelse(start_date <= date & (is.na(end_date) | end_date > date),
TRUE,
FALSE
)
)),strength = 0.5,
arrow = STYLES$arrow_style,
end_cap = circle(arrow_margin, "mm"),
start_cap = circle(arrow_margin, "mm"),
alpha = 0.8
+
) scale_shape_manual(values = MAPPINGS$node_supertype_to_shape) +
scale_edge_color_manual(values = MAPPINGS$edge_power_subtype_to_color) +
# Centrality visualization
scale_fill_gradient(
high = ifelse(
== "pagerank",
centrality_type $primary_color,
STYLES$secondary_color
STYLES
),low = ifelse(
== "pagerank",
centrality_type $primary_light_color,
STYLES$secondary_light_color
STYLES
)+
) scale_size_continuous(range = c(3, 12), guide = FALSE) +
# Make sure edge widths are consistent across diff graphs
scale_edge_width(
range = c(min_weight * edge_thickness, max_weight * edge_thickness),
guide = "none"
+
)
# Change legend names
labs(
fill = ifelse(
== "pagerank",
centrality_type "PageRank Score",
"Betweenness Score"
),shape = "Node Supertypes",
edge_color = "Edge Subtypes"
+
)
# Make sure the plot is not clipped
scale_x_continuous(expand = expansion(mult = c(0.10, 0.10))) +
scale_y_continuous(expand = expansion(mult = c(0.10, 0.10))) +
# Style legend keys
guides(
shape = guide_legend(
override.aes = list(
size = 3,
fill = STYLES$primary_color
),order = 1
),edge_color = guide_legend(order = 2),
fill = guide_colorbar(order = 3)
+
)
# Style graph
unset_graph_style() +
theme_graph(base_family = STYLES$font_family,
plot_margin = margin(0)) +
plot_annotation(title = title,
subtitle = subtitle,
caption = caption) &
COMMON_THEME
girafe(
ggobj = g,
width_svg = STYLES$svg_width,
height_svg = STYLES$svg_height,
options = list(opts_tooltip(css = STYLES$tooltip_css))
) }
8.1 Power Holders - Sphere of influence
8.1.1 Graph
%>%
sfec_sphere_of_influence_power plot_centrality(
centrality_col = "d_20350524.pagerank",
datestring = "2035-05-24",
title = "The Power Holders: SouthSeafood Express Corp's Sphere of Influence (May 24, 2035)",
subtitle = "A higher value of **pagerank centrality** means the entity has higher power and gets more benefits from the network.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
%>%
sfec_sphere_of_influence_power plot_centrality(
centrality_col = "d_20350525.pagerank",
datestring = "2035-05-25",
title = "The Power Holders: SouthSeafood Express Corp's Sphere of Influence (May 25, 2035)",
subtitle = "A higher value of **pagerank centrality** means the entity has higher power and gets more benefits from the network.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
8.1.2 Table
%>%
nodes_influence_before arrange(-pagerank) %>%
select(alias, pagerank, supertype, subtype) %>%
kable()
alias | pagerank | supertype | subtype | |
---|---|---|---|---|
Liam Conti | LC | 0.2686402 | Person | Person |
Nadia Conti | NC | 0.2475351 | Person | Person |
StichtingMarine Shipping Company | SSC | 0.1194300 | Organization | FishingCompany |
Fintan Park | FP | 0.0944603 | Person | Person |
Namorna Transit Ltd | NTL | 0.0632341 | Organization | Company |
V. Miesel Shipping | VMS | 0.0518155 | Organization | Company |
SavanetaCreek Solutions NV | SSN | 0.0426176 | Organization | LogisticsCompany |
AguaLeska Transit N.V. | ATNV | 0.0355032 | Organization | FishingCompany |
SouthSeafood Express Corp | SEC | 0.0191909 | Organization | FishingCompany |
Tainamarine Fishing Co | TFC | 0.0191909 | Organization | FishingCompany |
Sanaa El-Amin | SEA | 0.0191909 | Person | Person |
Elise Hauser | EH | 0.0191909 | Person | Person |
%>%
nodes_influence_after arrange(-pagerank) %>%
select(alias, pagerank, supertype, subtype) %>%
kable()
alias | pagerank | supertype | subtype | |
---|---|---|---|---|
Liam Conti | LC | 0.2612949 | Person | Person |
Nadia Conti | NC | 0.2410872 | Person | Person |
StichtingMarine Shipping Company | SSC | 0.1143515 | Organization | FishingCompany |
Fintan Park | FP | 0.0915753 | Person | Person |
Namorna Transit Ltd | NTL | 0.0742209 | Organization | Company |
V. Miesel Shipping | VMS | 0.0649816 | Organization | Company |
SavanetaCreek Solutions NV | SSN | 0.0414171 | Organization | LogisticsCompany |
Tainamarine Fishing Co | TFC | 0.0351252 | Organization | FishingCompany |
AguaLeska Transit N.V. | ATNV | 0.0189866 | Organization | FishingCompany |
SouthSeafood Express Corp | SEC | 0.0189866 | Organization | FishingCompany |
Sanaa El-Amin | SEA | 0.0189866 | Person | Person |
Elise Hauser | EH | 0.0189866 | Person | Person |
This plot confirms that the power holders in the network are Conti Clan members, especially Liam and Nadia Conti.
The change in shareholders very slightly weakened the power of Conti Clan members.
In fact, only the 3 entities involved – SouthSeafood Express Corp, AguaLeska Transit N.V., and Tainamarine Fishing Co had their rankings changed.
In addition, only Namorna Transit Ltd, V. Miesel Shipping had their pagerank centrality increase by 10%+. This seems consistent with the Theory of Sphere of Influence.
8.2 Power Holders - Connected Network
8.2.1 Graph
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350524.pagerank",
datestring = "2035-05-24",
title = "The Power Holders: SouthSeafood Express Corp's Sphere of Influence (May 24, 2035)",
subtitle = "A higher value of **pagerank centrality** means the entity has higher power and gets more benefits from the network.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350525.pagerank",
datestring = "2035-05-25",
title = "The Power Holders: SouthSeafood Express Corp's Sphere of Influence (May 25, 2035)",
subtitle = "A higher value of **pagerank centrality** means the entity has higher power and gets more benefits from the network.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
8.2.2 Table
%>%
nodes_connected_before arrange(-pagerank) %>%
select(alias, pagerank, supertype, subtype) %>%
kable()
alias | pagerank | supertype | subtype | |
---|---|---|---|---|
Lena Conti-Park | LCP | 0.2023729 | Person | Person |
Fintan Park | FP | 0.1213095 | Person | Person |
Nathan Conti | NC | 0.1103611 | Person | Person |
Lemuel Conti | LC | 0.0484389 | Person | Person |
Fabio Conti | FC | 0.0359335 | Person | Person |
NamRiver Transit A/S | NTAS | 0.0306533 | Organization | LogisticsCompany |
StichtingMarine Shipping Company | SSC | 0.0302269 | Organization | FishingCompany |
GvardeyskAmerica Shipping Plc | GSP | 0.0296475 | Organization | Company |
Nadia Conti | NC | 0.0289432 | Person | Person |
Liam Conti | LC | 0.0276357 | Person | Person |
4. SeaCargo Ges.m.b.H. | 4SGm | 0.0200378 | Organization | LogisticsCompany |
KisumuSeafoodBrothers Ltd | KL | 0.0179674 | Organization | FishingCompany |
Namorna Transit Ltd | NTL | 0.0179674 | Organization | Company |
Oka Seafood Shipping Ges.m.b.H. | OSSG | 0.0177538 | Organization | FishingCompany |
NyanzaRiver Worldwide AS | NWA | 0.0172575 | Organization | FishingCompany |
SavanetaCreek Solutions NV | SSN | 0.0170411 | Organization | LogisticsCompany |
Dry CreekRybachit Marine A/S | DCMA | 0.0163835 | Organization | FishingCompany |
OranjestadCreek Express Sagl | OES | 0.0147229 | Organization | Company |
V. Miesel Shipping | VMS | 0.0147229 | Organization | Company |
SouthLeska Worldwide AS | SWA | 0.0126558 | Organization | FishingCompany |
ArawakFish Cargo Ges.m.b.H. | ACGm | 0.0110149 | Organization | Company |
KambalaSea Freight Inc | KFI | 0.0110149 | Organization | Company |
James Bell | JB | 0.0100879 | Person | Person |
AguaLeska Transit N.V. | ATNV | 0.0100879 | Organization | FishingCompany |
Rafael Sanchez | RS | 0.0094033 | Person | Person |
Harvey Janus | HJ | 0.0083498 | Person | Person |
HomabayMarine Carriers N.V. | HCNV | 0.0081180 | Organization | Company |
9. RiverLine CJSC | 9RC | 0.0071910 | Organization | Company |
The News Buoy | TNB | 0.0054529 | Organization | NewsCompany |
BaringoAmerica Marine Ges.m.b.H. | BMGm | 0.0054529 | Organization | FishingCompany |
Dry CreekWorldLogistics Ltd. Liability Co | DCLL | 0.0054529 | Organization | LogisticsCompany |
FlounderLeska Marine BV | FMB | 0.0054529 | Organization | FishingCompany |
Maacama Ocean Worldwide LLC | MOWL | 0.0054529 | Organization | FishingCompany |
Oka Charter Boat Transport OJSC | OCBT | 0.0054529 | Organization | Company |
RechFish Freight Plc | RFP | 0.0054529 | Organization | LogisticsCompany |
SamakaDredgeTransport OJSC | SO | 0.0054529 | Organization | Company |
ScaniaSeafood Holdings Ltd. Liability Co | SHLL | 0.0054529 | Organization | FishingCompany |
SouthSeafood Express Corp | SEC | 0.0054529 | Organization | FishingCompany |
SumacAmerica Transport GmbH & Co. KG | STGC | 0.0054529 | Organization | LogisticsCompany |
Tainamarine Fishing Co | TFC | 0.0054529 | Organization | FishingCompany |
WestRiver Shipping KgaA | WSK | 0.0054529 | Organization | Company |
Samuel Conti | SC | 0.0054529 | Person | Person |
Sanaa El-Amin | SEA | 0.0054529 | Person | Person |
Eun-Ji Park | EJP | 0.0054529 | Person | Person |
Elise Hauser | EH | 0.0054529 | Person | Person |
%>%
nodes_connected_after arrange(-pagerank) %>%
select(alias, pagerank, supertype, subtype) %>%
kable()
alias | pagerank | supertype | subtype | |
---|---|---|---|---|
Lena Conti-Park | LCP | 0.2003477 | Person | Person |
Fintan Park | FP | 0.1197989 | Person | Person |
Nathan Conti | NC | 0.1094915 | Person | Person |
Lemuel Conti | LC | 0.0484212 | Person | Person |
Fabio Conti | FC | 0.0359203 | Person | Person |
NamRiver Transit A/S | NTAS | 0.0306421 | Organization | LogisticsCompany |
GvardeyskAmerica Shipping Plc | GSP | 0.0296367 | Organization | Company |
StichtingMarine Shipping Company | SSC | 0.0291230 | Organization | FishingCompany |
Nadia Conti | NC | 0.0284572 | Person | Person |
Liam Conti | LC | 0.0270662 | Person | Person |
Namorna Transit Ltd | NTL | 0.0213083 | Organization | Company |
4. SeaCargo Ges.m.b.H. | 4SGm | 0.0200305 | Organization | LogisticsCompany |
V. Miesel Shipping | VMS | 0.0186558 | Organization | Company |
KisumuSeafoodBrothers Ltd | KL | 0.0179608 | Organization | FishingCompany |
Oka Seafood Shipping Ges.m.b.H. | OSSG | 0.0175452 | Organization | FishingCompany |
NyanzaRiver Worldwide AS | NWA | 0.0172511 | Organization | FishingCompany |
SavanetaCreek Solutions NV | SSN | 0.0167560 | Organization | LogisticsCompany |
Dry CreekRybachit Marine A/S | DCMA | 0.0163775 | Organization | FishingCompany |
OranjestadCreek Express Sagl | OES | 0.0147175 | Organization | Company |
SouthLeska Worldwide AS | SWA | 0.0126512 | Organization | FishingCompany |
ArawakFish Cargo Ges.m.b.H. | ACGm | 0.0110109 | Organization | Company |
KambalaSea Freight Inc | KFI | 0.0110109 | Organization | Company |
James Bell | JB | 0.0100842 | Person | Person |
Tainamarine Fishing Co | TFC | 0.0100842 | Organization | FishingCompany |
Rafael Sanchez | RS | 0.0093353 | Person | Person |
Harvey Janus | HJ | 0.0083467 | Person | Person |
HomabayMarine Carriers N.V. | HCNV | 0.0081151 | Organization | Company |
9. RiverLine CJSC | 9RC | 0.0071884 | Organization | Company |
The News Buoy | TNB | 0.0054509 | Organization | NewsCompany |
AguaLeska Transit N.V. | ATNV | 0.0054509 | Organization | FishingCompany |
BaringoAmerica Marine Ges.m.b.H. | BMGm | 0.0054509 | Organization | FishingCompany |
Dry CreekWorldLogistics Ltd. Liability Co | DCLL | 0.0054509 | Organization | LogisticsCompany |
FlounderLeska Marine BV | FMB | 0.0054509 | Organization | FishingCompany |
Maacama Ocean Worldwide LLC | MOWL | 0.0054509 | Organization | FishingCompany |
Oka Charter Boat Transport OJSC | OCBT | 0.0054509 | Organization | Company |
RechFish Freight Plc | RFP | 0.0054509 | Organization | LogisticsCompany |
SamakaDredgeTransport OJSC | SO | 0.0054509 | Organization | Company |
ScaniaSeafood Holdings Ltd. Liability Co | SHLL | 0.0054509 | Organization | FishingCompany |
SouthSeafood Express Corp | SEC | 0.0054509 | Organization | FishingCompany |
SumacAmerica Transport GmbH & Co. KG | STGC | 0.0054509 | Organization | LogisticsCompany |
WestRiver Shipping KgaA | WSK | 0.0054509 | Organization | Company |
Samuel Conti | SC | 0.0054509 | Person | Person |
Sanaa El-Amin | SEA | 0.0054509 | Person | Person |
Eun-Ji Park | EJP | 0.0054509 | Person | Person |
Elise Hauser | EH | 0.0054509 | Person | Person |
This plot further confirms the power holders in the wider network are Conti Clan members, with Lena Conti-Park being the most powerful person in the network. This can be because of her association as family member of Fintan Park and Nathan Conti.
In hindsight, we could have put more weight to business connections to our model in 6.3 Score tables as it could be the case that family members are not really involved in the business (will apply this in the project).
Another observation is that the plot in 8.1 Power Holders - Sphere of influence shows Liam and Nadia Conti as more powerful than Fintan Park. However, in the wider network, Fintan Park is more powerful.
Lastly, similar to the previous observation, the impact of SouthSeafood Express Corp’s change in shareholders have little impact on the power holders in this network - the Conti Clan members
8.3 Power Brokers - Sphere of influence
8.3.1 Graph
%>%
sfec_sphere_of_influence_power plot_centrality(
centrality_col = "d_20350524.betweenness",
datestring = "2035-05-24",
title = "The Power Brokers: SouthSeafood Express Corp's Sphere of Influence (May 24, 2035)",
subtitle = "A higher value of **betweenness centrality** means the entity is more capable of connecting entities.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
%>%
sfec_sphere_of_influence_power plot_centrality(
centrality_col = "d_20350525.betweenness",
datestring = "2035-05-25",
title = "The Power Brokers: SouthSeafood Express Corp's Sphere of Influence (May 25, 2035)",
subtitle = "A higher value of **betweenness centrality** means the entity is more capable of connecting entities.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
8.3.2 Table
%>%
nodes_influence_before arrange(-betweenness) %>%
select(alias, betweenness, supertype, subtype) %>%
kable()
alias | betweenness | supertype | subtype | |
---|---|---|---|---|
StichtingMarine Shipping Company | SSC | 0.2545455 | Organization | FishingCompany |
Namorna Transit Ltd | NTL | 0.1363636 | Organization | Company |
V. Miesel Shipping | VMS | 0.1090909 | Organization | Company |
Liam Conti | LC | 0.0727273 | Person | Person |
AguaLeska Transit N.V. | ATNV | 0.0454545 | Organization | FishingCompany |
SavanetaCreek Solutions NV | SSN | 0.0000000 | Organization | LogisticsCompany |
SouthSeafood Express Corp | SEC | 0.0000000 | Organization | FishingCompany |
Tainamarine Fishing Co | TFC | 0.0000000 | Organization | FishingCompany |
Nadia Conti | NC | 0.0000000 | Person | Person |
Fintan Park | FP | 0.0000000 | Person | Person |
Sanaa El-Amin | SEA | 0.0000000 | Person | Person |
Elise Hauser | EH | 0.0000000 | Person | Person |
%>%
nodes_influence_after arrange(-betweenness) %>%
select(alias, betweenness, supertype, subtype) %>%
kable()
alias | betweenness | supertype | subtype | |
---|---|---|---|---|
StichtingMarine Shipping Company | SSC | 0.2545455 | Organization | FishingCompany |
Namorna Transit Ltd | NTL | 0.1818182 | Organization | Company |
V. Miesel Shipping | VMS | 0.1636364 | Organization | Company |
Liam Conti | LC | 0.0727273 | Person | Person |
Tainamarine Fishing Co | TFC | 0.0636364 | Organization | FishingCompany |
AguaLeska Transit N.V. | ATNV | 0.0000000 | Organization | FishingCompany |
SavanetaCreek Solutions NV | SSN | 0.0000000 | Organization | LogisticsCompany |
SouthSeafood Express Corp | SEC | 0.0000000 | Organization | FishingCompany |
Nadia Conti | NC | 0.0000000 | Person | Person |
Fintan Park | FP | 0.0000000 | Person | Person |
Sanaa El-Amin | SEA | 0.0000000 | Person | Person |
Elise Hauser | EH | 0.0000000 | Person | Person |
The power brokers in this network are the companies that act as middlemen between a more powerful entity to a less powerful one and vice versa.
The most notable is StichtingMarine Shipping Company, which the Conti Clan members, Liam Conti and Fintan Park, own. This fishing company is their way to consolidate the power and resources within the system.
Similarly, after the change of SouthSeafood Express Corp shareholder, Tainamarine Fishing Co also took the power broker role from AguaLeska Transit N.V.
8.4 Power Brokers - Connected Network
8.4.1 Graph
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350524.betweenness",
datestring = "2035-05-24",
title = "The Power Brokers: SouthSeafood Express Corp's Connected Network (May 24, 2035)",
subtitle = "A higher value of **betweenness centrality** means the entity is more capable of connecting entities.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350525.betweenness",
datestring = "2035-05-25",
title = "The Power Brokers: SouthSeafood Express Corp's Connected Network (May 25, 2035)",
subtitle = "A higher value of **betweenness centrality** means the entity is more capable of connecting entities.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
8.4.2 Table
%>%
nodes_connected_before arrange(-betweenness) %>%
select(alias, betweenness, supertype, subtype) %>%
kable()
alias | betweenness | supertype | subtype | |
---|---|---|---|---|
StichtingMarine Shipping Company | SSC | 0.0290698 | Organization | FishingCompany |
GvardeyskAmerica Shipping Plc | GSP | 0.0211416 | Organization | Company |
NamRiver Transit A/S | NTAS | 0.0211416 | Organization | LogisticsCompany |
Namorna Transit Ltd | NTL | 0.0142706 | Organization | Company |
Fintan Park | FP | 0.0121564 | Person | Person |
Lena Conti-Park | LCP | 0.0116279 | Person | Person |
V. Miesel Shipping | VMS | 0.0105708 | Organization | Company |
Nathan Conti | NC | 0.0095137 | Person | Person |
Liam Conti | LC | 0.0084567 | Person | Person |
Nadia Conti | NC | 0.0073996 | Person | Person |
SavanetaCreek Solutions NV | SSN | 0.0058140 | Organization | LogisticsCompany |
Oka Seafood Shipping Ges.m.b.H. | OSSG | 0.0052854 | Organization | FishingCompany |
AguaLeska Transit N.V. | ATNV | 0.0047569 | Organization | FishingCompany |
KisumuSeafoodBrothers Ltd | KL | 0.0047569 | Organization | FishingCompany |
ArawakFish Cargo Ges.m.b.H. | ACGm | 0.0042283 | Organization | Company |
OranjestadCreek Express Sagl | OES | 0.0042283 | Organization | Company |
Dry CreekRybachit Marine A/S | DCMA | 0.0036998 | Organization | FishingCompany |
HomabayMarine Carriers N.V. | HCNV | 0.0021142 | Organization | Company |
KambalaSea Freight Inc | KFI | 0.0021142 | Organization | Company |
4. SeaCargo Ges.m.b.H. | 4SGm | 0.0015856 | Organization | LogisticsCompany |
SouthLeska Worldwide AS | SWA | 0.0015856 | Organization | FishingCompany |
9. RiverLine CJSC | 9RC | 0.0010571 | Organization | Company |
NyanzaRiver Worldwide AS | NWA | 0.0005285 | Organization | FishingCompany |
The News Buoy | TNB | 0.0000000 | Organization | NewsCompany |
James Bell | JB | 0.0000000 | Person | Person |
BaringoAmerica Marine Ges.m.b.H. | BMGm | 0.0000000 | Organization | FishingCompany |
Dry CreekWorldLogistics Ltd. Liability Co | DCLL | 0.0000000 | Organization | LogisticsCompany |
FlounderLeska Marine BV | FMB | 0.0000000 | Organization | FishingCompany |
Maacama Ocean Worldwide LLC | MOWL | 0.0000000 | Organization | FishingCompany |
Oka Charter Boat Transport OJSC | OCBT | 0.0000000 | Organization | Company |
RechFish Freight Plc | RFP | 0.0000000 | Organization | LogisticsCompany |
SamakaDredgeTransport OJSC | SO | 0.0000000 | Organization | Company |
ScaniaSeafood Holdings Ltd. Liability Co | SHLL | 0.0000000 | Organization | FishingCompany |
SouthSeafood Express Corp | SEC | 0.0000000 | Organization | FishingCompany |
SumacAmerica Transport GmbH & Co. KG | STGC | 0.0000000 | Organization | LogisticsCompany |
Tainamarine Fishing Co | TFC | 0.0000000 | Organization | FishingCompany |
WestRiver Shipping KgaA | WSK | 0.0000000 | Organization | Company |
Fabio Conti | FC | 0.0000000 | Person | Person |
Lemuel Conti | LC | 0.0000000 | Person | Person |
Samuel Conti | SC | 0.0000000 | Person | Person |
Rafael Sanchez | RS | 0.0000000 | Person | Person |
Sanaa El-Amin | SEA | 0.0000000 | Person | Person |
Eun-Ji Park | EJP | 0.0000000 | Person | Person |
Elise Hauser | EH | 0.0000000 | Person | Person |
Harvey Janus | HJ | 0.0000000 | Person | Person |
%>%
nodes_connected_after arrange(-betweenness) %>%
select(alias, betweenness, supertype, subtype) %>%
kable()
alias | betweenness | supertype | subtype | |
---|---|---|---|---|
StichtingMarine Shipping Company | SSC | 0.0290698 | Organization | FishingCompany |
GvardeyskAmerica Shipping Plc | GSP | 0.0211416 | Organization | Company |
NamRiver Transit A/S | NTAS | 0.0211416 | Organization | LogisticsCompany |
Namorna Transit Ltd | NTL | 0.0190275 | Organization | Company |
V. Miesel Shipping | VMS | 0.0158562 | Organization | Company |
Fintan Park | FP | 0.0121564 | Person | Person |
Lena Conti-Park | LCP | 0.0116279 | Person | Person |
Nathan Conti | NC | 0.0095137 | Person | Person |
Liam Conti | LC | 0.0084567 | Person | Person |
Nadia Conti | NC | 0.0073996 | Person | Person |
SavanetaCreek Solutions NV | SSN | 0.0058140 | Organization | LogisticsCompany |
Tainamarine Fishing Co | TFC | 0.0058140 | Organization | FishingCompany |
Oka Seafood Shipping Ges.m.b.H. | OSSG | 0.0052854 | Organization | FishingCompany |
KisumuSeafoodBrothers Ltd | KL | 0.0047569 | Organization | FishingCompany |
ArawakFish Cargo Ges.m.b.H. | ACGm | 0.0042283 | Organization | Company |
OranjestadCreek Express Sagl | OES | 0.0042283 | Organization | Company |
Dry CreekRybachit Marine A/S | DCMA | 0.0036998 | Organization | FishingCompany |
HomabayMarine Carriers N.V. | HCNV | 0.0021142 | Organization | Company |
KambalaSea Freight Inc | KFI | 0.0021142 | Organization | Company |
4. SeaCargo Ges.m.b.H. | 4SGm | 0.0015856 | Organization | LogisticsCompany |
SouthLeska Worldwide AS | SWA | 0.0015856 | Organization | FishingCompany |
9. RiverLine CJSC | 9RC | 0.0010571 | Organization | Company |
NyanzaRiver Worldwide AS | NWA | 0.0005285 | Organization | FishingCompany |
The News Buoy | TNB | 0.0000000 | Organization | NewsCompany |
James Bell | JB | 0.0000000 | Person | Person |
AguaLeska Transit N.V. | ATNV | 0.0000000 | Organization | FishingCompany |
BaringoAmerica Marine Ges.m.b.H. | BMGm | 0.0000000 | Organization | FishingCompany |
Dry CreekWorldLogistics Ltd. Liability Co | DCLL | 0.0000000 | Organization | LogisticsCompany |
FlounderLeska Marine BV | FMB | 0.0000000 | Organization | FishingCompany |
Maacama Ocean Worldwide LLC | MOWL | 0.0000000 | Organization | FishingCompany |
Oka Charter Boat Transport OJSC | OCBT | 0.0000000 | Organization | Company |
RechFish Freight Plc | RFP | 0.0000000 | Organization | LogisticsCompany |
SamakaDredgeTransport OJSC | SO | 0.0000000 | Organization | Company |
ScaniaSeafood Holdings Ltd. Liability Co | SHLL | 0.0000000 | Organization | FishingCompany |
SouthSeafood Express Corp | SEC | 0.0000000 | Organization | FishingCompany |
SumacAmerica Transport GmbH & Co. KG | STGC | 0.0000000 | Organization | LogisticsCompany |
WestRiver Shipping KgaA | WSK | 0.0000000 | Organization | Company |
Fabio Conti | FC | 0.0000000 | Person | Person |
Lemuel Conti | LC | 0.0000000 | Person | Person |
Samuel Conti | SC | 0.0000000 | Person | Person |
Rafael Sanchez | RS | 0.0000000 | Person | Person |
Sanaa El-Amin | SEA | 0.0000000 | Person | Person |
Eun-Ji Park | EJP | 0.0000000 | Person | Person |
Elise Hauser | EH | 0.0000000 | Person | Person |
Harvey Janus | HJ | 0.0000000 | Person | Person |
TSimilar to the smaller network, the power brokers in the bigger network are the companies owned by Conti Clan members. These companies transfer the power and resources from the wider network to them.
These are StichtingMarine Shipping Company, GvardeyskAmerica Shipping Plc, NamRiver Transit A/S, Namorna Transit Ltd.
8.5 Curious case of Sanaa El-Amin
Consider Sanaa El-Amin, an entity within SouthSeafood Express Corp’s connected network (snapshot after the shareholder change).
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350525.pagerank",
datestring = "2035-05-25",
emphasize_nodes = c("Sanaa El-Amin"),
title = "The Power Holders: Sanaa El-Amin's Connected Network (May 25, 2035)",
subtitle = "A higher value of **pagerank centrality** means the entity has higher power and gets more benefits from the network.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details."
)
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350525.betweenness",
datestring = "2035-05-25",
emphasize_nodes = c("Sanaa El-Amin"),
title = "The Power Holders: Sanaa El-Amin's Connected Network (May 25, 2035)",
subtitle = "A higher value of **betweenness centrality** means the entity is more capable of connecting entities.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details."
)
Sanaa El-Amin is not influential, according to the metrics that we set but she works with a lot of companies in the network. This includes GvardeyskAmerica Shipping Plc , NamRiver Transit A/S, and StichtingMarine Shipping Company, which are the strongest power brokers in the network.
It can imply that she is an expert in the industry so various companies hire her (perhaps as a consultant). Although she does not own any companies, nor hold shares in any, she may hold some influence in the network as influential companies depend on her services.
8.5.1 Measures of centrality to identify this influence
Possible measures of centrality that can identify her influence could be eigenvector centrality. In eigenvector centrality, the principle the more influential your neighbors are, the more influential you are. This can be interpreted such that her association with influential companies also gives her influence.
Other measures of centrality that can identify this particular are hub centrality (due to her direct connection with influential nodes) and degree centrality (due to the number of outgoing edges).
Despite this observation, we will not update the power model, nor add another measure of centrality to our visualizations.
This is because we acknowledged that the model we created in 6.3 Score tables is imperfect and we lack information to model the power dynamics in the network accurately.
However, it is enough that we learn that our model will not identify all influential people in the network, and can even misidentify some entities as influential.
9 Mini-Challenge 3
We are going to answer these questions based on the insights we gained from previous visualizations.
Original plan to answer this questions is by generating animations of the snapshots of the network.
However, as we cannot do animations, we will work backwards by looking at suspicious events and plotting the graphs manually based on snapshots on those dates.
9.1 Looking for suspicious dates
As the suspicious transactions on SouthSeafood Express Corp happened on 2035-05-25
, we will look at relationships that started or ended from 2035.
= as_date("2035-01-01")
date %>%
supernetwork extract_subnetwork(node_name="SouthSeafood Express Corp") %>%
as_data_frame(what = "edges") %>%
filter(start_date >= date | end_date >= date) %>%
arrange(start_date) %>%
kable()
from | to | supertype | subtype | start_date | end_date | weight |
---|---|---|---|---|---|---|
Liam Conti | AguaLeska Transit N.V. | Ownership | Shareholdership | 2028-06-10 | 2035-05-15 | 1 |
StichtingMarine Shipping Company | AguaLeska Transit N.V. | Ownership | Shareholdership | 2029-08-17 | 2035-06-02 | 1 |
AguaLeska Transit N.V. | SouthSeafood Express Corp | Ownership | Shareholdership | 2033-10-29 | 2035-05-25 | 1 |
Namorna Transit Ltd | V. Miesel Shipping | Ownership | Shareholdership | 2035-05-18 | NA | 1 |
StichtingMarine Shipping Company | Namorna Transit Ltd | Ownership | Shareholdership | 2035-05-18 | NA | 1 |
Elise Hauser | V. Miesel Shipping | Employment | WorksFor | 2035-05-18 | NA | 1 |
V. Miesel Shipping | Tainamarine Fishing Co | Ownership | Shareholdership | 2035-05-20 | NA | 1 |
Tainamarine Fishing Co | SouthSeafood Express Corp | Ownership | Shareholdership | 2035-05-25 | NA | 1 |
Samuel Conti | The News Buoy | Ownership | Shareholdership | 2035-05-31 | NA | 1 |
Liam Conti | StichtingMarine Shipping Company | Ownership | Shareholdership | 2035-06-10 | NA | 1 |
Harvey Janus | SamakaDredgeTransport OJSC | Ownership | Shareholdership | 2035-11-15 | NA | 1 |
Based from this list, the dates are:
2035-05-14
- Add a day before to see the state before the series of transactions2035-05-15
2035-05-18
2035-05-20
2035-05-25
2035-05-31
2035-06-02
2035-06-10
2035-11-15
9.2 Calculate measures of centrality
Show the code
<- sfec_connected_network_power %>%
nodes_connected_0514 select(name, alias, supertype, subtype) %>%
extract_network_snapshot('2035-05-14') %>%
mutate(
pagerank = centrality_pagerank(weights = E(.)$weight),
betweenness = centrality_betweenness(weights = E(.)$weight, normalized = TRUE)
%>%
) as_data_frame(what="vertices")
%>% arrange(name) %>% select(-name) %>% kable() nodes_connected_0514
alias | supertype | subtype | pagerank | betweenness | |
---|---|---|---|---|---|
4. SeaCargo Ges.m.b.H. | 4SGm | Organization | LogisticsCompany | 0.0227202 | 0.0015856 |
9. RiverLine CJSC | 9RC | Organization | Company | 0.0081537 | 0.0010571 |
AguaLeska Transit N.V. | ATNV | Organization | FishingCompany | 0.0114383 | 0.0047569 |
ArawakFish Cargo Ges.m.b.H. | ACGm | Organization | Company | 0.0124894 | 0.0042283 |
BaringoAmerica Marine Ges.m.b.H. | BMGm | Organization | FishingCompany | 0.0061829 | 0.0000000 |
Dry CreekRybachit Marine A/S | DCMA | Organization | FishingCompany | 0.0185767 | 0.0036998 |
Dry CreekWorldLogistics Ltd. Liability Co | DCLL | Organization | LogisticsCompany | 0.0061829 | 0.0000000 |
Elise Hauser | EH | Person | Person | 0.0061829 | 0.0000000 |
Eun-Ji Park | EJP | Person | Person | 0.0061829 | 0.0000000 |
Fabio Conti | FC | Person | Person | 0.0407437 | 0.0000000 |
Fintan Park | FP | Person | Person | 0.1124040 | 0.0079281 |
FlounderLeska Marine BV | FMB | Organization | FishingCompany | 0.0061829 | 0.0000000 |
GvardeyskAmerica Shipping Plc | GSP | Organization | Company | 0.0336163 | 0.0211416 |
Harvey Janus | HJ | Person | Person | 0.0094675 | 0.0000000 |
HomabayMarine Carriers N.V. | HCNV | Organization | Company | 0.0092048 | 0.0021142 |
James Bell | JB | Person | Person | 0.0114383 | 0.0000000 |
KambalaSea Freight Inc | KFI | Organization | Company | 0.0124894 | 0.0021142 |
KisumuSeafoodBrothers Ltd | KL | Organization | FishingCompany | 0.0203726 | 0.0047569 |
Lemuel Conti | LC | Person | Person | 0.0549232 | 0.0000000 |
Lena Conti-Park | LCP | Person | Person | 0.1960030 | 0.0095137 |
Liam Conti | LC | Person | Person | 0.0275947 | 0.0042283 |
Maacama Ocean Worldwide LLC | MOWL | Organization | FishingCompany | 0.0061829 | 0.0000000 |
Nadia Conti | NC | Person | Person | 0.0296383 | 0.0052854 |
NamRiver Transit A/S | NTAS | Organization | LogisticsCompany | 0.0347567 | 0.0211416 |
Namorna Transit Ltd | NTL | Organization | Company | 0.0061829 | 0.0000000 |
Nathan Conti | NC | Person | Person | 0.1109139 | 0.0095137 |
NyanzaRiver Worldwide AS | NWA | Organization | FishingCompany | 0.0195676 | 0.0005285 |
Oka Charter Boat Transport OJSC | OCBT | Organization | Company | 0.0061829 | 0.0000000 |
Oka Seafood Shipping Ges.m.b.H. | OSSG | Organization | FishingCompany | 0.0187792 | 0.0052854 |
OranjestadCreek Express Sagl | OES | Organization | Company | 0.0166938 | 0.0042283 |
Rafael Sanchez | RS | Person | Person | 0.0095538 | 0.0000000 |
RechFish Freight Plc | RFP | Organization | LogisticsCompany | 0.0061829 | 0.0000000 |
SamakaDredgeTransport OJSC | SO | Organization | Company | 0.0061829 | 0.0000000 |
Samuel Conti | SC | Person | Person | 0.0061829 | 0.0000000 |
Sanaa El-Amin | SEA | Person | Person | 0.0061829 | 0.0000000 |
SavanetaCreek Solutions NV | SSN | Organization | LogisticsCompany | 0.0145413 | 0.0036998 |
ScaniaSeafood Holdings Ltd. Liability Co | SHLL | Organization | FishingCompany | 0.0061829 | 0.0000000 |
SouthLeska Worldwide AS | SWA | Organization | FishingCompany | 0.0143499 | 0.0015856 |
SouthSeafood Express Corp | SEC | Organization | FishingCompany | 0.0061829 | 0.0000000 |
StichtingMarine Shipping Company | SSC | Organization | FishingCompany | 0.0120952 | 0.0089852 |
SumacAmerica Transport GmbH & Co. KG | STGC | Organization | LogisticsCompany | 0.0061829 | 0.0000000 |
Tainamarine Fishing Co | TFC | Organization | FishingCompany | 0.0061829 | 0.0000000 |
The News Buoy | TNB | Organization | NewsCompany | 0.0061829 | 0.0000000 |
V. Miesel Shipping | VMS | Organization | Company | 0.0061829 | 0.0000000 |
WestRiver Shipping KgaA | WSK | Organization | Company | 0.0061829 | 0.0000000 |
Show the code
<- sfec_connected_network_power %>%
nodes_connected_0515 select(name, alias, supertype, subtype) %>%
extract_network_snapshot('2035-05-15') %>%
mutate(
pagerank = centrality_pagerank(weights = E(.)$weight),
betweenness = centrality_betweenness(weights = E(.)$weight, normalized = TRUE)
%>%
) as_data_frame(what="vertices")
%>% arrange(name) %>% select(-name) %>% kable() nodes_connected_0515
alias | supertype | subtype | pagerank | betweenness | |
---|---|---|---|---|---|
4. SeaCargo Ges.m.b.H. | 4SGm | Organization | LogisticsCompany | 0.0227310 | 0.0015856 |
9. RiverLine CJSC | 9RC | Organization | Company | 0.0081576 | 0.0010571 |
AguaLeska Transit N.V. | ATNV | Organization | FishingCompany | 0.0114438 | 0.0047569 |
ArawakFish Cargo Ges.m.b.H. | ACGm | Organization | Company | 0.0124954 | 0.0042283 |
BaringoAmerica Marine Ges.m.b.H. | BMGm | Organization | FishingCompany | 0.0061858 | 0.0000000 |
Dry CreekRybachit Marine A/S | DCMA | Organization | FishingCompany | 0.0185856 | 0.0036998 |
Dry CreekWorldLogistics Ltd. Liability Co | DCLL | Organization | LogisticsCompany | 0.0061858 | 0.0000000 |
Elise Hauser | EH | Person | Person | 0.0061858 | 0.0000000 |
Eun-Ji Park | EJP | Person | Person | 0.0061858 | 0.0000000 |
Fabio Conti | FC | Person | Person | 0.0407632 | 0.0000000 |
Fintan Park | FP | Person | Person | 0.1143714 | 0.0079281 |
FlounderLeska Marine BV | FMB | Organization | FishingCompany | 0.0061858 | 0.0000000 |
GvardeyskAmerica Shipping Plc | GSP | Organization | Company | 0.0336324 | 0.0211416 |
Harvey Janus | HJ | Person | Person | 0.0094721 | 0.0000000 |
HomabayMarine Carriers N.V. | HCNV | Organization | Company | 0.0092092 | 0.0021142 |
James Bell | JB | Person | Person | 0.0114438 | 0.0000000 |
KambalaSea Freight Inc | KFI | Organization | Company | 0.0124954 | 0.0021142 |
KisumuSeafoodBrothers Ltd | KL | Organization | FishingCompany | 0.0203823 | 0.0047569 |
Lemuel Conti | LC | Person | Person | 0.0549494 | 0.0000000 |
Lena Conti-Park | LCP | Person | Person | 0.1986434 | 0.0095137 |
Liam Conti | LC | Person | Person | 0.0224829 | 0.0042283 |
Maacama Ocean Worldwide LLC | MOWL | Organization | FishingCompany | 0.0061858 | 0.0000000 |
Nadia Conti | NC | Person | Person | 0.0252963 | 0.0052854 |
NamRiver Transit A/S | NTAS | Organization | LogisticsCompany | 0.0347733 | 0.0211416 |
Namorna Transit Ltd | NTL | Organization | Company | 0.0061858 | 0.0000000 |
Nathan Conti | NC | Person | Person | 0.1120492 | 0.0095137 |
NyanzaRiver Worldwide AS | NWA | Organization | FishingCompany | 0.0195770 | 0.0005285 |
Oka Charter Boat Transport OJSC | OCBT | Organization | Company | 0.0061858 | 0.0000000 |
Oka Seafood Shipping Ges.m.b.H. | OSSG | Organization | FishingCompany | 0.0169367 | 0.0052854 |
OranjestadCreek Express Sagl | OES | Organization | Company | 0.0167017 | 0.0042283 |
Rafael Sanchez | RS | Person | Person | 0.0096427 | 0.0000000 |
RechFish Freight Plc | RFP | Organization | LogisticsCompany | 0.0061858 | 0.0000000 |
SamakaDredgeTransport OJSC | SO | Organization | Company | 0.0061858 | 0.0000000 |
Samuel Conti | SC | Person | Person | 0.0061858 | 0.0000000 |
Sanaa El-Amin | SEA | Person | Person | 0.0061858 | 0.0000000 |
SavanetaCreek Solutions NV | SSN | Organization | LogisticsCompany | 0.0149121 | 0.0036998 |
ScaniaSeafood Holdings Ltd. Liability Co | SHLL | Organization | FishingCompany | 0.0061858 | 0.0000000 |
SouthLeska Worldwide AS | SWA | Organization | FishingCompany | 0.0143568 | 0.0015856 |
SouthSeafood Express Corp | SEC | Organization | FishingCompany | 0.0061858 | 0.0000000 |
StichtingMarine Shipping Company | SSC | Organization | FishingCompany | 0.0169646 | 0.0121564 |
SumacAmerica Transport GmbH & Co. KG | STGC | Organization | LogisticsCompany | 0.0061858 | 0.0000000 |
Tainamarine Fishing Co | TFC | Organization | FishingCompany | 0.0061858 | 0.0000000 |
The News Buoy | TNB | Organization | NewsCompany | 0.0061858 | 0.0000000 |
V. Miesel Shipping | VMS | Organization | Company | 0.0061858 | 0.0000000 |
WestRiver Shipping KgaA | WSK | Organization | Company | 0.0061858 | 0.0000000 |
Show the code
<- sfec_connected_network_power %>%
nodes_connected_0518 select(name, alias, supertype, subtype) %>%
extract_network_snapshot('2035-05-18') %>%
mutate(
pagerank = centrality_pagerank(weights = E(.)$weight),
betweenness = centrality_betweenness(weights = E(.)$weight, normalized = TRUE)
%>%
) as_data_frame(what="vertices")
%>% arrange(name) %>% select(-name) %>% kable() nodes_connected_0518
alias | supertype | subtype | pagerank | betweenness | |
---|---|---|---|---|---|
4. SeaCargo Ges.m.b.H. | 4SGm | Organization | LogisticsCompany | 0.0206528 | 0.0015856 |
9. RiverLine CJSC | 9RC | Organization | Company | 0.0074117 | 0.0010571 |
AguaLeska Transit N.V. | ATNV | Organization | FishingCompany | 0.0103975 | 0.0047569 |
ArawakFish Cargo Ges.m.b.H. | ACGm | Organization | Company | 0.0113530 | 0.0042283 |
BaringoAmerica Marine Ges.m.b.H. | BMGm | Organization | FishingCompany | 0.0056203 | 0.0000000 |
Dry CreekRybachit Marine A/S | DCMA | Organization | FishingCompany | 0.0168864 | 0.0036998 |
Dry CreekWorldLogistics Ltd. Liability Co | DCLL | Organization | LogisticsCompany | 0.0056203 | 0.0000000 |
Elise Hauser | EH | Person | Person | 0.0056203 | 0.0000000 |
Eun-Ji Park | EJP | Person | Person | 0.0056203 | 0.0000000 |
Fabio Conti | FC | Person | Person | 0.0370364 | 0.0000000 |
Fintan Park | FP | Person | Person | 0.1204021 | 0.0110994 |
FlounderLeska Marine BV | FMB | Organization | FishingCompany | 0.0056203 | 0.0000000 |
GvardeyskAmerica Shipping Plc | GSP | Organization | Company | 0.0305575 | 0.0211416 |
Harvey Janus | HJ | Person | Person | 0.0086061 | 0.0000000 |
HomabayMarine Carriers N.V. | HCNV | Organization | Company | 0.0083672 | 0.0021142 |
James Bell | JB | Person | Person | 0.0103975 | 0.0000000 |
KambalaSea Freight Inc | KFI | Organization | Company | 0.0113530 | 0.0021142 |
KisumuSeafoodBrothers Ltd | KL | Organization | FishingCompany | 0.0185188 | 0.0047569 |
Lemuel Conti | LC | Person | Person | 0.0499256 | 0.0000000 |
Lena Conti-Park | LCP | Person | Person | 0.2024221 | 0.0110994 |
Liam Conti | LC | Person | Person | 0.0267173 | 0.0073996 |
Maacama Ocean Worldwide LLC | MOWL | Organization | FishingCompany | 0.0056203 | 0.0000000 |
Nadia Conti | NC | Person | Person | 0.0283300 | 0.0068710 |
NamRiver Transit A/S | NTAS | Organization | LogisticsCompany | 0.0315941 | 0.0211416 |
Namorna Transit Ltd | NTL | Organization | Company | 0.0144582 | 0.0095137 |
Nathan Conti | NC | Person | Person | 0.1111294 | 0.0095137 |
NyanzaRiver Worldwide AS | NWA | Organization | FishingCompany | 0.0177871 | 0.0005285 |
Oka Charter Boat Transport OJSC | OCBT | Organization | Company | 0.0056203 | 0.0000000 |
Oka Seafood Shipping Ges.m.b.H. | OSSG | Organization | FishingCompany | 0.0176605 | 0.0052854 |
OranjestadCreek Express Sagl | OES | Organization | Company | 0.0151748 | 0.0042283 |
Rafael Sanchez | RS | Person | Person | 0.0094878 | 0.0000000 |
RechFish Freight Plc | RFP | Organization | LogisticsCompany | 0.0056203 | 0.0000000 |
SamakaDredgeTransport OJSC | SO | Organization | Company | 0.0056203 | 0.0000000 |
Samuel Conti | SC | Person | Person | 0.0056203 | 0.0000000 |
Sanaa El-Amin | SEA | Person | Person | 0.0056203 | 0.0000000 |
SavanetaCreek Solutions NV | SSN | Organization | LogisticsCompany | 0.0166836 | 0.0052854 |
ScaniaSeafood Holdings Ltd. Liability Co | SHLL | Organization | FishingCompany | 0.0056203 | 0.0000000 |
SouthLeska Worldwide AS | SWA | Organization | FishingCompany | 0.0130442 | 0.0015856 |
SouthSeafood Express Corp | SEC | Organization | FishingCompany | 0.0056203 | 0.0000000 |
StichtingMarine Shipping Company | SSC | Organization | FishingCompany | 0.0277031 | 0.0248414 |
SumacAmerica Transport GmbH & Co. KG | STGC | Organization | LogisticsCompany | 0.0056203 | 0.0000000 |
Tainamarine Fishing Co | TFC | Organization | FishingCompany | 0.0056203 | 0.0000000 |
The News Buoy | TNB | Organization | NewsCompany | 0.0056203 | 0.0000000 |
V. Miesel Shipping | VMS | Organization | Company | 0.0103975 | 0.0052854 |
WestRiver Shipping KgaA | WSK | Organization | Company | 0.0056203 | 0.0000000 |
Show the code
<- sfec_connected_network_power %>%
nodes_connected_0520 select(name, alias, supertype, subtype) %>%
extract_network_snapshot('2035-05-20') %>%
mutate(
pagerank = centrality_pagerank(weights = E(.)$weight),
betweenness = centrality_betweenness(weights = E(.)$weight, normalized = TRUE)
%>%
) as_data_frame(what="vertices")
%>% arrange(name) %>% select(-name) %>% kable() nodes_connected_0520
alias | supertype | subtype | pagerank | betweenness | |
---|---|---|---|---|---|
4. SeaCargo Ges.m.b.H. | 4SGm | Organization | LogisticsCompany | 0.0200378 | 0.0015856 |
9. RiverLine CJSC | 9RC | Organization | Company | 0.0071910 | 0.0010571 |
AguaLeska Transit N.V. | ATNV | Organization | FishingCompany | 0.0100879 | 0.0047569 |
ArawakFish Cargo Ges.m.b.H. | ACGm | Organization | Company | 0.0110149 | 0.0042283 |
BaringoAmerica Marine Ges.m.b.H. | BMGm | Organization | FishingCompany | 0.0054529 | 0.0000000 |
Dry CreekRybachit Marine A/S | DCMA | Organization | FishingCompany | 0.0163835 | 0.0036998 |
Dry CreekWorldLogistics Ltd. Liability Co | DCLL | Organization | LogisticsCompany | 0.0054529 | 0.0000000 |
Elise Hauser | EH | Person | Person | 0.0054529 | 0.0000000 |
Eun-Ji Park | EJP | Person | Person | 0.0054529 | 0.0000000 |
Fabio Conti | FC | Person | Person | 0.0359335 | 0.0000000 |
Fintan Park | FP | Person | Person | 0.1213095 | 0.0121564 |
FlounderLeska Marine BV | FMB | Organization | FishingCompany | 0.0054529 | 0.0000000 |
GvardeyskAmerica Shipping Plc | GSP | Organization | Company | 0.0296475 | 0.0211416 |
Harvey Janus | HJ | Person | Person | 0.0083498 | 0.0000000 |
HomabayMarine Carriers N.V. | HCNV | Organization | Company | 0.0081180 | 0.0021142 |
James Bell | JB | Person | Person | 0.0100879 | 0.0000000 |
KambalaSea Freight Inc | KFI | Organization | Company | 0.0110149 | 0.0021142 |
KisumuSeafoodBrothers Ltd | KL | Organization | FishingCompany | 0.0179674 | 0.0047569 |
Lemuel Conti | LC | Person | Person | 0.0484389 | 0.0000000 |
Lena Conti-Park | LCP | Person | Person | 0.2023729 | 0.0116279 |
Liam Conti | LC | Person | Person | 0.0276357 | 0.0084567 |
Maacama Ocean Worldwide LLC | MOWL | Organization | FishingCompany | 0.0054529 | 0.0000000 |
Nadia Conti | NC | Person | Person | 0.0289432 | 0.0073996 |
NamRiver Transit A/S | NTAS | Organization | LogisticsCompany | 0.0306533 | 0.0211416 |
Namorna Transit Ltd | NTL | Organization | Company | 0.0179674 | 0.0142706 |
Nathan Conti | NC | Person | Person | 0.1103611 | 0.0095137 |
NyanzaRiver Worldwide AS | NWA | Organization | FishingCompany | 0.0172575 | 0.0005285 |
Oka Charter Boat Transport OJSC | OCBT | Organization | Company | 0.0054529 | 0.0000000 |
Oka Seafood Shipping Ges.m.b.H. | OSSG | Organization | FishingCompany | 0.0177538 | 0.0052854 |
OranjestadCreek Express Sagl | OES | Organization | Company | 0.0147229 | 0.0042283 |
Rafael Sanchez | RS | Person | Person | 0.0094033 | 0.0000000 |
RechFish Freight Plc | RFP | Organization | LogisticsCompany | 0.0054529 | 0.0000000 |
SamakaDredgeTransport OJSC | SO | Organization | Company | 0.0054529 | 0.0000000 |
Samuel Conti | SC | Person | Person | 0.0054529 | 0.0000000 |
Sanaa El-Amin | SEA | Person | Person | 0.0054529 | 0.0000000 |
SavanetaCreek Solutions NV | SSN | Organization | LogisticsCompany | 0.0170411 | 0.0058140 |
ScaniaSeafood Holdings Ltd. Liability Co | SHLL | Organization | FishingCompany | 0.0054529 | 0.0000000 |
SouthLeska Worldwide AS | SWA | Organization | FishingCompany | 0.0126558 | 0.0015856 |
SouthSeafood Express Corp | SEC | Organization | FishingCompany | 0.0054529 | 0.0000000 |
StichtingMarine Shipping Company | SSC | Organization | FishingCompany | 0.0302269 | 0.0290698 |
SumacAmerica Transport GmbH & Co. KG | STGC | Organization | LogisticsCompany | 0.0054529 | 0.0000000 |
Tainamarine Fishing Co | TFC | Organization | FishingCompany | 0.0054529 | 0.0000000 |
The News Buoy | TNB | Organization | NewsCompany | 0.0054529 | 0.0000000 |
V. Miesel Shipping | VMS | Organization | Company | 0.0147229 | 0.0105708 |
WestRiver Shipping KgaA | WSK | Organization | Company | 0.0054529 | 0.0000000 |
Show the code
<- sfec_connected_network_power %>%
nodes_connected_0525 select(name, alias, supertype, subtype) %>%
extract_network_snapshot('2035-05-25') %>%
mutate(
pagerank = centrality_pagerank(weights = E(.)$weight),
betweenness = centrality_betweenness(weights = E(.)$weight, normalized = TRUE)
%>%
) as_data_frame(what="vertices")
%>% arrange(name) %>% select(-name) %>% kable() nodes_connected_0525
alias | supertype | subtype | pagerank | betweenness | |
---|---|---|---|---|---|
4. SeaCargo Ges.m.b.H. | 4SGm | Organization | LogisticsCompany | 0.0200305 | 0.0015856 |
9. RiverLine CJSC | 9RC | Organization | Company | 0.0071884 | 0.0010571 |
AguaLeska Transit N.V. | ATNV | Organization | FishingCompany | 0.0054509 | 0.0000000 |
ArawakFish Cargo Ges.m.b.H. | ACGm | Organization | Company | 0.0110109 | 0.0042283 |
BaringoAmerica Marine Ges.m.b.H. | BMGm | Organization | FishingCompany | 0.0054509 | 0.0000000 |
Dry CreekRybachit Marine A/S | DCMA | Organization | FishingCompany | 0.0163775 | 0.0036998 |
Dry CreekWorldLogistics Ltd. Liability Co | DCLL | Organization | LogisticsCompany | 0.0054509 | 0.0000000 |
Elise Hauser | EH | Person | Person | 0.0054509 | 0.0000000 |
Eun-Ji Park | EJP | Person | Person | 0.0054509 | 0.0000000 |
Fabio Conti | FC | Person | Person | 0.0359203 | 0.0000000 |
Fintan Park | FP | Person | Person | 0.1197989 | 0.0121564 |
FlounderLeska Marine BV | FMB | Organization | FishingCompany | 0.0054509 | 0.0000000 |
GvardeyskAmerica Shipping Plc | GSP | Organization | Company | 0.0296367 | 0.0211416 |
Harvey Janus | HJ | Person | Person | 0.0083467 | 0.0000000 |
HomabayMarine Carriers N.V. | HCNV | Organization | Company | 0.0081151 | 0.0021142 |
James Bell | JB | Person | Person | 0.0100842 | 0.0000000 |
KambalaSea Freight Inc | KFI | Organization | Company | 0.0110109 | 0.0021142 |
KisumuSeafoodBrothers Ltd | KL | Organization | FishingCompany | 0.0179608 | 0.0047569 |
Lemuel Conti | LC | Person | Person | 0.0484212 | 0.0000000 |
Lena Conti-Park | LCP | Person | Person | 0.2003477 | 0.0116279 |
Liam Conti | LC | Person | Person | 0.0270662 | 0.0084567 |
Maacama Ocean Worldwide LLC | MOWL | Organization | FishingCompany | 0.0054509 | 0.0000000 |
Nadia Conti | NC | Person | Person | 0.0284572 | 0.0073996 |
NamRiver Transit A/S | NTAS | Organization | LogisticsCompany | 0.0306421 | 0.0211416 |
Namorna Transit Ltd | NTL | Organization | Company | 0.0213083 | 0.0190275 |
Nathan Conti | NC | Person | Person | 0.1094915 | 0.0095137 |
NyanzaRiver Worldwide AS | NWA | Organization | FishingCompany | 0.0172511 | 0.0005285 |
Oka Charter Boat Transport OJSC | OCBT | Organization | Company | 0.0054509 | 0.0000000 |
Oka Seafood Shipping Ges.m.b.H. | OSSG | Organization | FishingCompany | 0.0175452 | 0.0052854 |
OranjestadCreek Express Sagl | OES | Organization | Company | 0.0147175 | 0.0042283 |
Rafael Sanchez | RS | Person | Person | 0.0093353 | 0.0000000 |
RechFish Freight Plc | RFP | Organization | LogisticsCompany | 0.0054509 | 0.0000000 |
SamakaDredgeTransport OJSC | SO | Organization | Company | 0.0054509 | 0.0000000 |
Samuel Conti | SC | Person | Person | 0.0054509 | 0.0000000 |
Sanaa El-Amin | SEA | Person | Person | 0.0054509 | 0.0000000 |
SavanetaCreek Solutions NV | SSN | Organization | LogisticsCompany | 0.0167560 | 0.0058140 |
ScaniaSeafood Holdings Ltd. Liability Co | SHLL | Organization | FishingCompany | 0.0054509 | 0.0000000 |
SouthLeska Worldwide AS | SWA | Organization | FishingCompany | 0.0126512 | 0.0015856 |
SouthSeafood Express Corp | SEC | Organization | FishingCompany | 0.0054509 | 0.0000000 |
StichtingMarine Shipping Company | SSC | Organization | FishingCompany | 0.0291230 | 0.0290698 |
SumacAmerica Transport GmbH & Co. KG | STGC | Organization | LogisticsCompany | 0.0054509 | 0.0000000 |
Tainamarine Fishing Co | TFC | Organization | FishingCompany | 0.0100842 | 0.0058140 |
The News Buoy | TNB | Organization | NewsCompany | 0.0054509 | 0.0000000 |
V. Miesel Shipping | VMS | Organization | Company | 0.0186558 | 0.0158562 |
WestRiver Shipping KgaA | WSK | Organization | Company | 0.0054509 | 0.0000000 |
Show the code
<- sfec_connected_network_power %>%
nodes_connected_0531 select(name, alias, supertype, subtype) %>%
extract_network_snapshot('2035-05-31') %>%
mutate(
pagerank = centrality_pagerank(weights = E(.)$weight),
betweenness = centrality_betweenness(weights = E(.)$weight, normalized = TRUE)
%>%
) as_data_frame(what="vertices")
%>% arrange(name) %>% select(-name) %>% kable() nodes_connected_0531
alias | supertype | subtype | pagerank | betweenness | |
---|---|---|---|---|---|
4. SeaCargo Ges.m.b.H. | 4SGm | Organization | LogisticsCompany | 0.0199053 | 0.0015856 |
9. RiverLine CJSC | 9RC | Organization | Company | 0.0071435 | 0.0010571 |
AguaLeska Transit N.V. | ATNV | Organization | FishingCompany | 0.0054169 | 0.0000000 |
ArawakFish Cargo Ges.m.b.H. | ACGm | Organization | Company | 0.0109421 | 0.0042283 |
BaringoAmerica Marine Ges.m.b.H. | BMGm | Organization | FishingCompany | 0.0054169 | 0.0000000 |
Dry CreekRybachit Marine A/S | DCMA | Organization | FishingCompany | 0.0162752 | 0.0036998 |
Dry CreekWorldLogistics Ltd. Liability Co | DCLL | Organization | LogisticsCompany | 0.0054169 | 0.0000000 |
Elise Hauser | EH | Person | Person | 0.0054169 | 0.0000000 |
Eun-Ji Park | EJP | Person | Person | 0.0054169 | 0.0000000 |
Fabio Conti | FC | Person | Person | 0.0363196 | 0.0000000 |
Fintan Park | FP | Person | Person | 0.1198621 | 0.0121564 |
FlounderLeska Marine BV | FMB | Organization | FishingCompany | 0.0054169 | 0.0000000 |
GvardeyskAmerica Shipping Plc | GSP | Organization | Company | 0.0294515 | 0.0211416 |
Harvey Janus | HJ | Person | Person | 0.0082946 | 0.0000000 |
HomabayMarine Carriers N.V. | HCNV | Organization | Company | 0.0080643 | 0.0021142 |
James Bell | JB | Person | Person | 0.0082946 | 0.0000000 |
KambalaSea Freight Inc | KFI | Organization | Company | 0.0109421 | 0.0021142 |
KisumuSeafoodBrothers Ltd | KL | Organization | FishingCompany | 0.0178485 | 0.0047569 |
Lemuel Conti | LC | Person | Person | 0.0481186 | 0.0000000 |
Lena Conti-Park | LCP | Person | Person | 0.2010062 | 0.0121564 |
Liam Conti | LC | Person | Person | 0.0268970 | 0.0084567 |
Maacama Ocean Worldwide LLC | MOWL | Organization | FishingCompany | 0.0054169 | 0.0000000 |
Nadia Conti | NC | Person | Person | 0.0282793 | 0.0073996 |
NamRiver Transit A/S | NTAS | Organization | LogisticsCompany | 0.0304506 | 0.0211416 |
Namorna Transit Ltd | NTL | Organization | Company | 0.0211752 | 0.0190275 |
Nathan Conti | NC | Person | Person | 0.1102429 | 0.0105708 |
NyanzaRiver Worldwide AS | NWA | Organization | FishingCompany | 0.0178771 | 0.0010571 |
Oka Charter Boat Transport OJSC | OCBT | Organization | Company | 0.0054169 | 0.0000000 |
Oka Seafood Shipping Ges.m.b.H. | OSSG | Organization | FishingCompany | 0.0174356 | 0.0052854 |
OranjestadCreek Express Sagl | OES | Organization | Company | 0.0146255 | 0.0042283 |
Rafael Sanchez | RS | Person | Person | 0.0092769 | 0.0000000 |
RechFish Freight Plc | RFP | Organization | LogisticsCompany | 0.0054169 | 0.0000000 |
SamakaDredgeTransport OJSC | SO | Organization | Company | 0.0054169 | 0.0000000 |
Samuel Conti | SC | Person | Person | 0.0071435 | 0.0031712 |
Sanaa El-Amin | SEA | Person | Person | 0.0054169 | 0.0000000 |
SavanetaCreek Solutions NV | SSN | Organization | LogisticsCompany | 0.0166513 | 0.0058140 |
ScaniaSeafood Holdings Ltd. Liability Co | SHLL | Organization | FishingCompany | 0.0054169 | 0.0000000 |
SouthLeska Worldwide AS | SWA | Organization | FishingCompany | 0.0133059 | 0.0031712 |
SouthSeafood Express Corp | SEC | Organization | FishingCompany | 0.0054169 | 0.0000000 |
StichtingMarine Shipping Company | SSC | Organization | FishingCompany | 0.0289409 | 0.0290698 |
SumacAmerica Transport GmbH & Co. KG | STGC | Organization | LogisticsCompany | 0.0054169 | 0.0000000 |
Tainamarine Fishing Co | TFC | Organization | FishingCompany | 0.0100212 | 0.0058140 |
The News Buoy | TNB | Organization | NewsCompany | 0.0054169 | 0.0000000 |
V. Miesel Shipping | VMS | Organization | Company | 0.0185392 | 0.0158562 |
WestRiver Shipping KgaA | WSK | Organization | Company | 0.0054169 | 0.0000000 |
Show the code
<- sfec_connected_network_power %>%
nodes_connected_0602 select(name, alias, supertype, subtype) %>%
extract_network_snapshot('2035-06-02') %>%
mutate(
pagerank = centrality_pagerank(weights = E(.)$weight),
betweenness = centrality_betweenness(weights = E(.)$weight, normalized = TRUE)
%>%
) as_data_frame(what="vertices")
%>% arrange(name) %>% select(-name) %>% kable() nodes_connected_0602
alias | supertype | subtype | pagerank | betweenness | |
---|---|---|---|---|---|
4. SeaCargo Ges.m.b.H. | 4SGm | Organization | LogisticsCompany | 0.0205030 | 0.0015856 |
9. RiverLine CJSC | 9RC | Organization | Company | 0.0073580 | 0.0010571 |
AguaLeska Transit N.V. | ATNV | Organization | FishingCompany | 0.0055795 | 0.0000000 |
ArawakFish Cargo Ges.m.b.H. | ACGm | Organization | Company | 0.0112706 | 0.0042283 |
BaringoAmerica Marine Ges.m.b.H. | BMGm | Organization | FishingCompany | 0.0055795 | 0.0000000 |
Dry CreekRybachit Marine A/S | DCMA | Organization | FishingCompany | 0.0167639 | 0.0036998 |
Dry CreekWorldLogistics Ltd. Liability Co | DCLL | Organization | LogisticsCompany | 0.0055795 | 0.0000000 |
Elise Hauser | EH | Person | Person | 0.0055795 | 0.0000000 |
Eun-Ji Park | EJP | Person | Person | 0.0055795 | 0.0000000 |
Fabio Conti | FC | Person | Person | 0.0374102 | 0.0000000 |
Fintan Park | FP | Person | Person | 0.1170988 | 0.0110994 |
FlounderLeska Marine BV | FMB | Organization | FishingCompany | 0.0055795 | 0.0000000 |
GvardeyskAmerica Shipping Plc | GSP | Organization | Company | 0.0303358 | 0.0211416 |
Harvey Janus | HJ | Person | Person | 0.0085436 | 0.0000000 |
HomabayMarine Carriers N.V. | HCNV | Organization | Company | 0.0083065 | 0.0021142 |
James Bell | JB | Person | Person | 0.0085436 | 0.0000000 |
KambalaSea Freight Inc | KFI | Organization | Company | 0.0112706 | 0.0021142 |
KisumuSeafoodBrothers Ltd | KL | Organization | FishingCompany | 0.0183845 | 0.0047569 |
Lemuel Conti | LC | Person | Person | 0.0495635 | 0.0000000 |
Lena Conti-Park | LCP | Person | Person | 0.1985752 | 0.0116279 |
Liam Conti | LC | Person | Person | 0.0252774 | 0.0073996 |
Maacama Ocean Worldwide LLC | MOWL | Organization | FishingCompany | 0.0055795 | 0.0000000 |
Nadia Conti | NC | Person | Person | 0.0270653 | 0.0068710 |
NamRiver Transit A/S | NTAS | Organization | LogisticsCompany | 0.0313650 | 0.0211416 |
Namorna Transit Ltd | NTL | Organization | Company | 0.0218110 | 0.0190275 |
Nathan Conti | NC | Person | Person | 0.1099549 | 0.0105708 |
NyanzaRiver Worldwide AS | NWA | Organization | FishingCompany | 0.0184140 | 0.0010571 |
Oka Charter Boat Transport OJSC | OCBT | Organization | Company | 0.0055795 | 0.0000000 |
Oka Seafood Shipping Ges.m.b.H. | OSSG | Organization | FishingCompany | 0.0170823 | 0.0052854 |
OranjestadCreek Express Sagl | OES | Organization | Company | 0.0150647 | 0.0042283 |
Rafael Sanchez | RS | Person | Person | 0.0092751 | 0.0000000 |
RechFish Freight Plc | RFP | Organization | LogisticsCompany | 0.0055795 | 0.0000000 |
SamakaDredgeTransport OJSC | SO | Organization | Company | 0.0055795 | 0.0000000 |
Samuel Conti | SC | Person | Person | 0.0073580 | 0.0031712 |
Sanaa El-Amin | SEA | Person | Person | 0.0055795 | 0.0000000 |
SavanetaCreek Solutions NV | SSN | Organization | LogisticsCompany | 0.0159416 | 0.0052854 |
ScaniaSeafood Holdings Ltd. Liability Co | SHLL | Organization | FishingCompany | 0.0055795 | 0.0000000 |
SouthLeska Worldwide AS | SWA | Organization | FishingCompany | 0.0137055 | 0.0031712 |
SouthSeafood Express Corp | SEC | Organization | FishingCompany | 0.0055795 | 0.0000000 |
StichtingMarine Shipping Company | SSC | Organization | FishingCompany | 0.0250674 | 0.0248414 |
SumacAmerica Transport GmbH & Co. KG | STGC | Organization | LogisticsCompany | 0.0055795 | 0.0000000 |
Tainamarine Fishing Co | TFC | Organization | FishingCompany | 0.0103221 | 0.0058140 |
The News Buoy | TNB | Organization | NewsCompany | 0.0055795 | 0.0000000 |
V. Miesel Shipping | VMS | Organization | Company | 0.0190959 | 0.0158562 |
WestRiver Shipping KgaA | WSK | Organization | Company | 0.0055795 | 0.0000000 |
Show the code
<- sfec_connected_network_power %>%
nodes_connected_0610 select(name, alias, supertype, subtype) %>%
extract_network_snapshot('2035-06-10') %>%
mutate(
pagerank = centrality_pagerank(weights = E(.)$weight),
betweenness = centrality_betweenness(weights = E(.)$weight, normalized = TRUE)
%>%
) as_data_frame(what="vertices")
%>% arrange(name) %>% select(-name) %>% kable() nodes_connected_0610
alias | supertype | subtype | pagerank | betweenness | |
---|---|---|---|---|---|
4. SeaCargo Ges.m.b.H. | 4SGm | Organization | LogisticsCompany | 0.0204901 | 0.0015856 |
9. RiverLine CJSC | 9RC | Organization | Company | 0.0073534 | 0.0010571 |
AguaLeska Transit N.V. | ATNV | Organization | FishingCompany | 0.0055760 | 0.0000000 |
ArawakFish Cargo Ges.m.b.H. | ACGm | Organization | Company | 0.0112635 | 0.0042283 |
BaringoAmerica Marine Ges.m.b.H. | BMGm | Organization | FishingCompany | 0.0055760 | 0.0000000 |
Dry CreekRybachit Marine A/S | DCMA | Organization | FishingCompany | 0.0167533 | 0.0036998 |
Dry CreekWorldLogistics Ltd. Liability Co | DCLL | Organization | LogisticsCompany | 0.0055760 | 0.0000000 |
Elise Hauser | EH | Person | Person | 0.0055760 | 0.0000000 |
Eun-Ji Park | EJP | Person | Person | 0.0055760 | 0.0000000 |
Fabio Conti | FC | Person | Person | 0.0373867 | 0.0000000 |
Fintan Park | FP | Person | Person | 0.1145089 | 0.0110994 |
FlounderLeska Marine BV | FMB | Organization | FishingCompany | 0.0055760 | 0.0000000 |
GvardeyskAmerica Shipping Plc | GSP | Organization | Company | 0.0303168 | 0.0211416 |
Harvey Janus | HJ | Person | Person | 0.0085383 | 0.0000000 |
HomabayMarine Carriers N.V. | HCNV | Organization | Company | 0.0083013 | 0.0021142 |
James Bell | JB | Person | Person | 0.0085383 | 0.0000000 |
KambalaSea Freight Inc | KFI | Organization | Company | 0.0112635 | 0.0021142 |
KisumuSeafoodBrothers Ltd | KL | Organization | FishingCompany | 0.0183729 | 0.0047569 |
Lemuel Conti | LC | Person | Person | 0.0495323 | 0.0000000 |
Lena Conti-Park | LCP | Person | Person | 0.1951019 | 0.0116279 |
Liam Conti | LC | Person | Person | 0.0291080 | 0.0073996 |
Maacama Ocean Worldwide LLC | MOWL | Organization | FishingCompany | 0.0055760 | 0.0000000 |
Nadia Conti | NC | Person | Person | 0.0303178 | 0.0068710 |
NamRiver Transit A/S | NTAS | Organization | LogisticsCompany | 0.0313453 | 0.0211416 |
Namorna Transit Ltd | NTL | Organization | Company | 0.0217973 | 0.0190275 |
Nathan Conti | NC | Person | Person | 0.1084627 | 0.0105708 |
NyanzaRiver Worldwide AS | NWA | Organization | FishingCompany | 0.0184024 | 0.0010571 |
Oka Charter Boat Transport OJSC | OCBT | Organization | Company | 0.0055760 | 0.0000000 |
Oka Seafood Shipping Ges.m.b.H. | OSSG | Organization | FishingCompany | 0.0184611 | 0.0052854 |
OranjestadCreek Express Sagl | OES | Organization | Company | 0.0150552 | 0.0042283 |
Rafael Sanchez | RS | Person | Person | 0.0091583 | 0.0000000 |
RechFish Freight Plc | RFP | Organization | LogisticsCompany | 0.0055760 | 0.0000000 |
SamakaDredgeTransport OJSC | SO | Organization | Company | 0.0055760 | 0.0000000 |
Samuel Conti | SC | Person | Person | 0.0073534 | 0.0031712 |
Sanaa El-Amin | SEA | Person | Person | 0.0055760 | 0.0000000 |
SavanetaCreek Solutions NV | SSN | Organization | LogisticsCompany | 0.0154531 | 0.0052854 |
ScaniaSeafood Holdings Ltd. Liability Co | SHLL | Organization | FishingCompany | 0.0055760 | 0.0000000 |
SouthLeska Worldwide AS | SWA | Organization | FishingCompany | 0.0136968 | 0.0031712 |
SouthSeafood Express Corp | SEC | Organization | FishingCompany | 0.0055760 | 0.0000000 |
StichtingMarine Shipping Company | SSC | Organization | FishingCompany | 0.0250516 | 0.0248414 |
SumacAmerica Transport GmbH & Co. KG | STGC | Organization | LogisticsCompany | 0.0055760 | 0.0000000 |
Tainamarine Fishing Co | TFC | Organization | FishingCompany | 0.0103156 | 0.0058140 |
The News Buoy | TNB | Organization | NewsCompany | 0.0055760 | 0.0000000 |
V. Miesel Shipping | VMS | Organization | Company | 0.0190839 | 0.0158562 |
WestRiver Shipping KgaA | WSK | Organization | Company | 0.0055760 | 0.0000000 |
Show the code
<- sfec_connected_network_power %>%
nodes_connected_1115 select(name, alias, supertype, subtype) %>%
extract_network_snapshot('2035-11-15') %>%
mutate(
pagerank = centrality_pagerank(weights = E(.)$weight),
betweenness = centrality_betweenness(weights = E(.)$weight, normalized = TRUE)
%>%
) as_data_frame(what="vertices")
%>% arrange(name) %>% select(-name) %>% kable() nodes_connected_1115
alias | supertype | subtype | pagerank | betweenness | |
---|---|---|---|---|---|
4. SeaCargo Ges.m.b.H. | 4SGm | Organization | LogisticsCompany | 0.0203766 | 0.0015856 |
9. RiverLine CJSC | 9RC | Organization | Company | 0.0073598 | 0.0010571 |
AguaLeska Transit N.V. | ATNV | Organization | FishingCompany | 0.0055809 | 0.0000000 |
ArawakFish Cargo Ges.m.b.H. | ACGm | Organization | Company | 0.0112734 | 0.0042283 |
BaringoAmerica Marine Ges.m.b.H. | BMGm | Organization | FishingCompany | 0.0055809 | 0.0000000 |
Dry CreekRybachit Marine A/S | DCMA | Organization | FishingCompany | 0.0163556 | 0.0036998 |
Dry CreekWorldLogistics Ltd. Liability Co | DCLL | Organization | LogisticsCompany | 0.0055809 | 0.0000000 |
Elise Hauser | EH | Person | Person | 0.0055809 | 0.0000000 |
Eun-Ji Park | EJP | Person | Person | 0.0055809 | 0.0000000 |
Fabio Conti | FC | Person | Person | 0.0374194 | 0.0000000 |
Fintan Park | FP | Person | Person | 0.1146091 | 0.0110994 |
FlounderLeska Marine BV | FMB | Organization | FishingCompany | 0.0055809 | 0.0000000 |
GvardeyskAmerica Shipping Plc | GSP | Organization | Company | 0.0303433 | 0.0211416 |
Harvey Janus | HJ | Person | Person | 0.0090309 | 0.0000000 |
HomabayMarine Carriers N.V. | HCNV | Organization | Company | 0.0078234 | 0.0021142 |
James Bell | JB | Person | Person | 0.0085457 | 0.0000000 |
KambalaSea Freight Inc | KFI | Organization | Company | 0.0112734 | 0.0021142 |
KisumuSeafoodBrothers Ltd | KL | Organization | FishingCompany | 0.0183890 | 0.0047569 |
Lemuel Conti | LC | Person | Person | 0.0492448 | 0.0000000 |
Lena Conti-Park | LCP | Person | Person | 0.1952726 | 0.0116279 |
Liam Conti | LC | Person | Person | 0.0291335 | 0.0073996 |
Maacama Ocean Worldwide LLC | MOWL | Organization | FishingCompany | 0.0055809 | 0.0000000 |
Nadia Conti | NC | Person | Person | 0.0303444 | 0.0068710 |
NamRiver Transit A/S | NTAS | Organization | LogisticsCompany | 0.0313727 | 0.0211416 |
Namorna Transit Ltd | NTL | Organization | Company | 0.0218164 | 0.0190275 |
Nathan Conti | NC | Person | Person | 0.1085576 | 0.0105708 |
NyanzaRiver Worldwide AS | NWA | Organization | FishingCompany | 0.0184185 | 0.0010571 |
Oka Charter Boat Transport OJSC | OCBT | Organization | Company | 0.0055809 | 0.0000000 |
Oka Seafood Shipping Ges.m.b.H. | OSSG | Organization | FishingCompany | 0.0184772 | 0.0052854 |
OranjestadCreek Express Sagl | OES | Organization | Company | 0.0150684 | 0.0042283 |
Rafael Sanchez | RS | Person | Person | 0.0091663 | 0.0000000 |
RechFish Freight Plc | RFP | Organization | LogisticsCompany | 0.0055809 | 0.0000000 |
SamakaDredgeTransport OJSC | SO | Organization | Company | 0.0055809 | 0.0000000 |
Samuel Conti | SC | Person | Person | 0.0073598 | 0.0031712 |
Sanaa El-Amin | SEA | Person | Person | 0.0055809 | 0.0000000 |
SavanetaCreek Solutions NV | SSN | Organization | LogisticsCompany | 0.0154666 | 0.0052854 |
ScaniaSeafood Holdings Ltd. Liability Co | SHLL | Organization | FishingCompany | 0.0055809 | 0.0000000 |
SouthLeska Worldwide AS | SWA | Organization | FishingCompany | 0.0137088 | 0.0031712 |
SouthSeafood Express Corp | SEC | Organization | FishingCompany | 0.0055809 | 0.0000000 |
StichtingMarine Shipping Company | SSC | Organization | FishingCompany | 0.0250736 | 0.0248414 |
SumacAmerica Transport GmbH & Co. KG | STGC | Organization | LogisticsCompany | 0.0055809 | 0.0000000 |
Tainamarine Fishing Co | TFC | Organization | FishingCompany | 0.0103246 | 0.0058140 |
The News Buoy | TNB | Organization | NewsCompany | 0.0055809 | 0.0000000 |
V. Miesel Shipping | VMS | Organization | Company | 0.0191006 | 0.0158562 |
WestRiver Shipping KgaA | WSK | Organization | Company | 0.0055809 | 0.0000000 |
We will combine everything in the template graph
Show the code
<- sfec_connected_network_power %>%
sfec_connected_network_power select(name, alias, supertype, subtype) %>%
left_join(
%>% rename(
nodes_connected_0514 d_20350514.pagerank = pagerank,
d_20350514.betweenness = betweenness
)%>%
) left_join(
%>% rename(
nodes_connected_0515 d_20350515.pagerank = pagerank,
d_20350515.betweenness = betweenness
)%>%
) left_join(
%>% rename(
nodes_connected_0518 d_20350518.pagerank = pagerank,
d_20350518.betweenness = betweenness
)%>%
) left_join(
%>% rename(
nodes_connected_0520 d_20350520.pagerank = pagerank,
d_20350520.betweenness = betweenness
)%>%
) left_join(
%>% rename(
nodes_connected_0525 d_20350525.pagerank = pagerank,
d_20350525.betweenness = betweenness
)%>%
) left_join(
%>% rename(
nodes_connected_0531 d_20350531.pagerank = pagerank,
d_20350531.betweenness = betweenness
)%>%
) left_join(
%>% rename(
nodes_connected_0602 d_20350602.pagerank = pagerank,
d_20350602.betweenness = betweenness
)%>%
) left_join(
%>% rename(
nodes_connected_0610 d_20350610.pagerank = pagerank,
d_20350610.betweenness = betweenness
)%>%
) left_join(
%>% rename(
nodes_connected_1115 d_20351115.pagerank = pagerank,
d_20351115.betweenness = betweenness
) )
9.3 Question 3
- Develop a visual approach to examine inferences. Infer how the influence of a company changes through time. Can you infer ownership or influence that a network may have?
We can figure out the influential entities in the network using the criteria we have for Power Holders and Power Brokers
9.3.1 Power Holders
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350514.pagerank",
datestring = "2035-05-14",
title = "The Power Holders: SouthSeafood Express Corp's Sphere of Influence (May 14, 2035)",
subtitle = "A higher value of **pagerank centrality** means the entity has higher power and gets more benefits from the network.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350515.pagerank",
datestring = "2035-05-15",
title = "The Power Holders: SouthSeafood Express Corp's Sphere of Influence (May 15, 2035)",
subtitle = "A higher value of **pagerank centrality** means the entity has higher power and gets more benefits from the network.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350518.pagerank",
datestring = "2035-05-18",
title = "The Power Holders: SouthSeafood Express Corp's Sphere of Influence (May 18, 2035)",
subtitle = "A higher value of **pagerank centrality** means the entity has higher power and gets more benefits from the network.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350520.pagerank",
datestring = "2035-05-20",
title = "The Power Holders: SouthSeafood Express Corp's Sphere of Influence (May 20, 2035)",
subtitle = "A higher value of **pagerank centrality** means the entity has higher power and gets more benefits from the network.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350525.pagerank",
datestring = "2035-05-25",
title = "The Power Holders: SouthSeafood Express Corp's Sphere of Influence (May 25, 2035)",
subtitle = "A higher value of **pagerank centrality** means the entity has higher power and gets more benefits from the network.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350531.pagerank",
datestring = "2035-05-31",
title = "The Power Holders: SouthSeafood Express Corp's Sphere of Influence (May 31, 2035)",
subtitle = "A higher value of **pagerank centrality** means the entity has higher power and gets more benefits from the network.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350602.pagerank",
datestring = "2035-06-02",
title = "The Power Holders: SouthSeafood Express Corp's Sphere of Influence (June 2, 2035)",
subtitle = "A higher value of **pagerank centrality** means the entity has higher power and gets more benefits from the network.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350610.pagerank",
datestring = "2035-06-10",
title = "The Power Holders: SouthSeafood Express Corp's Sphere of Influence (June 10, 2035)",
subtitle = "A higher value of **pagerank centrality** means the entity has higher power and gets more benefits from the network.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20351115.pagerank",
datestring = "2035-11-15",
title = "The Power Holders: SouthSeafood Express Corp's Sphere of Influence (November 15, 2035)",
subtitle = "A higher value of **pagerank centrality** means the entity has higher power and gets more benefits from the network.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
As stated in 8.2 Power Holders - Connected Network, the power holders in the network have the highest value in pagerank centrality and in this context, those entities are the Conti Clan members and the companies closely associated with them.
These entities are the ones pulling the strings of the network behind the scenes.
After the actions of LIam Conti, there is s very little change in the power dynamics within the network. This could reflect the reality that already powerful people stay or get more powerful.
However, there seems to be an important flaw in our model acknowledged in the Insights of 8.2 Power Holders - Connected Network such that our model of family relations score much higher than business relations in this business network.
9.3.1 Power Brokers
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350514.betweenness",
datestring = "2035-05-14",
title = "The Power Brokers: SouthSeafood Express Corp's Connected Network (May 14, 2035)",
subtitle = "A higher value of **betweenness centrality** means the entity is more capable of connecting entities.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350515.betweenness",
datestring = "2035-05-15",
title = "The Power Brokers: SouthSeafood Express Corp's Connected Network (May 15, 2035)",
subtitle = "A higher value of **betweenness centrality** means the entity is more capable of connecting entities.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350518.betweenness",
datestring = "2035-05-18",
title = "The Power Brokers: SouthSeafood Express Corp's Connected Network (May 18, 2035)",
subtitle = "A higher value of **betweenness centrality** means the entity is more capable of connecting entities.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350520.betweenness",
datestring = "2035-05-20",
title = "The Power Brokers: SouthSeafood Express Corp's Connected Network (May 20, 2035)",
subtitle = "A higher value of **betweenness centrality** means the entity is more capable of connecting entities.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350525.betweenness",
datestring = "2035-05-25",
title = "The Power Brokers: SouthSeafood Express Corp's Connected Network (May 25, 2035)",
subtitle = "A higher value of **betweenness centrality** means the entity is more capable of connecting entities.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350531.betweenness",
datestring = "2035-05-31",
title = "The Power Brokers: SouthSeafood Express Corp's Connected Network (May 31, 2035)",
subtitle = "A higher value of **betweenness centrality** means the entity is more capable of connecting entities.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350531.betweenness",
datestring = "2035-06-02",
title = "The Power Brokers: SouthSeafood Express Corp's Connected Network (June 2, 2035)",
subtitle = "A higher value of **betweenness centrality** means the entity is more capable of connecting entities.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20350610.betweenness",
datestring = "2035-06-10",
title = "The Power Brokers: SouthSeafood Express Corp's Connected Network (June 10, 2035)",
subtitle = "A higher value of **betweenness centrality** means the entity is more capable of connecting entities.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Show the code
%>%
sfec_connected_network_power plot_centrality(
centrality_col = "d_20351115.betweenness",
datestring = "2035-11-15",
title = "The Power Brokers: SouthSeafood Express Corp's Connected Network (November 15, 2035)",
subtitle = "A higher value of **betweenness centrality** means the entity is more capable of connecting entities.",
caption = "Bigger and brighter nodes are more influential. Hover on the nodes to see more details.")
Before Liam Conti’s actions, StichtingMarine Shipping Company is not a strong power broker. However after distancing himself from SouthSeafood Express Corp, this became a very important node as the only way to access SouthSeafood Express Corp is through StichtingMarine Shipping Company.
9.4 Question 4
- Identify the network associated with SouthSeafood Express Corp and visualize how this network and competing businesses change as a result of their illegal fishing behavior. Which companies benefited from SouthSeafood Express Corp legal troubles? Are there other suspicious transactions that may be related to illegal fishing? Provide visual evidence for your conclusions.
The previous question already covers the change in influence of entities. For this part, we will focus on the suspicious transactions.
9.4.1 Transaction Timeline
We will plot the relationship graph through time to see how the network changed. Each tab describes the transactions that happened on that day and the implications of those transactions.
The dates are based on 9.1 Looking for suspicious dates.
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp"
%>% plot_fishing_relationships(
) emphasize_nodes = c("SouthSeafood Express Corp"),
datestring = "2035-05-14",
node_size = 5,
arrow_margin = 2,
title = "Relationship Graph: SouthSeafood Express Corp's Full Network (May 14, 2035)",
subtitle = "This shows the full view of the network connected to SouthSeafood Express Corp in any way."
)
- SouthSeafood Express Corp is under StichtingMarine Shipping Company through AguaLeska Transit N.V.
By this time, SouthSeafood Express Corp illegal fishing activities have already been discovered, with the people responsible being at risk of penalties or other negative consequences.
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp"
%>% plot_fishing_relationships(
) emphasize_nodes = c("Liam Conti", "AguaLeska Transit N.V."),
datestring = "2035-05-15",
node_size = 5,
arrow_margin = 2,
title = "Relationship Graph: SouthSeafood Express Corp's Full Network (May 15, 2035)",
subtitle = "This shows the full view of the network connected to SouthSeafood Express Corp in any way."
)
- Liam Conti gives up shareholdership of AguaLeska Transit N.V.
This first step for Liam Conti to distance himself from SouthSeafood Express Corp to lower the risk of him getting penalized for illegal fishing activities.
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp"
%>% plot_fishing_relationships(
) emphasize_nodes = c(
"V. Miesel Shipping",
"Namorna Transit Ltd",
"StichtingMarine Shipping Company",
"Elise Hauser"
),datestring = "2035-05-18",
node_size = 5,
arrow_margin = 2,
title = "Relationship Graph: SouthSeafood Express Corp's Full Network (May 18, 2035)",
subtitle = "This shows the full view of the network connected to SouthSeafood Express Corp in any way."
)
Namorna Transit Ltd established under StichtingMarine Shipping Company
V. Miesel Shipping established Namorna Transit Ltd, with Elise Hauser as an employee to take care of the next actions.
These companies were established to further distance Liam Conti from the discovered illegal fishing activities.
An employee, Elise Hauser, was hired to potentially be in charge of V. Miesel Shipping and take care of the next steps.
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp"
%>% plot_fishing_relationships(
) emphasize_nodes = c("Tainamarine Fishing Co", "V. Miesel Shipping"),
datestring = "2035-05-20",
node_size = 5,
arrow_margin = 2,
title = "Relationship Graph: SouthSeafood Express Corp's Full Network (May 20, 2035)",
subtitle = "This shows the full view of the network connected to SouthSeafood Express Corp in any way."
)
- Tainamarine Fishing Co was established under V. Miesel Shipping
This transaction could have been executed by Elise Hauser.
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp"
%>% plot_fishing_relationships(
) emphasize_nodes = c(
"SouthSeafood Express Corp",
"Tainamarine Fishing Co",
"AguaLeska Transit N.V."
),datestring = "2035-05-25",
node_size = 5,
arrow_margin = 2,
title = "Relationship Graph: SouthSeafood Express Corp's Full Network (May 25, 2035)",
subtitle = "This shows the full view of the network connected to SouthSeafood Express Corp in any way."
)
- SouthSeafood Express Corp had a transfer of shareholdership from AguaLeska Transit N.V. to Tainamarine Fishing Co
This transaction puts Liam Conti and StichtingMarine Shipping Company outside of SouthSeafood Express Corp’s Sphere of Influence as we have observed in 5.2.2 By hiding inactive edges.
It could’ve put Liam Conti in a safer position against penalties.
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp"
%>% plot_fishing_relationships(
) emphasize_nodes = c("The News Buoy", "Samuel Conti"),
datestring = "2035-05-31",
node_size = 5,
arrow_margin = 2,
title = "Relationship Graph: SouthSeafood Express Corp's Full Network (May 31, 2035)",
subtitle = "This shows the full view of the network connected to SouthSeafood Express Corp in any way."
)
- Samuel Conti, a Conti Clan member becomes a shareholder of The News Buoy, a News Company
Although not formally marked as related to Liam Conti, this transaction by Samuel Conti is suspicious as he is part of Conti Clan.
This could be an effort to control the narrative and get good publicity for the Contis and their businesses.
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp"
%>% plot_fishing_relationships(
) emphasize_nodes = c("StichtingMarine Shipping Company", "AguaLeska Transit N.V."),
datestring = "2035-06-02",
node_size = 5,
arrow_margin = 2,
title = "Relationship Graph: SouthSeafood Express Corp's Full Network (June 2, 2035)",
subtitle = "This shows the full view of the network connected to SouthSeafood Express Corp in any way."
)
- AguaLeska Transit N.V. becomes “orphaned” after StichtingMarine Shipping Company gives up its shareholdership.
As StichtingMarine Shipping Company is a very important company for Liam Conti, it is important to get rid of close associations to SouthSeafood Express Corp.
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp"
%>% plot_fishing_relationships(
) emphasize_nodes = c("StichtingMarine Shipping Company", "Liam Conti"),
datestring = "2035-06-10",
node_size = 5,
arrow_margin = 2,
title = "Relationship Graph: SouthSeafood Express Corp's Full Network (June 10, 2035)",
subtitle = "This shows the full view of the network connected to SouthSeafood Express Corp in any way."
)
- Liam Conti becomes a shareholder of StichtingMarine Shipping Company. This is on top of him being a beneficial owner.
This gives more power to LIam Conti on his most important company.
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp"
%>% plot_fishing_relationships(
) emphasize_nodes = c("Harvey Janus", "SamakaDredgeTransport OJSC"),
datestring = "2035-11-15",
node_size = 5,
arrow_margin = 2,
title = "Relationship Graph: SouthSeafood Express Corp's Full Network (November 15, 2035)",
subtitle = "This shows the full view of the network connected to SouthSeafood Express Corp in any way."
)
This event look irrelevant to the Conti Clan’s actions.
9.4.2 Overall Insights
The entities that benefit the most from SouthSeafood Express Corp illegal fishing activities are:
AguaLeska Transit N.V.
StichtingMarine Shipping Company
Liam Conti
We can see this from the network structure before Liam Conti distanced himself from SouthSeafood Express Corp.
Show the code
extract_subnetwork(
supernetwork,node_name="SouthSeafood Express Corp"
%>% plot_fishing_relationships(
) emphasize_nodes = c("SouthSeafood Express Corp", "AguaLeska Transit N.V.", "StichtingMarine Shipping Company", "Liam Conti"),
datestring = "2035-05-14",
node_size = 5,
arrow_margin = 2,
title = "Relationship Graph: SouthSeafood Express Corp's Full Network (May 14, 2035)",
subtitle = "This shows the full view of the network connected to SouthSeafood Express Corp in any way."
)
10 References
https://www.strategy-business.com/article/10218
Disney, A. (2020, January 14). PageRank centrality & EigenCentrality. Cambridge Intelligence. https://cambridge-intelligence.com/eigencentrality-pagerank/