Archive for April, 2015
Picking sides
| Gabriel |
Today the Economist posted a graph showing the patrons of factions in various civil wars in the Middle East. The point of the graph is that the alliances don’t neatly follow balance theory, since it is in fact sometimes the case that the friend of my enemy is my friend, which is a classic balance theory fail. As such, I thought it would be fun to run a Spinglass model on the graph. Note that I could only do edges, not arcs, so I only included positive ties, not hostility ties. One implication of this is ISIS drops out as it (currently) lacks state patronage.
Here’s the output. The second column is community and the third is betweenness.
> s Graph community structure calculated with the spinglass algorithm Number of communities: 4 Modularity: 0.4936224 Membership vector: [1] 4 4 3 2 2 2 4 3 4 3 1 4 1 3 3 4 2 4 2 > output b [1,] "bahrain_etc" "4" "0" [2,] "egypt_gov" "4" "9.16666666666667" [3,] "egypt_mb" "3" "1.06666666666667" [4,] "iran" "2" "47.5" [5,] "iraq_gov" "2" "26" [6,] "iraq_kurd" "2" "26" [7,] "jordan" "4" "6.73333333333333" [8,] "libya_dawn" "3" "1.06666666666667" [9,] "libya_dignity" "4" "0.333333333333333" [10,] "qatar" "3" "27.5333333333333" [11,] "russia" "1" "0" [12,] "saudi" "4" "4" [13,] "syria_gov" "1" "17" [14,] "syria_misc" "3" "31.0333333333333" [15,] "turkey" "3" "6.83333333333333" [16,] "uae" "4" "4" [17,] "usa" "2" "74.4" [18,] "yemen_gov" "4" "74.3333333333333" [19,] "yemen_houthi" "2" "0"
So it looks like we’re in community 2, which is basically Iran and its clients, though in fairness we also have high betweenness as we connect community 2 (Greater Iran), community 3 (the pro Muslim Brotherhood Sunni states), and community 4 (the pro Egyptian government Sunni states). This is consistent with the “offshore balancing” model of Obama era MENA policy.
Here’s the code:
library("igraph") setwd('~/Documents/codeandculture') mena <- read.graph('mena.net',format="pajek") la = layout.fruchterman.reingold(mena) V(mena)$label <- V(mena)$id #attaches labels plot.igraph(mena, layout=la, vertex.size=1, vertex.label.cex=0.5, vertex.label.color="darkred", vertex.label.font=2, vertex.color="white", vertex.frame.color="NA", edge.color="gray70", edge.arrow.size=0.5, margin=0) s <- spinglass.community(mena) b <- betweenness(mena, directed=FALSE) output <- cbind(V(mena)$id,s$membership,b) s output
And here’s the data:
*Vertices 19 1 "bahrain_etc" 2 "egypt_gov" 3 "egypt_mb" 4 "iran" 5 "iraq_gov" 6 "iraq_kurd" 7 "jordan" 8 "libya_dawn" 9 "libya_dignity" 10 "qatar" 11 "russia" 12 "saudi" 13 "syria_gov" 14 "syria_misc" 15 "turkey" 16 "uae" 17 "usa" 18 "yemen_gov" 19 "yemen_houthi" *Arcs 1 18 2 9 2 18 4 5 4 6 4 13 4 19 7 2 7 14 7 18 10 3 10 8 10 14 10 18 11 13 12 2 12 9 12 18 15 3 15 8 15 14 16 2 16 9 16 18 17 5 17 6 17 14 17 18
Recent Comments