View source: R/structural.properties.R
transitivity | R Documentation |
Transitivity measures the probability that the adjacent vertices of a vertex are connected. This is sometimes also called the clustering coefficient.
transitivity(
graph,
type = c("undirected", "global", "globalundirected", "localundirected", "local",
"average", "localaverage", "localaverageundirected", "barrat", "weighted"),
vids = NULL,
weights = NULL,
isolates = c("NaN", "zero")
)
graph |
The graph to analyze. |
type |
The type of the transitivity to calculate. Possible values:
|
vids |
The vertex ids for the local transitivity will be calculated.
This will be ignored for global transitivity types. The default value is
|
weights |
Optional weights for weighted transitivity. It is ignored for
other transitivity measures. If it is |
isolates |
Character scalar, for local versions of transitivity, it
defines how to treat vertices with degree zero and one.
If it is ‘ |
Note that there are essentially two classes of transitivity measures, one is a vertex-level, the other a graph level property.
There are several generalizations of transitivity to weighted graphs, here we use the definition by A. Barrat, this is a local vertex-level quantity, its formula is
C_i^w=\frac{1}{s_i(k_i-1)}\sum_{j,h}\frac{w_{ij}+w_{ih}}{2}a_{ij}a_{ih}a_{jh}
s_i
is the strength of vertex i
, see
strength()
, a_{ij}
are elements of the
adjacency matrix, k_i
is the vertex degree, w_{ij}
are the weights.
This formula gives back the normal not-weighted local transitivity if all the edge weights are the same.
The barrat
type of transitivity does not work for graphs with
multiple and/or loop edges. If you want to calculate it for a directed
graph, call as_undirected()
with the collapse
mode first.
For ‘global
’ a single number, or NaN
if there
are no connected triples in the graph.
For ‘local
’ a vector of transitivity scores, one for each
vertex in ‘vids
’.
Gabor Csardi csardi.gabor@gmail.com
Wasserman, S., and Faust, K. (1994). Social Network Analysis: Methods and Applications. Cambridge: Cambridge University Press.
Alain Barrat, Marc Barthelemy, Romualdo Pastor-Satorras, Alessandro Vespignani: The architecture of complex weighted networks, Proc. Natl. Acad. Sci. USA 101, 3747 (2004)
Other structural.properties:
bfs()
,
component_distribution()
,
connect()
,
constraint()
,
coreness()
,
degree()
,
dfs()
,
distance_table()
,
edge_density()
,
feedback_arc_set()
,
girth()
,
is_acyclic()
,
is_dag()
,
is_matching()
,
k_shortest_paths()
,
knn()
,
reciprocity()
,
subcomponent()
,
subgraph()
,
topo_sort()
,
unfold_tree()
,
which_multiple()
,
which_mutual()
g <- make_ring(10)
transitivity(g)
g2 <- sample_gnp(1000, 10 / 1000)
transitivity(g2) # this is about 10/1000
# Weighted version, the figure from the Barrat paper
gw <- graph_from_literal(A - B:C:D:E, B - C:D, C - D)
E(gw)$weight <- 1
E(gw)[V(gw)[name == "A"] %--% V(gw)[name == "E"]]$weight <- 5
transitivity(gw, vids = "A", type = "local")
transitivity(gw, vids = "A", type = "weighted")
# Weighted reduces to "local" if weights are the same
gw2 <- sample_gnp(1000, 10 / 1000)
E(gw2)$weight <- 1
t1 <- transitivity(gw2, type = "local")
t2 <- transitivity(gw2, type = "weighted")
all(is.na(t1) == is.na(t2))
all(na.omit(t1 == t2))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.