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).
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!
Unit of analysis: Anti-regime groups in Bourbon France & the Ottoman Empire.
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).
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).
Control variables:
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
###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)
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)
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")
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
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
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