What precipitates coalition formation?

Some coalitions form despite differences. Others fail to form despite ideological similarities. In Interwar Europe, doctrinal differences inhibited socialist, communist, and anarcho-syndicalist parties from joining forces against fascism (Berman, 2006). Yet, some coalitions function without some shared ideology, such as the Islamist-leftwing coalition in 1979 Iran (Behrooz, 2012).

The Argument

Coalitions form for both strategic and ideological reasons. Yet, partners are more likely to change the regime if they streamline their strategies and sideline or resolve their ideological disagreements than if they align their ideologies but diverge on strategies (Taraktas, 2022).

==> This is an argument about collective action!

Data & Methodology

Unit of analysis: Anti-regime groups in Bourbon France & the Ottoman Empire.

  • Nodes: anti-regime groups

Dependent variable: Coalition between a pair of groups.

  • Edges: cooperation on legal and illegal activities to overthrow authoritarianism.

  • Operationalization: cooperation on sponsoring some bill, generating verbal/written anti-regime propaganda—-including the monarchy and his policies, plotting coups, and mobilizing citizens through secret meetings, protests, and uprisings.

Independent variables:

  • Ideologies: Ideologies are beliefs, goals, and principles prescribing the ideal form of some entity or environment (Snow, 2006).

    • e.g., Society type (multicultural imperial society vs. nation-state), state type (constitutional monarchy, nation state), secularization, administrative centralization
  • Strategies: Strategies are a set of tactics chosen from a repertoire, which is as “a limited set of routines that are learned, shared, and acted out through a relatively deliberate process of choice” (Tilly, 1995, 42).

    • e.g., violence as an electoral strategy, cooperation with secessionists, cooperation with the European Great Powers
  • Control variables:

    • Clustering to control for the propensity to partner with a partner’s partner. High clustering indicates hierarchical network at the local level, while low clustering suggests that nodes form relations rather freely.

Specifying hypotheses

  • Ideological similarity makes tie formation more likely

  • Strategic similarity makes tie formation more likely

  • Ideological similarity is not sufficient for collective action

  • Strategic similarity is necessary for collective action

==> Use ERGMs to establish whether tie formation follows ideological similarities and/or strategic similarities

Load data

###set working directory 

##read in files
##edges
e96 <- read.csv("96.csv", stringsAsFactors = F, header = T)
e97 <- read.csv("97.csv", stringsAsFactors = F, header = T)
##node attributes
node_attr<- read.csv("node_attr.csv", stringsAsFactors = F, header = T)

Load packages

library(igraph)
## 
## Attaching package: 'igraph'
## The following objects are masked from 'package:stats':
## 
##     decompose, spectrum
## The following object is masked from 'package:base':
## 
##     union
###save your edges as matrix
e96<- as.matrix(e96)
e97<- as.matrix(e97)

Construct networks

Let’s construct our networks from edgelist using igraph & plot them

net96 <- graph_from_edgelist(e96, directed = F)
net97 <- graph_from_edgelist(e97, directed = F)
vcount(net96)
## [1] 16
vcount(net97)
## [1] 16
plot(net96, main = "Ottoman groups in 1896")

plot(net97, main = "Ottoman groups in 1897")

Assign node attributes

Let’s add node attributes: foreign assistance, cooperation with secessionists, secularization, regime change, society type, and state type

But, notice nodes are different in both networks!

Step 1: set the node list for each network

###for 1896
nodes96 <- V(net96)$name
filtered_96 <- node_attr[node_attr$name %in% nodes96, ]

###for 1897
nodes97 <- V(net97)$name
filtered_97 <- node_attr[node_attr$name %in% nodes97, ]

Step 2: assign

###for net96
V(net96)$cooperation_with_great_powers<- filtered_96$coop_GP
V(net96)$cooperation_with_secessionists<- filtered_96$coop_secessionists
V(net96)$secularization<- filtered_96$sclz
V(net96)$regime_change<- filtered_96$reg_Change
V(net96)$society_type<- filtered_96$soc_type
V(net96)$state_type<- filtered_96$state_type



###for net97
V(net97)$cooperation_with_great_powers<- filtered_97$coop_GP
V(net97)$cooperation_with_secessionists<- filtered_97$coop_secessionists
V(net97)$secularization<- filtered_97$sclz
V(net97)$regime_change<- filtered_97$reg_Change
V(net97)$society_type<- filtered_97$soc_type
V(net97)$state_type<- filtered_97$state_type

ERGM

library(statnet)
## Loading required package: tergm
## Loading required package: ergm
## Loading required package: network
## 
## 'network' 1.18.1 (2023-01-24), part of the Statnet Project
## * 'news(package="network")' for changes since last version
## * 'citation("network")' for citation information
## * 'https://statnet.org' for help, support, and other information
## 
## Attaching package: 'network'
## The following objects are masked from 'package:igraph':
## 
##     %c%, %s%, add.edges, add.vertices, delete.edges, delete.vertices,
##     get.edge.attribute, get.edges, get.vertex.attribute, is.bipartite,
##     is.directed, list.edge.attributes, list.vertex.attributes,
##     set.edge.attribute, set.vertex.attribute
## 
## 'ergm' 4.4.0 (2023-01-26), part of the Statnet Project
## * 'news(package="ergm")' for changes since last version
## * 'citation("ergm")' for citation information
## * 'https://statnet.org' for help, support, and other information
## 'ergm' 4 is a major update that introduces some backwards-incompatible
## changes. Please type 'news(package="ergm")' for a list of major
## changes.
## Loading required package: networkDynamic
## 
## 'networkDynamic' 0.11.3 (2023-02-15), part of the Statnet Project
## * 'news(package="networkDynamic")' for changes since last version
## * 'citation("networkDynamic")' for citation information
## * 'https://statnet.org' for help, support, and other information
## Registered S3 method overwritten by 'tergm':
##   method                   from
##   simulate_formula.network ergm
## 
## 'tergm' 4.1.1 (2022-11-07), part of the Statnet Project
## * 'news(package="tergm")' for changes since last version
## * 'citation("tergm")' for citation information
## * 'https://statnet.org' for help, support, and other information
## 
## Attaching package: 'tergm'
## The following object is masked from 'package:ergm':
## 
##     snctrl
## Loading required package: ergm.count
## 
## 'ergm.count' 4.1.1 (2022-05-24), part of the Statnet Project
## * 'news(package="ergm.count")' for changes since last version
## * 'citation("ergm.count")' for citation information
## * 'https://statnet.org' for help, support, and other information
## Loading required package: sna
## Loading required package: statnet.common
## 
## Attaching package: 'statnet.common'
## The following object is masked from 'package:ergm':
## 
##     snctrl
## The following objects are masked from 'package:base':
## 
##     attr, order
## sna: Tools for Social Network Analysis
## Version 2.7-1 created on 2023-01-24.
## copyright (c) 2005, Carter T. Butts, University of California-Irvine
##  For citation information, type citation("sna").
##  Type help(package="sna") to get started.
## 
## Attaching package: 'sna'
## The following objects are masked from 'package:igraph':
## 
##     betweenness, bonpow, closeness, components, degree, dyad.census,
##     evcent, hierarchy, is.connected, neighborhood, triad.census
## Loading required package: tsna
## 
## 'statnet' 2019.6 (2019-06-13), part of the Statnet Project
## * 'news(package="statnet")' for changes since last version
## * 'citation("statnet")' for citation information
## * 'https://statnet.org' for help, support, and other information
## unable to reach CRAN
library(network)
library(ergm)
library(intergraph)
set.seed(888)
class(net96)
## [1] "igraph"
net96 <- asNetwork(net96)
est1_96<- ergm(net96 ~ edges + gwesp(0, fixed=T)
               #nodematch("cooperation_with_great_powers", keep=c(0,1))
               #+nodematch("cooperation_with_secessionists", keep=c(0,1))
               #+nodematch("secularization" )
               +nodematch("regime_change")
               +nodematch("society_type")
               +nodematch("state_type"))
## Starting maximum pseudolikelihood estimation (MPLE):
## Evaluating the predictor and response matrix.
## Maximizing the pseudolikelihood.
## Finished MPLE.
## Starting Monte Carlo maximum likelihood estimation (MCMLE):
## Iteration 1 of at most 60:
## Warning: 'glpk' selected as the solver, but package 'Rglpk' is not available;
## falling back to 'lpSolveAPI'. This should be fine unless the sample size and/or
## the number of parameters is very big.
## Optimizing with step length 1.0000.
## The log-likelihood improved by 0.8537.
## Estimating equations are not within tolerance region.
## Iteration 2 of at most 60:
## Optimizing with step length 1.0000.
## The log-likelihood improved by 0.0330.
## Convergence test p-value: 0.0012. Converged with 99% confidence.
## Finished MCMLE.
## Evaluating log-likelihood at the estimate. Fitting the dyad-independent submodel...
## Bridging between the dyad-independent submodel and the full model...
## Setting up bridge sampling...
## Using 16 bridges: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 .
## Bridging finished.
## This model was fit using MCMC.  To examine model diagnostics and check
## for degeneracy, use the mcmc.diagnostics() function.
summary(est1_96)
## Call:
## ergm(formula = net96 ~ edges + gwesp(0, fixed = T) + nodematch("regime_change") + 
##     nodematch("society_type") + nodematch("state_type"))
## 
## Monte Carlo Maximum Likelihood Results:
## 
##                         Estimate Std. Error MCMC % z value Pr(>|z|)   
## edges                    -2.0718     0.8033      0  -2.579   0.0099 **
## gwesp.fixed.0             1.0603     0.6400      0   1.657   0.0976 . 
## nodematch.regime_change  -0.6334     0.4537      0  -1.396   0.1627   
## nodematch.society_type   -0.4248     0.4243      0  -1.001   0.3167   
## nodematch.state_type      0.8207     0.4305      0   1.907   0.0566 . 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##      Null Deviance: 166.4  on 120  degrees of freedom
##  Residual Deviance: 143.4  on 115  degrees of freedom
##  
## AIC: 153.4  BIC: 167.3  (Smaller is better. MC Std. Err. = 0.1171)
class(net97)
## [1] "igraph"
net97 <- asNetwork(net97)
est1_97<- ergm(net97 ~ edges + gwesp(0, fixed=T)
               +nodematch("cooperation_with_great_powers", keep=c(0,1))
               +nodematch("cooperation_with_secessionists", keep=c(0,1))
               +nodematch("secularization" )
               +nodematch("regime_change")
               +nodematch("society_type")
               +nodematch("state_type"))
## In term 'nodematch' in package 'ergm': Argument 'keep' has been superseded by 'levels', and it is recommended to use the latter.  Note that its interpretation may be different.
## Observed statistic(s) nodematch.cooperation_with_secessionists are at their smallest attainable values. Their coefficients will be fixed at -Inf.
## 
## Starting maximum pseudolikelihood estimation (MPLE):
## 
## Evaluating the predictor and response matrix.
## 
## Maximizing the pseudolikelihood.
## 
## Finished MPLE.
## 
## Starting Monte Carlo maximum likelihood estimation (MCMLE):
## 
## Iteration 1 of at most 60:
## 
## Optimizing with step length 1.0000.
## 
## The log-likelihood improved by 0.2211.
## 
## Estimating equations are not within tolerance region.
## 
## Iteration 2 of at most 60:
## 
## Optimizing with step length 1.0000.
## 
## The log-likelihood improved by 0.0334.
## 
## Convergence test p-value: 0.0052. 
## Converged with 99% confidence.
## 
## Finished MCMLE.
## 
## Evaluating log-likelihood at the estimate. 
## Fitting the dyad-independent submodel...
## 
## Bridging between the dyad-independent submodel and the full model...
## 
## Setting up bridge sampling...
## 
## Using 16 bridges: 
## 1 
## 2 
## 3 
## 4 
## 5 
## 6 
## 7 
## 8 
## 9 
## 10 
## 11 
## 12 
## 13 
## 14 
## 15 
## 16 
## .
## 
## Bridging finished.
## 
## This model was fit using MCMC.  To examine model diagnostics and check
## for degeneracy, use the mcmc.diagnostics() function.
summary(est1_97)
## Call:
## ergm(formula = net97 ~ edges + gwesp(0, fixed = T) + nodematch("cooperation_with_great_powers", 
##     keep = c(0, 1)) + nodematch("cooperation_with_secessionists", 
##     keep = c(0, 1)) + nodematch("secularization") + nodematch("regime_change") + 
##     nodematch("society_type") + nodematch("state_type"))
## 
## Monte Carlo Maximum Likelihood Results:
## 
##                                          Estimate Std. Error MCMC % z value
## edges                                    -1.17584    0.58986      0  -1.993
## gwesp.fixed.0                             0.49278    0.36609      0   1.346
## nodematch.cooperation_with_great_powers   0.36023    0.67778      0   0.531
## nodematch.cooperation_with_secessionists     -Inf    0.00000      0    -Inf
## nodematch.secularization                  0.39381    0.46681      0   0.844
## nodematch.regime_change                  -0.57704    0.49368      0  -1.169
## nodematch.society_type                   -0.09019    0.42341      0  -0.213
## nodematch.state_type                     -0.73497    0.46679      0  -1.575
##                                          Pr(>|z|)    
## edges                                      0.0462 *  
## gwesp.fixed.0                              0.1783    
## nodematch.cooperation_with_great_powers    0.5951    
## nodematch.cooperation_with_secessionists   <1e-04 ***
## nodematch.secularization                   0.3989    
## nodematch.regime_change                    0.2425    
## nodematch.society_type                     0.8313    
## nodematch.state_type                       0.1154    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
##  Warning: The following terms have infinite coefficient estimates:
##   nodematch.cooperation_with_secessionists

Diagnostics

mcmc.diagnostics(est1_96)

## Sample statistics summary:
## 
## Iterations = 7168:131072
## Thinning interval = 512 
## Number of chains = 1 
## Sample size per chain = 243 
## 
## 1. Empirical mean and standard deviation for each variable,
##    plus standard error of the mean:
## 
##                             Mean    SD Naive SE Time-series SE
## edges                    0.01646 4.747   0.3045         0.2728
## gwesp.fixed.0           -0.25514 5.686   0.3648         0.3220
## nodematch.regime_change -0.35802 2.608   0.1673         0.1673
## nodematch.society_type   0.26749 2.771   0.1777         0.1777
## nodematch.state_type    -0.07819 3.157   0.2025         0.2025
## 
## 2. Quantiles for each variable:
## 
##                           2.5% 25% 50% 75% 97.5%
## edges                    -8.95  -3   0   3  9.00
## gwesp.fixed.0           -11.00  -4   0   4 10.00
## nodematch.regime_change  -5.00  -2   0   2  4.95
## nodematch.society_type   -5.00  -2   0   2  6.00
## nodematch.state_type     -5.95  -2   0   2  6.00
## 
## 
## Are sample statistics significantly different from observed?
##                 edges gwesp.fixed.0 nodematch.regime_change
## diff.      0.01646091    -0.2551440             -0.35802469
## test stat. 0.06032990    -0.7924598             -2.14007222
## P-val.     0.95189289     0.4280926              0.03234893
##            nodematch.society_type nodematch.state_type      (Omni)
## diff.                   0.2674897           -0.0781893          NA
## test stat.              1.5050130           -0.3861119 15.69210696
## P-val.                  0.1323207            0.6994138  0.01020943
## 
## Sample statistics cross-correlations:
##                             edges gwesp.fixed.0 nodematch.regime_change
## edges                   1.0000000     0.9610552               0.5094800
## gwesp.fixed.0           0.9610552     1.0000000               0.4993158
## nodematch.regime_change 0.5094800     0.4993158               1.0000000
## nodematch.society_type  0.4489297     0.4292806               0.1059585
## nodematch.state_type    0.6453184     0.6121796               0.3092998
##                         nodematch.society_type nodematch.state_type
## edges                                0.4489297            0.6453184
## gwesp.fixed.0                        0.4292806            0.6121796
## nodematch.regime_change              0.1059585            0.3092998
## nodematch.society_type               1.0000000            0.4607005
## nodematch.state_type                 0.4607005            1.0000000
## 
## Sample statistics auto-correlation:
## Chain 1 
##                edges gwesp.fixed.0 nodematch.regime_change
## Lag 0     1.00000000    1.00000000              1.00000000
## Lag 512  -0.11149128   -0.12619515              0.02170528
## Lag 1024  0.05519244    0.07442126              0.05869027
## Lag 1536 -0.03027768   -0.03658251             -0.04572024
## Lag 2048 -0.11919833   -0.12110513             -0.03381889
## Lag 2560  0.08708681    0.11590422             -0.04830636
##          nodematch.society_type nodematch.state_type
## Lag 0               1.000000000           1.00000000
## Lag 512             0.010413410          -0.02514938
## Lag 1024            0.071349637           0.00432259
## Lag 1536           -0.074900666          -0.06068699
## Lag 2048           -0.087677331          -0.01931908
## Lag 2560           -0.005064099           0.08023333
## 
## Sample statistics burn-in diagnostic (Geweke):
## Chain 1 
## 
## Fraction in 1st window = 0.1
## Fraction in 2nd window = 0.5 
## 
##                   edges           gwesp.fixed.0 nodematch.regime_change 
##               0.4781012               0.4212687              -1.2898500 
##  nodematch.society_type    nodematch.state_type 
##               0.9644935               0.6634973 
## 
## Individual P-values (lower = worse):
##                   edges           gwesp.fixed.0 nodematch.regime_change 
##               0.6325781               0.6735589               0.1971027 
##  nodematch.society_type    nodematch.state_type 
##               0.3347986               0.5070121 
## Joint P-value (lower = worse):  0.6419466 
## 
## Note: MCMC diagnostics shown here are from the last round of
##   simulation, prior to computation of final parameter estimates.
##   Because the final estimates are refinements of those used for this
##   simulation run, these diagnostics may understate model performance.
##   To directly assess the performance of the final model on in-model
##   statistics, please use the GOF command: gof(ergmFitObject,
##   GOF=~model).
mcmc.diagnostics(est1_97)

## Sample statistics summary:
## 
## Iterations = 7168:131072
## Thinning interval = 512 
## Number of chains = 1 
## Sample size per chain = 243 
## 
## 1. Empirical mean and standard deviation for each variable,
##    plus standard error of the mean:
## 
##                                            Mean    SD Naive SE Time-series SE
## edges                                   -0.6008 5.306   0.3404        0.34041
## gwesp.fixed.0                           -0.6996 7.051   0.4524        0.45235
## nodematch.cooperation_with_great_powers -0.3992 1.706   0.1094        0.09743
## nodematch.secularization                -0.2346 3.117   0.2000        0.27071
## nodematch.regime_change                 -0.2428 2.786   0.1787        0.17874
## nodematch.society_type                  -0.0535 3.178   0.2039        0.20388
## nodematch.state_type                    -0.1399 4.033   0.2587        0.25869
## 
## 2. Quantiles for each variable:
## 
##                                           2.5%  25% 50% 75% 97.5%
## edges                                   -11.95 -4.0  -1 3.0  9.00
## gwesp.fixed.0                           -13.95 -5.5  -1 4.0 12.00
## nodematch.cooperation_with_great_powers  -3.95 -1.5  -1 1.0  3.00
## nodematch.secularization                 -6.00 -2.0   0 1.5  6.95
## nodematch.regime_change                  -5.95 -2.0   0 2.0  5.00
## nodematch.society_type                   -6.00 -2.0   0 2.0  6.00
## nodematch.state_type                     -7.00 -3.0   0 2.0  8.00
## 
## 
## Are sample statistics significantly different from observed?
##                  edges gwesp.fixed.0 nodematch.cooperation_with_great_powers
## diff.      -0.60082305    -0.6995885                           -3.991770e-01
## test stat. -1.76501101    -1.5465546                           -4.097241e+00
## P-val.      0.07756191     0.1219707                            4.181042e-05
##            nodematch.secularization nodematch.regime_change
## diff.                    -0.2345679              -0.2427984
## test stat.               -0.8664924              -1.3584096
## P-val.                    0.3862202               0.1743338
##            nodematch.society_type nodematch.state_type      (Omni)
## diff.                 -0.05349794           -0.1399177          NA
## test stat.            -0.26240387           -0.5408760 15.74312918
## P-val.                 0.79301009            0.5885931  0.03583581
## 
## Sample statistics cross-correlations:
##                                             edges gwesp.fixed.0
## edges                                   1.0000000     0.9191246
## gwesp.fixed.0                           0.9191246     1.0000000
## nodematch.cooperation_with_great_powers 0.3928976     0.3961149
## nodematch.secularization                0.5847378     0.5220625
## nodematch.regime_change                 0.6306806     0.5650789
## nodematch.society_type                  0.6160420     0.5459573
## nodematch.state_type                    0.7650183     0.6766420
##                                         nodematch.cooperation_with_great_powers
## edges                                                                 0.3928976
## gwesp.fixed.0                                                         0.3961149
## nodematch.cooperation_with_great_powers                               1.0000000
## nodematch.secularization                                              0.2402970
## nodematch.regime_change                                               0.4481123
## nodematch.society_type                                                0.1240888
## nodematch.state_type                                                  0.2705621
##                                         nodematch.secularization
## edges                                                  0.5847378
## gwesp.fixed.0                                          0.5220625
## nodematch.cooperation_with_great_powers                0.2402970
## nodematch.secularization                               1.0000000
## nodematch.regime_change                                0.4734595
## nodematch.society_type                                 0.3770358
## nodematch.state_type                                   0.7100493
##                                         nodematch.regime_change
## edges                                                 0.6306806
## gwesp.fixed.0                                         0.5650789
## nodematch.cooperation_with_great_powers               0.4481123
## nodematch.secularization                              0.4734595
## nodematch.regime_change                               1.0000000
## nodematch.society_type                                0.3247194
## nodematch.state_type                                  0.5228897
##                                         nodematch.society_type
## edges                                                0.6160420
## gwesp.fixed.0                                        0.5459573
## nodematch.cooperation_with_great_powers              0.1240888
## nodematch.secularization                             0.3770358
## nodematch.regime_change                              0.3247194
## nodematch.society_type                               1.0000000
## nodematch.state_type                                 0.5978452
##                                         nodematch.state_type
## edges                                              0.7650183
## gwesp.fixed.0                                      0.6766420
## nodematch.cooperation_with_great_powers            0.2705621
## nodematch.secularization                           0.7100493
## nodematch.regime_change                            0.5228897
## nodematch.society_type                             0.5978452
## nodematch.state_type                               1.0000000
## 
## Sample statistics auto-correlation:
## Chain 1 
##                 edges gwesp.fixed.0 nodematch.cooperation_with_great_powers
## Lag 0     1.000000000   1.000000000                             1.000000000
## Lag 512  -0.045181518  -0.008312117                             0.121995325
## Lag 1024  0.117775888   0.056601608                             0.102457401
## Lag 1536  0.015526484  -0.010346586                            -0.116718245
## Lag 2048  0.064811319  -0.038700864                            -0.093945779
## Lag 2560 -0.001220869  -0.037428626                            -0.004438476
##          nodematch.secularization nodematch.regime_change
## Lag 0                  1.00000000             1.000000000
## Lag 512                0.04777114             0.056476798
## Lag 1024               0.10172660             0.023169623
## Lag 1536               0.15505733             0.032460987
## Lag 2048               0.04914991             0.037349457
## Lag 2560              -0.03039281            -0.006991237
##          nodematch.society_type nodematch.state_type
## Lag 0              1.0000000000          1.000000000
## Lag 512           -0.0533392408         -0.074540877
## Lag 1024          -0.0287278917          0.087614388
## Lag 1536          -0.0703274033          0.055336945
## Lag 2048           0.0002731101         -0.009065518
## Lag 2560           0.0190036511         -0.007403589
## 
## Sample statistics burn-in diagnostic (Geweke):
## Chain 1 
## 
## Fraction in 1st window = 0.1
## Fraction in 2nd window = 0.5 
## 
##                                   edges                           gwesp.fixed.0 
##                              0.11876307                             -0.28241046 
## nodematch.cooperation_with_great_powers                nodematch.secularization 
##                             -0.03005424                              0.83408715 
##                 nodematch.regime_change                  nodematch.society_type 
##                              0.78548008                             -0.47588599 
##                    nodematch.state_type 
##                              0.97785592 
## 
## Individual P-values (lower = worse):
##                                   edges                           gwesp.fixed.0 
##                               0.9054631                               0.7776288 
## nodematch.cooperation_with_great_powers                nodematch.secularization 
##                               0.9760238                               0.4042319 
##                 nodematch.regime_change                  nodematch.society_type 
##                               0.4321721                               0.6341556 
##                    nodematch.state_type 
##                               0.3281456 
## Joint P-value (lower = worse):  0.8614781 
## 
## Note: MCMC diagnostics shown here are from the last round of
##   simulation, prior to computation of final parameter estimates.
##   Because the final estimates are refinements of those used for this
##   simulation run, these diagnostics may understate model performance.
##   To directly assess the performance of the final model on in-model
##   statistics, please use the GOF command: gof(ergmFitObject,
##   GOF=~model).
gof(est1_96)
## 
## Goodness-of-fit for degree 
## 
##          obs min mean max MC p-value
## degree0    0   0 0.14   1       1.00
## degree1    2   0 0.46   3       0.20
## degree2    0   0 1.27   5       0.58
## degree3    5   0 1.83   6       0.04
## degree4    1   0 2.68   7       0.38
## degree5    1   0 2.89   7       0.30
## degree6    1   0 2.53   7       0.50
## degree7    3   0 2.02   6       0.70
## degree8    2   0 1.12   4       0.66
## degree9    0   0 0.60   3       1.00
## degree10   0   0 0.33   2       1.00
## degree11   0   0 0.11   1       1.00
## degree12   0   0 0.01   1       1.00
## degree13   1   0 0.01   1       0.02
## 
## Goodness-of-fit for edgewise shared partner 
## 
##      obs min  mean max MC p-value
## esp0   2   0  2.09   7       1.00
## esp1   3   3 13.31  24       0.02
## esp2  19   5 12.89  21       0.08
## esp3   9   0  8.09  21       0.98
## esp4   2   0  3.34  11       0.90
## esp5   2   0  1.10   7       0.50
## esp6   3   0  0.20   3       0.04
## esp7   1   0  0.02   1       0.04
## esp8   0   0  0.01   1       1.00
## 
## Goodness-of-fit for minimum geodesic distance 
## 
##     obs min  mean max MC p-value
## 1    41  28 41.05  53       1.00
## 2    65  48 62.23  72       0.84
## 3    14   2 13.61  32       0.84
## 4     0   0  0.97  11       1.00
## 5     0   0  0.04   3       1.00
## Inf   0   0  2.10  15       1.00
## 
## Goodness-of-fit for model statistics 
## 
##                         obs min  mean max MC p-value
## edges                    41  28 41.05  53          1
## gwesp.fixed.0            39  25 38.96  53          1
## nodematch.regime_change  10   3  9.81  16          1
## nodematch.society_type   13   5 12.91  20          1
## nodematch.state_type     25  14 25.01  32          1
gof(est1_97)
## 
## Goodness-of-fit for degree 
## 
##          obs min mean max MC p-value
## degree0    0   0 0.39   2       1.00
## degree1    4   0 1.05   4       0.02
## degree2    2   0 2.00   7       1.00
## degree3    2   0 2.89   9       0.88
## degree4    2   0 3.38   8       0.52
## degree5    2   0 2.48   6       1.00
## degree6    0   0 2.00   5       0.32
## degree7    2   0 1.19   4       0.64
## degree8    1   0 0.42   3       0.64
## degree9    0   0 0.11   1       1.00
## degree10   1   0 0.06   1       0.12
## degree11   0   0 0.02   1       1.00
## degree12   0   0 0.01   1       1.00
## 
## Goodness-of-fit for edgewise shared partner 
## 
##      obs min  mean max MC p-value
## esp0   6   1  6.29  15       1.00
## esp1   9   5 13.65  25       0.14
## esp2   3   0  8.73  19       0.16
## esp3   5   0  3.07  13       0.58
## esp4   6   0  0.74   5       0.00
## esp5   3   0  0.14   3       0.02
## esp6   0   0  0.01   1       1.00
## 
## Goodness-of-fit for minimum geodesic distance 
## 
##     obs min  mean max MC p-value
## 1    32  21 32.63  45       0.98
## 2    51  29 54.50  71       0.72
## 3     9   7 21.75  43       0.10
## 4     0   0  4.03  21       0.60
## 5     0   0  0.52  16       1.00
## 6     0   0  0.07   7       1.00
## 7     0   0  0.03   3       1.00
## 8     0   0  0.01   1       1.00
## Inf  28   0  6.46  39       0.16
## 
## Goodness-of-fit for model statistics 
## 
##                                         obs min  mean max MC p-value
## edges                                    32  21 32.63  45       0.98
## gwesp.fixed.0                            26  11 26.34  41       1.00
## nodematch.cooperation_with_great_powers   4   0  4.28   9       1.00
## nodematch.secularization                 12   5 12.10  20       0.98
## nodematch.regime_change                   9   2  8.85  16       1.00
## nodematch.society_type                   11   6 11.48  19       1.00
## nodematch.state_type                     17  10 17.79  28       0.88