library(tidyverse)
library(igraph) # This is the package to analyze the network
library(visNetwork) # Creates visualizations of the network
library(DT)
library(plotly)
Sept11_nodes <- read_csv("Sept11_nodes.csv")
Sept11_links <- read_csv("Sept11_links.csv")
- The following created a network in igraph.
Sept11_network <- graph_from_data_frame(Sept11_links,
vertices = Sept11_nodes,
directed = F)
- The following is the density of the 911 terrorist network. Density refers to the number of connections divided by the number of possible connections.
Sept11_network %>%
edge_density()
[1] 0.07985193
The density of the network is about 0.08. If done manually, the calculation would be 62(61)/2. That answer would then be 1,891 and be divided into 151. The result would be 0.08.
- The following is a histogram of the distances in the 911 terrorist network.
Sept11_network %>%
distances()
Sept11_network %>%
distances() %>%
as.vector() %>% # these two lines convert the distances matrix
as_tibble() %>% # to something plotly can graph
plot_ly(x = ~value) %>%
add_histogram()
The histogram shows that 62 individuals are connected with 0 hops. This makes sense considering there are 62 individuals and they are connected to themselves. Three hops seems to occur the most with 1,384 individuals being connected in this way. The least amount of hops is 5 and there are 220 individuals connected in this way. The average amount of hops is shown below.
Sept11_network %>%
mean_distance()
[1] 2.94606
The average amount of hops between individuals is about 3.
- The following shows the diameter of the network. The diameter refers to the longest set of connections.
Sept11_network %>%
get_diameter()
+ 6/62 vertices, named, from d12124a:
[1] Samir_Kashk Essid_Sami_Ben_Khemais Tarek_Maaroufi
[4] Abu_Qatada Abu_Walid Kamel_Daoudi
Sept11_network %>%
get_diameter() %>%
length()
[1] 6
The diameter of the 911 terrorist network is 6.
- The following graph shows the 911 terrorist network. The viewer is able to zoom in to see who each node represents as well as putting the curser over the node for the terrorist’s name to pop up.
Sept11_nodes <- Sept11_nodes %>%
mutate(value = degree)
visNetwork(Sept11_nodes, Sept11_links, main = "Network of 911 Terrorists") %>%
visIgraphLayout(layout = "layout_nicely") %>%
visOptions(highlightNearest = T, nodesIdSelection = T)
The bigger nodes represent terrorists with more connections. This can also be reffered to as degree. The terrorist with the most connections is Mohamed Atta with 22 connections. There are 10 terrorists in this network with only 1 connection.
- The following graph shows the betweenness in the network of 911 terrorists. Betweenness refers to a measure of the number of shortest paths that use a particular link.
Sept11_links <- Sept11_links %>%
mutate(betweenness = edge_betweenness(Sept11_network)) %>%
mutate(value = betweenness)
visNetwork(Sept11_nodes, Sept11_links, main = "Network of 911 Terrorists") %>%
visIgraphLayout(layout = "layout_nicely") %>%
visOptions(highlightNearest = T, nodesIdSelection = T)
The thicker lines on the graph indicate a higher betweenness when it comes to the links in this terrorist network. This is important because investigators, or whom ever it may be, will want to disrupt the links with a higher betweenness first before the links with a lower betweenness.
- The following graph shows the communities, or groups, in the 911 terrorist network.
Sept11_network %>%
infomap.community()
Sept11_nodes <- Sept11_nodes %>%
mutate(group = membership(infomap.community(Sept11_network)))
Sept11_nodes %>%
datatable()
visNetwork(Sept11_nodes,
Sept11_links,
main = "Network of 911 Terrorists") %>%
visIgraphLayout(layout = "layout_nicely") %>%
visOptions(highlightNearest = T, nodesIdSelection = T)
NA
The graph shows that there are multiple different groups within the 911 terrorist network. Along with that, the graph still shows bigger nodes for individuals with the more connections and thicker lines for higher betweenness when it comes to the links.
- The following graph shows the communities, or groups, within the 911 terrorist network. This graph differs from the one above because it gives the option of selecting a single group.
visNetwork(Sept11_nodes,
Sept11_links,
main = "Network of 911 Terrorists") %>%
visIgraphLayout(layout = "layout_nicely") %>%
visOptions(highlightNearest = T, nodesIdSelection = T, selectedBy = "group")
NA
The graph shows that there are 8 total groups within the 911 terrorist network. This may prove helpful for investigators, or whom ever, when they are trying to track down or locate a certain individual.
LS0tCnRpdGxlOiAiOTExIE5ldHdvcmsgQW5hbHlzaXMiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGlncmFwaCkgICAgICAgICAgICAgICAgICAgICMgVGhpcyBpcyB0aGUgcGFja2FnZSB0byBhbmFseXplIHRoZSBuZXR3b3JrCmxpYnJhcnkodmlzTmV0d29yaykgICAgICAgICAgICAgICAgIyBDcmVhdGVzIHZpc3VhbGl6YXRpb25zIG9mIHRoZSBuZXR3b3JrCmxpYnJhcnkoRFQpCmxpYnJhcnkocGxvdGx5KQpgYGAKYGBge3J9ClNlcHQxMV9ub2RlcyA8LSByZWFkX2NzdigiU2VwdDExX25vZGVzLmNzdiIpClNlcHQxMV9saW5rcyA8LSByZWFkX2NzdigiU2VwdDExX2xpbmtzLmNzdiIpCmBgYAoxLiBUaGUgZm9sbG93aW5nIGNyZWF0ZWQgYSBuZXR3b3JrIGluIGlncmFwaC4KYGBge3J9ClNlcHQxMV9uZXR3b3JrIDwtIGdyYXBoX2Zyb21fZGF0YV9mcmFtZShTZXB0MTFfbGlua3MsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljZXMgPSBTZXB0MTFfbm9kZXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0ZWQgPSBGKQoKYGBgCgoyLiBUaGUgZm9sbG93aW5nIGlzIHRoZSBkZW5zaXR5IG9mIHRoZSA5MTEgdGVycm9yaXN0IG5ldHdvcmsuIERlbnNpdHkgcmVmZXJzIHRvIHRoZSBudW1iZXIgb2YgY29ubmVjdGlvbnMgZGl2aWRlZCBieSB0aGUgbnVtYmVyIG9mIHBvc3NpYmxlIGNvbm5lY3Rpb25zLiAKYGBge3J9ClNlcHQxMV9uZXR3b3JrICU+JSAKICBlZGdlX2RlbnNpdHkoKQpgYGAKVGhlIGRlbnNpdHkgb2YgdGhlIG5ldHdvcmsgaXMgYWJvdXQgMC4wOC4gSWYgZG9uZSBtYW51YWxseSwgdGhlIGNhbGN1bGF0aW9uIHdvdWxkIGJlIDYyKDYxKS8yLiBUaGF0IGFuc3dlciB3b3VsZCB0aGVuIGJlIDEsODkxIGFuZCBiZSBkaXZpZGVkIGludG8gMTUxLiBUaGUgcmVzdWx0IHdvdWxkIGJlIDAuMDguIAoKMy4gVGhlIGZvbGxvd2luZyBpcyBhIGhpc3RvZ3JhbSBvZiB0aGUgZGlzdGFuY2VzIGluIHRoZSA5MTEgdGVycm9yaXN0IG5ldHdvcmsuIApgYGB7cn0KU2VwdDExX25ldHdvcmsgJT4lIAogIGRpc3RhbmNlcygpIApgYGAKYGBge3J9ClNlcHQxMV9uZXR3b3JrICU+JSAKICBkaXN0YW5jZXMoKSAlPiUgCiAgYXMudmVjdG9yKCkgJT4lICAgICAgICAgICAgICAjIHRoZXNlIHR3byBsaW5lcyBjb252ZXJ0IHRoZSBkaXN0YW5jZXMgbWF0cml4CiAgYXNfdGliYmxlKCkgJT4lICAgICAgICAgICAgICAjIHRvIHNvbWV0aGluZyBwbG90bHkgY2FuIGdyYXBoCiAgcGxvdF9seSh4ID0gfnZhbHVlKSAlPiUgCiAgYWRkX2hpc3RvZ3JhbSgpCmBgYApUaGUgaGlzdG9ncmFtIHNob3dzIHRoYXQgNjIgaW5kaXZpZHVhbHMgYXJlIGNvbm5lY3RlZCB3aXRoIDAgaG9wcy4gVGhpcyBtYWtlcyBzZW5zZSBjb25zaWRlcmluZyB0aGVyZSBhcmUgNjIgaW5kaXZpZHVhbHMgYW5kIHRoZXkgYXJlIGNvbm5lY3RlZCB0byB0aGVtc2VsdmVzLiBUaHJlZSBob3BzIHNlZW1zIHRvIG9jY3VyIHRoZSBtb3N0IHdpdGggMSwzODQgaW5kaXZpZHVhbHMgYmVpbmcgY29ubmVjdGVkIGluIHRoaXMgd2F5LiBUaGUgbGVhc3QgYW1vdW50IG9mIGhvcHMgaXMgNSBhbmQgdGhlcmUgYXJlIDIyMCBpbmRpdmlkdWFscyBjb25uZWN0ZWQgaW4gdGhpcyB3YXkuClRoZSBhdmVyYWdlIGFtb3VudCBvZiBob3BzIGlzIHNob3duIGJlbG93LiAKYGBge3J9ClNlcHQxMV9uZXR3b3JrICU+JSAKICBtZWFuX2Rpc3RhbmNlKCkgCmBgYApUaGUgYXZlcmFnZSBhbW91bnQgb2YgaG9wcyBiZXR3ZWVuIGluZGl2aWR1YWxzIGlzIGFib3V0IDMuIAoKNC4gVGhlIGZvbGxvd2luZyBzaG93cyB0aGUgZGlhbWV0ZXIgb2YgdGhlIG5ldHdvcmsuIFRoZSBkaWFtZXRlciByZWZlcnMgdG8gdGhlIGxvbmdlc3Qgc2V0IG9mIGNvbm5lY3Rpb25zLiAKYGBge3J9ClNlcHQxMV9uZXR3b3JrICU+JSAKICBnZXRfZGlhbWV0ZXIoKSAKYGBgCmBgYHtyfQpTZXB0MTFfbmV0d29yayAlPiUgCiAgZ2V0X2RpYW1ldGVyKCkgJT4lIAogIGxlbmd0aCgpCmBgYApUaGUgZGlhbWV0ZXIgb2YgdGhlIDkxMSB0ZXJyb3Jpc3QgbmV0d29yayBpcyA2LiAKCjUuIFRoZSBmb2xsb3dpbmcgZ3JhcGggc2hvd3MgdGhlIDkxMSB0ZXJyb3Jpc3QgbmV0d29yay4gVGhlIHZpZXdlciBpcyBhYmxlIHRvIHpvb20gaW4gdG8gc2VlIHdobyBlYWNoIG5vZGUgcmVwcmVzZW50cyBhcyB3ZWxsIGFzIHB1dHRpbmcgdGhlIGN1cnNlciBvdmVyIHRoZSBub2RlIGZvciB0aGUgdGVycm9yaXN0J3MgbmFtZSB0byBwb3AgdXAuIApgYGB7cn0KU2VwdDExX25vZGVzIDwtIFNlcHQxMV9ub2RlcyAlPiUgCiAgbXV0YXRlKHZhbHVlID0gZGVncmVlKQpgYGAKYGBge3J9CnZpc05ldHdvcmsoU2VwdDExX25vZGVzLCBTZXB0MTFfbGlua3MsIG1haW4gPSAiTmV0d29yayBvZiA5MTEgVGVycm9yaXN0cyIpICU+JSAKICB2aXNJZ3JhcGhMYXlvdXQobGF5b3V0ID0gImxheW91dF9uaWNlbHkiKSAlPiUKICB2aXNPcHRpb25zKGhpZ2hsaWdodE5lYXJlc3QgPSBULCBub2Rlc0lkU2VsZWN0aW9uID0gVCkKYGBgClRoZSBiaWdnZXIgbm9kZXMgcmVwcmVzZW50IHRlcnJvcmlzdHMgd2l0aCBtb3JlIGNvbm5lY3Rpb25zLiBUaGlzIGNhbiBhbHNvIGJlIHJlZmZlcmVkIHRvIGFzIGRlZ3JlZS4gVGhlIHRlcnJvcmlzdCB3aXRoIHRoZSBtb3N0IGNvbm5lY3Rpb25zIGlzIE1vaGFtZWQgQXR0YSB3aXRoIDIyIGNvbm5lY3Rpb25zLiBUaGVyZSBhcmUgMTAgdGVycm9yaXN0cyBpbiB0aGlzIG5ldHdvcmsgd2l0aCBvbmx5IDEgY29ubmVjdGlvbi4gCgoKNi4gVGhlIGZvbGxvd2luZyBncmFwaCBzaG93cyB0aGUgYmV0d2Vlbm5lc3MgaW4gdGhlIG5ldHdvcmsgb2YgOTExIHRlcnJvcmlzdHMuIEJldHdlZW5uZXNzIHJlZmVycyB0byBhIG1lYXN1cmUgb2YgdGhlIG51bWJlciBvZiBzaG9ydGVzdCBwYXRocyB0aGF0IHVzZSBhIHBhcnRpY3VsYXIgbGluay4gCmBgYHtyfQpTZXB0MTFfbGlua3MgPC0gU2VwdDExX2xpbmtzICU+JSAKICBtdXRhdGUoYmV0d2Vlbm5lc3MgPSBlZGdlX2JldHdlZW5uZXNzKFNlcHQxMV9uZXR3b3JrKSkgJT4lIAogIG11dGF0ZSh2YWx1ZSA9IGJldHdlZW5uZXNzKQoKYGBgCmBgYHtyfQp2aXNOZXR3b3JrKFNlcHQxMV9ub2RlcywgU2VwdDExX2xpbmtzLCBtYWluID0gIk5ldHdvcmsgb2YgOTExIFRlcnJvcmlzdHMiKSAlPiUgCiAgdmlzSWdyYXBoTGF5b3V0KGxheW91dCA9ICJsYXlvdXRfbmljZWx5IikgJT4lCiAgdmlzT3B0aW9ucyhoaWdobGlnaHROZWFyZXN0ID0gVCwgbm9kZXNJZFNlbGVjdGlvbiA9IFQpCmBgYApUaGUgdGhpY2tlciBsaW5lcyBvbiB0aGUgZ3JhcGggaW5kaWNhdGUgYSBoaWdoZXIgYmV0d2Vlbm5lc3Mgd2hlbiBpdCBjb21lcyB0byB0aGUgbGlua3MgaW4gdGhpcyB0ZXJyb3Jpc3QgbmV0d29yay4gVGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBpbnZlc3RpZ2F0b3JzLCBvciB3aG9tIGV2ZXIgaXQgbWF5IGJlLCB3aWxsIHdhbnQgdG8gZGlzcnVwdCB0aGUgbGlua3Mgd2l0aCBhIGhpZ2hlciBiZXR3ZWVubmVzcyBmaXJzdCBiZWZvcmUgdGhlIGxpbmtzIHdpdGggYSBsb3dlciBiZXR3ZWVubmVzcy4gCgo3LiBUaGUgZm9sbG93aW5nIGdyYXBoIHNob3dzIHRoZSBjb21tdW5pdGllcywgb3IgZ3JvdXBzLCBpbiB0aGUgOTExIHRlcnJvcmlzdCBuZXR3b3JrLiAKYGBge3J9ClNlcHQxMV9uZXR3b3JrICU+JSAKICBpbmZvbWFwLmNvbW11bml0eSgpCmBgYApgYGB7cn0KU2VwdDExX25vZGVzIDwtIFNlcHQxMV9ub2RlcyAlPiUgCiAgbXV0YXRlKGdyb3VwID0gbWVtYmVyc2hpcChpbmZvbWFwLmNvbW11bml0eShTZXB0MTFfbmV0d29yaykpKQoKU2VwdDExX25vZGVzICU+JSAKICBkYXRhdGFibGUoKQoKYGBgCmBgYHtyfQp2aXNOZXR3b3JrKFNlcHQxMV9ub2RlcywgCiAgICAgICAgICAgU2VwdDExX2xpbmtzLCAKICAgICAgICAgICBtYWluID0gIk5ldHdvcmsgb2YgOTExIFRlcnJvcmlzdHMiKSAlPiUgCiAgdmlzSWdyYXBoTGF5b3V0KGxheW91dCA9ICJsYXlvdXRfbmljZWx5IikgJT4lIAogIHZpc09wdGlvbnMoaGlnaGxpZ2h0TmVhcmVzdCA9IFQsIG5vZGVzSWRTZWxlY3Rpb24gPSBUKQoKYGBgClRoZSBncmFwaCBzaG93cyB0aGF0IHRoZXJlIGFyZSBtdWx0aXBsZSBkaWZmZXJlbnQgZ3JvdXBzIHdpdGhpbiB0aGUgOTExIHRlcnJvcmlzdCBuZXR3b3JrLiBBbG9uZyB3aXRoIHRoYXQsIHRoZSBncmFwaCBzdGlsbCBzaG93cyBiaWdnZXIgbm9kZXMgZm9yIGluZGl2aWR1YWxzIHdpdGggdGhlIG1vcmUgY29ubmVjdGlvbnMgYW5kIHRoaWNrZXIgbGluZXMgZm9yIGhpZ2hlciBiZXR3ZWVubmVzcyB3aGVuIGl0IGNvbWVzIHRvIHRoZSBsaW5rcy4gCgo4LiBUaGUgZm9sbG93aW5nIGdyYXBoIHNob3dzIHRoZSBjb21tdW5pdGllcywgb3IgZ3JvdXBzLCB3aXRoaW4gdGhlIDkxMSB0ZXJyb3Jpc3QgbmV0d29yay4gVGhpcyBncmFwaCBkaWZmZXJzIGZyb20gdGhlIG9uZSBhYm92ZSBiZWNhdXNlIGl0IGdpdmVzIHRoZSBvcHRpb24gb2Ygc2VsZWN0aW5nIGEgc2luZ2xlIGdyb3VwLgpgYGB7cn0KdmlzTmV0d29yayhTZXB0MTFfbm9kZXMsIAogICAgICAgICAgIFNlcHQxMV9saW5rcywgCiAgICAgICAgICAgbWFpbiA9ICJOZXR3b3JrIG9mIDkxMSBUZXJyb3Jpc3RzIikgJT4lIAogIHZpc0lncmFwaExheW91dChsYXlvdXQgPSAibGF5b3V0X25pY2VseSIpICU+JSAKICB2aXNPcHRpb25zKGhpZ2hsaWdodE5lYXJlc3QgPSBULCBub2Rlc0lkU2VsZWN0aW9uID0gVCwgc2VsZWN0ZWRCeSA9ICJncm91cCIpCgpgYGAKVGhlIGdyYXBoIHNob3dzIHRoYXQgdGhlcmUgYXJlIDggdG90YWwgZ3JvdXBzIHdpdGhpbiB0aGUgOTExIHRlcnJvcmlzdCBuZXR3b3JrLiBUaGlzIG1heSBwcm92ZSBoZWxwZnVsIGZvciBpbnZlc3RpZ2F0b3JzLCBvciB3aG9tIGV2ZXIsIHdoZW4gdGhleSBhcmUgdHJ5aW5nIHRvIHRyYWNrIGRvd24gb3IgbG9jYXRlIGEgY2VydGFpbiBpbmRpdmlkdWFsLiAKCgoK