Project Description

In this assignment you will examine relationships that characterize certain regions of the contemporary world. You will examine trade, military, transportation, and corporate relationships in various areas of the world. Each one of the 4 types of relationships should be represented by its own network, then attempt to create one aggregate network that provides an additional, holistic perspective. Since the world is vast and comprises 193 countries, you will choose a subset for your analysis. It is up to you to decide and explain the countries and areas chosen. You have complete freedom to focus on certain geographic areas or choose any set of countries by any criteria, as long as you explain your choices. You are required to select at least 10 countries. Once selected, you will construct and present the resulting networks, as well as significant information that these networks reveal. The aggregate network should add new interpretations and illuminate other aspects of the relationships between these countries, otherwise to evident in the separate networks. Each such network analysis must be presented from a mathematical, statistical, and computational perspective. In addition, you will provide one perspective such as social, historical, economic, political, or alike, based on your current knowledge, interest, and research.


Topic Explanation

“The international system is an ideal candidate for the “networked form of governance” discussed in earlier chapters. Networks as a governance structure represent a different kind of practice and reflect a different underlying logic than that of the market or the formal hierarchy (Podolny & Page, 1998; Powell, 1990). Actors in a given network pursue repeated, enduring exchange relations with one another, unlike the one-off meetings under the market logic. They also lack a legitimate organizational authority of the formal hierarchy to arbitrate and resolve disputes that may arise” (Social Network Analysis: Methods and Examples, 192).

The United Nations does not have any ultimate arbitrator or ruler. Any countries that hold more power/sway than other countries can occur naturally to fill this void. These countries can be identified and analyzed via social networks.

In this report, four types of networks will be analyzed.

  1. Trade Networks
  2. Military Networks
  3. Transportation Networks
  4. Corporate Relationship Networks

Data Explanation

Trade Network

The trade network data consists of fourteen countries/regions that are all connected based on oil trade. It is a directed graph based on who trades oil for other goods. This data set is taken from a network displayed in the Hybrid Ecological Network and Flow-distance Analysis for International Oil Trade Report. -https://www.researchgate.net/publication/311914205_Hybrid_Ecological_Network_and_Flow-distance_Analysis_for_International_Oil_Trade

Matrix Representation
library(knitr)
trade.data = read.csv("tradeLinks.csv", row.names = 1)
kable(trade.data[1:5,1:5])
United.States Canada Mexico South.and.Central.America Europe
United.States 0 0 0 1 0
Canada 1 0 0 0 0
Mexico 1 0 0 0 0
South.and.Central America 1 0 0 0 1
Europe 1 0 0 0 0
Network Visualization
library(igraph)
trade.net = graph_from_adjacency_matrix(as.matrix(trade.data))
plot(trade.net,
     vertex.label.color = "black", edge.arrow.size = 0.4, vertex.shape = "none",
     vertex.label.font = 2, vertex.label.cex = 0.6, edge.color = "gray80")

Military Network

The data set used for this network is a Formal Alliances data set taken from the Correlates of War Project.

“The Correlates of War Formal Alliance data set seeks to identify each formal alliance between at least two states that fall into the classes of defense pact, neutrality or non-aggression treaty, or entente agreement. A defense pact (Type I) is the highest level of military commitment, requiring alliance members to come to each other’s aid militarily if attacked by a third party. As the labels imply, neutrality and non-aggression pacts (Type II) pledge signatories to either remain neutral in case of conflict or to not use or otherwise support the use of force against the other alliance members. Finally, ententes (Type III) provide for the least commitment and obligate members to consult in times of crisis or armed attack. Each alliance classifies the highest level of military support that an alliance member pledges to another alliance member. The data set provides the type, members, and appropriate dates of activity of each identified alliance.” -http://www.correlatesofwar.org/data-sets/formal-alliances

The specific set of data used in this report will be the file named “alliance_v4.1_by_member.csv”. This data set contains the alliance data set distributed by member, with one observation for each alliance member initiation.

Matrix Representation
alliance.data = read.csv("version4.1_csv/alliance_v4.1_by_member.csv")
kable(alliance.data[1:5,1:10])
version4id ccode state_name all_st_day all_st_month all_st_year all_end_day all_end_month all_end_year ss_type
1 200 United Kingdom 9 5 1386 NA NA NA Type I: Defense Pact
1 235 Portugal 9 5 1386 NA NA NA Type I: Defense Pact
2 200 United Kingdom 5 2 1766 15 2 1911 Type III: Entente
2 380 Sweden 5 2 1766 15 2 1911 Type III: Entente
3 240 Hanover 8 6 1815 15 6 1866 Type I: Defense Pact

The important columns to keep in mind are:

  1. version4id: the unique serial identification number for each alliance
  2. ccode: the Correlates of War System Membership number of the alliance member
  3. state_name: the Correlates of War System Membership name of the alliance member
  4. ss_type: the Singer and Small (1966) alliance type that most closely matches the terms and contemporary understanding of the alliance

In this data set there are 414 alliances and 180 countries.

Network Visualization
alliance.data$version4id = paste0("V", alliance.data$version4id)
alliance.data$ccode = paste0("C", alliance.data$ccode)

alliance.net = graph_from_data_frame(alliance.data[,1:2])
alliance.net = as.undirected(alliance.net)
alliance.type = rep(FALSE, length(V(alliance.net)))
alliance.type[1:length(unique(alliance.data$version4id))] = TRUE

plot(alliance.net,
     vertex.label = NA, vertex.size = 4,
     vertex.color = c("#DC7633", "#229954")[1 + alliance.type])
legend(x = -1.8, y = -1.0, c("Alliances", "Countries"), pt.bg = c("#229954", "#DC7633"),
       bty = "n", pch = 21, pt.cex = 2)

Transportation Network

The transportation data is a network of flights across the United States from state to state during January 2017. I pulled this data (in an impressively convenient way) from the United States Bueau of Transportation Statistics website. -https://www.transtats.bts.gov/DL_SelectFields.asp?Table_ID=236&DB_Short_Name=On-Time

Matrix Representation
transport.data = read.csv("683684496_T_ONTIME.csv")
kable(head(transport.data))
YEAR CARRIER ORIGIN_STATE_ABR DEST_STATE_ABR
2017 AA NC FL
2017 AA NC FL
2017 AA NC FL
2017 AA NC FL
2017 AA NC FL
2017 AA NC FL
Network Visualization
transport.net = graph_from_data_frame(transport.data[,3:4])

E(transport.net)$weight = 1
transport.net = simplify(transport.net, edge.attr.comb=list(weight="sum"))

plot(transport.net,
     vertex.shape = "none", vertex.label.color = "black", vertex.label.cex = 0.6,
     edge.arrow.size = 0.3, edge.color = "gray80")

In this network, a directed edge represents if at least one flight traveled from one node to the other.

Corporate Relationship Network

For the corporate data set, the Corporate Leadership data set is used from the KONECT website. “This bipartite network contains person–company leadership information between companies and 20 corporate directors. The data was collected in 1962. Left nodes represent persons and right nodes represent companies. An edge between a person and a company shows that the person had a leadership position in that company.” -http://konect.uni-koblenz.de/networks/brunson_corporate-leadership

Matrix Representation
org.data = read.csv("brunson_corporate-leadership/out.brunson_corporate-leadership_corporate-leadership",
                    sep = " ", header = FALSE)[,1:2]
org.data$V1 = paste0("E", org.data$V1)
org.data$V2 = paste0("O", org.data$V2)
kable(head(org.data))
V1 V2
E1 O1
E1 O2
E1 O3
E1 O4
E1 O5
E2 O1
Network Visualization
org.net = graph_from_data_frame(org.data)
org.net = as.undirected(org.net)
V(org.net)$type = grepl("E.*", as_data_frame(org.net, what = "vertices")$name)
plot(org.net,
     vertex.shape = "none", vertex.label.color = c("#34495E", "#CD6155")[1 + V(org.net)$type])
legend(x = -1.8, y = -1.0, c("Employee", "Organization"), pt.bg = c("#CD6155", "#34495E"),
       bty = "n", pch = 21, pt.cex = 2)


Network Analyses

Trade Network

Power as Access

“Power is the prominence in networks where valued information and scarce resources are transferred from one actor to another (Knoke, 1990). Thus, power reflects the extent to which actors in a social network have access to valuable information and resources flowing in the network” (Social Network Analysis: Methods and Examples, 193).

The centrality measure can tell us which countries are integral in the oil trade.

centralization.degree(trade.net)
## $res
##  [1] 6 2 1 6 4 3 8 0 0 3 2 1 3 5
## 
## $centralization
## [1] 0.2011834
## 
## $theoretical_max
## [1] 338

The largest degree centrality score is 8, and its for the Middle East. This means that the Middle East is in the most potentially powerful position in the global oil trade because they provide most of the oil to the rest of the network.

The Middle East is highlighted in the network below:

vcol = "The.Middle.East" == V(trade.net)$name
plot(trade.net,
     vertex.label.color = c("black", "red")[1 + vcol], edge.arrow.size = 0.4, vertex.shape = "none",
     vertex.label.font = 2, vertex.label.cex = 0.6, edge.color = "gray80")

Power as Brokerage

“Network power can also be embodied in a node’s brokerage position, which is the extent to which a country can act as an intermediary between other countries” (Social Network Analysis: Methods and Examples, 193).

The betweeness factor can determine which countries are in such a position.

betweenness(trade.net)
##                United.States                       Canada 
##                           20                            0 
##                       Mexico    South.and.Central.America 
##                            0                           20 
##                       Europe       The.Russian.Federation 
##                            3                            0 
##              The.Middle.East                       Africa 
##                            0                            0 
##                    Australia                        China 
##                            0                            0 
##                        India                        Japan 
##                            0                            0 
##                    Singapore Other.Asia.Pacific.Countries 
##                            0                            6

The two regions with the highest scores are the United States and South and Central America. These two regions hold the highest brokerage power over the rest of the network, sustaining the only links that some other nodes have into the oil trade.

These two regions are highlighted below:

vcol = "United.States" == V(trade.net)$name | "South.and.Central.America" == V(trade.net)$name
plot(trade.net,
     vertex.label.color = c("black", "red")[1 + vcol], edge.arrow.size = 0.4, vertex.shape = "none",
     vertex.label.font = 2, vertex.label.cex = 0.6, edge.color = "gray80")

Power as Exit Options

“So far we’ve associated power with network centrality, but paradoxically, being peripheral (i.e., being located at the outer border of a network or having only a few ties to other actors) brings its own power. This third type of network power is called the power to exit. Less embedded actors can sometimes leave the network much more easily because they only have to sever a few ties, and they may have little at stake in the flow of network” (Social Network Analysis: Methods and Examples, 193-194).

The nodes with the least amount of connections are outliers in this network.

degree(trade.net)
##                United.States                       Canada 
##                            6                            2 
##                       Mexico    South.and.Central.America 
##                            1                            6 
##                       Europe       The.Russian.Federation 
##                            4                            3 
##              The.Middle.East                       Africa 
##                            8                            0 
##                    Australia                        China 
##                            0                            3 
##                        India                        Japan 
##                            2                            1 
##                    Singapore Other.Asia.Pacific.Countries 
##                            3                            5

The nodes with a degree of zero have no connections, so they can exit the oil network whenever they want, but that’s already because they aren’t involved in it. The nodes with a degree of 1 are Mexico and Japan. These nodes only have to sever one tie in order to leave the global oil network.

vcol = "Mexico" == V(trade.net)$name | "Japan" == V(trade.net)$name
plot(trade.net,
     vertex.label.color = c("black", "red")[1 + vcol], edge.arrow.size = 0.4, vertex.shape = "none",
     vertex.label.font = 2, vertex.label.cex = 0.6, edge.color = "gray80")

Military Network

For the military analysis, a bipartite projection is applied to the alliance network. One of the resulting networks is a network of countries that share an edge if they are in a treaty together.

V(alliance.net)$type = alliance.type
alliance.bip = bipartite.projection(alliance.net)
plot(alliance.bip$proj1,
     vertex.label = NA, vertex.size = 4, vertex.color = "#DC7633")

This is the network that will be analyzed in this section.

Power as Access
degree(alliance.bip$proj1)[degree(alliance.bip$proj1) == max(degree(alliance.bip$proj1))]
## C2 
## 71

The country with the largest degree in the network (the most central node), is C2, or the United States of America. This means that countries all across the world form the most military alliances with the United States of America.

America can be seen highlighted in the network below:

vcol = rep("#DC7633", length(V(alliance.bip$proj1)))
vcol["C2" == V(alliance.bip$proj1)$name] = "red"
vsize = rep(4, length(V(alliance.bip$proj1)))
vsize["C2" == V(alliance.bip$proj1)$name] = 10
plot(alliance.bip$proj1,
     vertex.label = NA, vertex.size = vsize, vertex.color = vcol)

Power as Brokerage
betweenness(alliance.bip$proj1)[betweenness(alliance.bip$proj1) == max(betweenness(alliance.bip$proj1))]
##       C2 
## 3289.894

The country with the largest betweeness value is also the United States. This means that in the network of global alliances, the United States acts as the largest intermediary between other countries. This gives the US access to most of the information in global network, and gives them unique access to countries that would otherwise be cut off, in a military sense, to other countries.

Power as Exit Options
degree(alliance.bip$proj1)[degree(alliance.bip$proj1) == min(degree(alliance.bip$proj1))]
## C337 C332 C335 C730 C375 C712 C713 C820 C590 C771 C572 C850 C531 C626 
##    1    1    1    1    1    1    1    1    1    1    1    1    1    1

These countries codes represent the following countries:

clist = c("C337", "C332", "C335", "C730", "C375", "C712", "C713", "C820", "C590", "C771", "C572", "C850", "C531", "C626")

unique(as.character(alliance.data[alliance.data$ccode %in% clist,]$state_name))
##  [1] "Tuscany"     "Modena"      "Parma"       "Korea"       "Finland"    
##  [6] "Mongolia"    "Taiwan"      "Malaysia"    "Mauritius"   "Bangladesh" 
## [11] "Swaziland"   "Indonesia"   "Eritrea"     "South Sudan"

These countries are only connected to one treaty in the global military alliance network. This means that these countries hold the power to exit. They are the countries that have the least amount of ties to cut if they want to exit the global alliance network entirely.

These countries can be seen highlighted below:

vcol = rep("#DC7633", length(V(alliance.bip$proj1)))
vcol[V(alliance.bip$proj1)$name %in% clist] = "red"
vsize = rep(4, length(V(alliance.bip$proj1)))
vsize[V(alliance.bip$proj1)$name %in% clist] = 10
plot(alliance.bip$proj1,
     vertex.label = NA, vertex.size = vsize, vertex.color = vcol)

Transportation Network

This is the transportation network that was first shown in the Data Explanation section:

plot(transport.net,
     vertex.shape = "none", vertex.label.color = "black", vertex.label.cex = 0.6,
     edge.arrow.size = 0.3, edge.color = "gray80")

It is important to keep in mind that this map only covers the month of January 2017.

Power as Access
degree(transport.net)[degree(transport.net) == max(degree(transport.net))]
##  IL 
## 100

The state with the largest degree in the network is Illinois. This means that most of the flights across the United States fly to or from Illinois. This could be because of Illinois location being semi-central in the US. In a network like this, it means that Illinois needs to have an airport that can handle most of the airline traffic across the US.

Illinois can be seen highlighted below:

vcol = rep("black", length(V(transport.net)))
vcol["IL" == V(transport.net)$name] = "red"
plot(transport.net,
     vertex.shape = "none", vertex.label.color = vcol, vertex.label.cex = 0.6,
     edge.arrow.size = 0.3, edge.color = "gray80")

Power as Brokerage
betweenness(transport.net)[betweenness(transport.net) == max(betweenness(transport.net))]
##       WY 
## 694.8333

The state with the largest betweeness value is Wyoming. This means that in the network of flights across the US, Wyoming is the only access point that some states have to others. Wyoming might act as a crucial stop for connecting flights between states where one-way flights rarely occur.

Wyoming is highlighted below:

vcol = rep("black", length(V(transport.net)))
vcol["WY" == V(transport.net)$name] = "red"
plot(transport.net,
     vertex.shape = "none", vertex.label.color = vcol, vertex.label.cex = 0.6,
     edge.arrow.size = 0.3, edge.color = "gray80")

Power as Exit Options
degree(transport.net)[degree(transport.net) == min(degree(transport.net))]
## TT 
##  2

“TT” represents the Trust Territory of the Pacific Islands. Because it has a degree of 2, this region only had 2 incoming or outgoing flights to two other states in the national airline network. This region has the power to easily exit this network. If they were to shut down the airport, it wouldn’t effect very many flights.

This region is highlighted below:

vcol = rep("black", length(V(transport.net)))
vcol["TT" == V(transport.net)$name] = "red"
plot(transport.net,
     vertex.shape = "none", vertex.label.color = vcol, vertex.label.cex = 0.6,
     edge.arrow.size = 0.3, edge.color = "gray80")

Corporate Relationship Network

This is the corporate relationship network shown in the Data Explanation section:

plot(org.net,
     vertex.shape = "none", vertex.label.color = c("#34495E", "#CD6155")[1 + V(org.net)$type])
legend(x = -1.8, y = -1.0, c("Employee", "Organization"), pt.bg = c("#CD6155", "#34495E"),
       bty = "n", pch = 21, pt.cex = 2)

A bipartite projection is created, displaying the organizations connected based on if they share employees. This is the network that will be used in this section.

org.bip = bipartite.projection(org.net)
plot(org.bip$proj1,
     vertex.shape = "none", vertex.label.color = "#34495E")

Power as Access
degree(org.bip$proj1)[degree(org.bip$proj1) == max(degree(org.bip$proj1))]
## O4 
## 23

The organization with the largest degree in the network is Illinois. This means that this company is connected the most to other companies in the network. More connections means more intelligence and knowledge shared between shared employees. Companies with more knowledge have more influence over the economy, and can make smarter decisions within their organization based on the current market.

This organization can be seen highlighted below:

vcol = rep("#34495E", length(V(org.bip$proj1)))
vcol["O4" == V(org.bip$proj1)$name] = "red"
plot(org.bip$proj1,
     vertex.shape = "none", vertex.label.color = vcol)

Power as Brokerage
betweenness(org.bip$proj1)[betweenness(org.bip$proj1) == max(betweenness(org.bip$proj1))]
##      O16 
## 37.70027

The organization with the highest betweeness score holds a specific brokerage power over the network. This company can access other companies that are not connected to every other organization in the network. If this company acts as a middle man for information/deals between companies, then they can gain additional information or bargaining power that they otherwise wouldn’t have.

This organization can be seen highlighted below:

vcol = rep("#34495E", length(V(org.bip$proj1)))
vcol["O16" == V(org.bip$proj1)$name] = "red"
plot(org.bip$proj1,
     vertex.shape = "none", vertex.label.color = vcol)

Power as Exit Options
degree(org.bip$proj1)[degree(org.bip$proj1) == min(degree(org.bip$proj1))]
## O10 
##   3

The organizations with the most exit power are those that have the least amount of ties to any other organization. In this specific network, exit power could be seen as a “fresh start”. Companies that want to hire a bulk of new talent can easily do so if they are not connected well with the rest of this network. Just because a lot of people think a certain way doesn’t mean it’s necessarily true. If a lot of the organizations in this network are not doing well financially and all have the wrong idea about the current state of the economy, then it might be more beneficial for a company to severe all ties and start with some fresh ideas about how to tackle the marketplace.

This organization can be seen highlighted below:

vcol = rep("#34495E", length(V(org.bip$proj1)))
vcol["O10" == V(org.bip$proj1)$name] = "red"
plot(org.bip$proj1,
     vertex.shape = "none", vertex.label.color = vcol)


References

Corporate Leadership. (n.d.). Retrieved February 28, 2018, from http://konect.uni-koblenz.de/networks/brunson_corporate-leadership

Formal Alliances (v4.1). (2014, March 22). Retrieved February 28, 2018, from http://www.correlatesofwar.org/data-sets/formal-alliances

Gibler, Douglas M. 2009. International military alliances, 1648-2008. CQ Press.

Yang, S., Zhang, L., & Keller, F. B. (2017). Social network analysis: methods and examples. Los Angeles: Sage.

https://www.researchgate.net/publication/311914205_Hybrid_Ecological_Network_and_Flow-distance_Analysis_for_International_Oil_Trade

https://www.transtats.bts.gov/DL_SelectFields.asp?Table_ID=236&DB_Short_Name=On-Time