Given an affiliation network and a vector of actor node IDs, calculate a specified measure of triad closure centered at the nodes.
triad_closure(graph, ...) triad_closure_an(graph, method = "wedges", ...) triad_closure_via_triads(graph, actors = V(graph)[V(graph)$type == FALSE], type = "global", ...) triad_closure_from_centered_triads(triad_list, type = "global", ..., measure = NULL, triads.fun = NULL) triad_closure_via_wedges(graph, actors = V(graph)[V(graph)$type == FALSE], type = "global", ..., measure = NULL, wedges.fun = NULL) triad_closure_watts_strogatz(graph, actors = V(graph)[V(graph)$type == FALSE], type = "global") triad_closure_classical(graph, actors = V(graph)[V(graph)$type == FALSE], type = "global") triad_closure_opsahl(graph, actors = V(graph)[V(graph)$type == FALSE], type = "global") triad_closure_twomode(graph, actors = V(graph)[V(graph)$type == FALSE], type = "global") triad_closure_liebig_rao_0(graph, actors = V(graph)[V(graph)$type == FALSE], type = "global") triad_closure_unconnected(graph, actors = V(graph)[V(graph)$type == FALSE], type = "global") triad_closure_liebig_rao_3(graph, actors = V(graph)[V(graph)$type == FALSE], type = "global") triad_closure_completely_connected(graph, actors = V(graph)[V(graph)$type == FALSE], type = "global") triad_closure_exclusive(graph, actors = V(graph)[V(graph)$type == FALSE], type = "global") triad_closure_projection(graph, actors = V(graph)[V(graph)$type == FALSE], type = "global")
graph | An affiliation network. |
---|---|
... | Measure specifications passed to |
method | Character; for a given |
actors | A vector of actor nodes in |
type | The type of statistic, matched to |
triad_list | A list of triad isomorphism classes in matrix format, as
produced by |
measure | Character; the measure of triad closure, used as the suffix
|
triads.fun | A custom triad closure calculation. It must accept a vector
of centered triad isomorphism classes, encoded as vectors |
wedges.fun | A custom wedge census function. It must accept an
affiliation network |
If type
is "global"
, the global statistic for
graph
; if "local"
, the local statistics for actors
; if
"raw"
, a 2-column matrix, each row of which gives the number of
wedges and of closed wedges centered at actors
.
The triad_closure_*
functions implement the several measures
of triad closure described below. Each function returns a single global
statistic, a vector of local statistics, or a matrix of local denominators
and numerators from which the global and local statistics can be recovered.
The function triad_closure_projection
recapitulates
triad_closure_watts_strogatz
by invoking the
bipartite_projection
and
transitivity
functions in igraph.
Each measure of triad closure is defined as the proportion of wedges that are closed, where a wedge is the image of a specified two-event triad \(W\) under a specified subcategory of graph maps \(C\) subject to a specified congruence relation \(~\), and where a wedge is closed if it is the image of such a map that factors through a canonical inclusion of \(W\) to a specified self-dual three-event triad \(X\).
The alcove, wedge, maps, and congruence can be specified by numerical codes as follows (no plans exist to implement more measures than these):
alcove
:
0
: \(T_{(1,1,1),0}\)
1
: \(T_{(1,1,0),1}\) (not yet implemented)
2
: \(T_{(1,0,0),2}\) (not yet implemented)
3
: \(T_{(0,0,0),3}\) (not yet implemented)
wedge
:
0
: \(T_{(1,1,0),0}\)
1
: \(T_{(1,0,0),1}\) (not yet implemented)
2
: \(T_{(0,0,0),2}\) (not yet implemented)
maps
:
0
: all graph maps (injective on actors)
1
: injective graph maps
2
: induced injective graph maps
congruence
:
0
: same actor and event images (equivalence)
1
: same actor images, structurally equivalent event images
2
: same actor images
Some specifications correspond to statistics of especial interest:
0,0,0,2
:
the classical clustering coefficient (Watts & Strogatz, 1998),
evaluated on the unipartite actor projection
0,0,1,0
:
the two-mode clustering coefficient (Opsahl, 2013)
0,0,2,0
:
the unconnected clustering coefficient (Liebig & Rao, 2014)
3,2,2,0
:
the completely connected clustering coefficient (Liebig & Rao, 2014)
(not yet implemented)
0,0,2,1
:
the exclusive clustering coefficient (Brunson, 2015)
0,0,2,2
:
the exclusive clustering coefficient
See Brunson (2015) for a general definition and the aforecited references for discussions of each statistic.
Watts, D.J., & Strogatz, S.H. (1998). Collective dynamics of "small-world" networks. Nature, 393(6684), 440--442.
Opsahl, T. (2013). Triadic closure in two-mode networks: Redefining the global and local clustering coefficients. Social Networks, 35(2), 159--167. Special Issue on Advances in Two-mode Social Networks.
Liebig, J., & Rao, A. (2014). Identifying influential nodes in bipartite networks using the clustering coefficient. Pages 323--330 of: Proceedings of the tenth international conference on signal-image technology and internet-based systems.
Brunson, J.C. (2015). Triadic analysis of affiliation networks. Network Science, 3(4), 480--508.
Original igraph functions:
transitivity
Other triad closure functions: dynamic_triad_closure
,
project_transitivity
,
transitivity_an
,
triad_closure_from_census
data(women_clique) mapply( triad_closure, measure = c("classical", "twomode", "unconnected", "exclusive"), MoreArgs = list(graph = women_clique, type = "local") )#> classical twomode unconnected exclusive #> [1,] 0.8333333 0.5000000 0.5000000 0.50 #> [2,] 1.0000000 0.6666667 1.0000000 1.00 #> [3,] 1.0000000 0.6666667 0.6666667 0.50 #> [4,] 0.8333333 0.6000000 0.5000000 0.50 #> [5,] 0.8333333 0.7142857 0.6666667 0.75data(women_group) cbind( triad_closure_watts_strogatz(women_group, type = "local"), triad_closure_opsahl(women_group, type = "local"), triad_closure_liebig_rao_0(women_group, type = "local"), triad_closure_exclusive(women_group, type = "local") )#> [,1] [,2] [,3] [,4] #> [1,] 0.8970588 0.7666667 0.39574468 0.4477612 #> [2,] 0.9619048 0.8421751 0.44680851 0.4871795 #> [3,] 0.8970588 0.7523437 0.06188925 0.1445783 #> [4,] 0.9619048 0.8387909 0.34545455 0.4500000 #> [5,] 1.0000000 1.0000000 1.00000000 1.0000000 #> [6,] 0.9619048 0.8690476 0.66666667 0.7777778 #> [7,] 0.9619048 0.7959184 0.50943396 0.5312500 #> [8,] 0.9333333 0.6462585 0.40740741 0.4666667 #> [9,] 0.8970588 0.6702509 0.28688525 0.3283582 #> [10,] 0.8970588 0.6740891 0.37777778 0.3928571 #> [11,] 0.9333333 0.7138810 0.67346939 0.5555556 #> [12,] 0.9333333 0.7695560 0.72602740 0.5357143 #> [13,] 0.8970588 0.7461929 0.33950617 0.3000000 #> [14,] 0.8970588 0.8379501 0.71854305 0.6631579 #> [15,] 0.8970588 0.8159204 0.71428571 0.6610169 #> [16,] 0.9333333 0.5407407 0.46666667 0.4666667 #> [17,] 1.0000000 0.5806452 1.00000000 1.0000000 #> [18,] 1.0000000 0.5806452 1.00000000 1.0000000