LModularity function

L Modularity

L Modularity

Calculates the L-Modularity (Newman-type modularity) and the partition of traits that minimizes L-Modularity. Wrapper for using correlations matrices in community detection algorithms from igraph.

LModularity(cor.matrix, method = optimal.community, ...)

Arguments

  • cor.matrix: correlation matrix
  • method: community detection function
  • ...: Additional arguments to igraph community detection function

Returns

List with L-Modularity value and trait partition

Details

Warning: Using modularity maximization is almost always a terrible idea. See: https://skewed.de/tiago/blog/modularity-harmful

Note

Community detection is done by transforming the correlation matrix into a weighted graph and using community detection algorithms on this graph. Default method is optimal but slow. See igraph documentation for other options.

If negative correlations are present, the square of the correlation matrix is used as weights.

Examples

## Not run: # A modular matrix: modules = matrix(c(rep(c(1, 0, 0), each = 5), rep(c(0, 1, 0), each = 5), rep(c(0, 0, 1), each = 5)), 15) cor.hypot = CreateHypotMatrix(modules)[[4]] hypot.mask = matrix(as.logical(cor.hypot), 15, 15) mod.cor = matrix(NA, 15, 15) mod.cor[ hypot.mask] = runif(length(mod.cor[ hypot.mask]), 0.8, 0.9) # within-modules mod.cor[!hypot.mask] = runif(length(mod.cor[!hypot.mask]), 0.3, 0.4) # between-modules diag(mod.cor) = 1 mod.cor = (mod.cor + t(mod.cor))/2 # correlation matrices should be symmetric # requires a custom igraph installation with GLPK installed in the system LModularity(mod.cor) ## End(Not run)

References

Modularity and community structure in networks (2006) M. E. J. Newman, 8577-8582, doi: 10.1073/pnas.0601602103

  • Maintainer: Diogo Melo
  • License: MIT + file LICENSE
  • Last published: 2023-12-05

Useful links