## S3 method for class 'igraph':
modularity(x, membership, weights = NULL, \dots)
mod.matrix (graph, membership, weights = NULL)
NULL
then a numeric vector giving edge
weights.modularity
a numeric scalar, the modularity score of the
given configuration. For mod.matrix
a numeic square matrix, its order is the number
of vertices in the graph.
modularity
calculates the modularity of a graph with respect to
the given membership
vector.
The modularity of a graph with respect to some division (or vertex
types) measures how good the division is, or how separated are the
different vertex types from each other. It defined as
$$Q=\frac{1}{2m} \sum_{i,j} (A_{ij}-\frac{k_ik_j}{2m})\delta(c_i,c_j),$$
here $m$ is the number of edges, $A_{ij}$ is the element
of the $A$ adjacency matrix
in row $i$ and column $j$, $k_i$ is the degree of $i$,
$k_j$ is the degree of $j$, $c_i$ is the type (or
component) of $i$, $c_j$ that of $j$, the sum goes
over all $i$ and $j$ pairs of vertices, and
$\delta(x,y)$ is 1 if $x=y$ and 0 otherwise.If edge weights are given, then these are considered as the element of the $A$ adjacency matrix, and $k_i$ is the sum of weights of adjacent edges for vertex $i$.
mod.matrix
calculates the modularity matrix. This is a dense
matrix, and it is defined as the difference of the adjacency matrix
and the configuration model null model matrix. In other words element
$M_{ij}$ is given as
$A_{ij}-d_i d_j/(2m)$, where
$A_{ij}$ is the (possibly weighted) adjacency matrix,
$d_i$ is the degree of vertex $i$, and $m$ is the
number of edges (or the total weights in the graph, if it is
weighed).
walktrap.community
,
edge.betweenness.community
,
fastgreedy.community
,
spinglass.community
for various community detection
methods.g <- graph.full(5) %du% graph.full(5) %du% graph.full(5)
g <- add.edges(g, c(1,6, 1,11, 6, 11))
wtc <- walktrap.community(g)
modularity(wtc)
modularity(g, membership(wtc))
Run the code above in your browser using DataLab