Picking sides

April 3, 2015 at 9:16 am

| 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

Entry filed under: Uncategorized. Tags: .

Monday Night Anomalies Everything I Needed to Know (About Publication Bias), I Learned In (Pre-) Kindergarten


The Culture Geeks