View source: R/backbone_from_unweighted.R
| backbone_from_unweighted | R Documentation |
backbone_from_unweighted() extracts the unweighted backbone from an unweighted, undirected network
backbone_from_unweighted(
U,
model = "lspar",
parameter = 0.5,
escore,
normalize,
filter,
umst,
narrative = FALSE,
backbone_only = TRUE
)
U |
An unweighted, undirected network as an adjacency matrix or Matrix, or an unweighted unipartite igraph object |
model |
string: backbone model |
parameter |
real: filtering parameter |
escore |
string: Method for scoring edges' importance |
normalize |
string: Method for normalizing edge scores |
filter |
string: Type of filter to apply |
umst |
logical: TRUE if the backbone should include the union of maximum spanning trees, to ensure connectivity |
narrative |
logical: display suggested text & citations |
backbone_only |
logical: return just the backbone (default), or a detailed backbone object |
The backbone_from_unweighted function extracts the backbone from an unweighted unipartite network. The backbone is an
unweighted unipartite network that contains only edges preserved by a backbone model.
The following backbone models are available using the model parameter:
skeleton - Skeleton backbone (Karger, 1999)
gspar - Global Sparsification (Satuluri et al., 2011)
lspar - Local Sparsification (Satuluri et al., 2011)
simmelian - Simmelian backbone (Nick et al., 2013)
jaccard - Jaccard backbone (Goldberg and Roth, 2003)
meetmin - MeetMin backbone (Goldberg and Roth, 2003)
geometric - Geometric backbone (Goldberg and Roth, 2003)
hyper - Hypergeometric backbone, (Goldberg and Roth, 2003)
degree - Local Degree backbone (Hamann et al, 2016)
quadrilateral - Quadrilateral Simmelian backbone (Nocaj et al, 2015)
custom - A custom backbone model specified by escore, normalize, filter, and umst
The escore parameter determines how an unweighted edge's importance is calculated.
random: a random number drawn from a uniform distribution
betweenness: edge betweenness
triangles: number of triangles that include the edge
jaccard: jaccard similarity coefficient of the neighborhoods of an edge's endpoints, or alternatively, triangles normalized by the size of the union of the endpoints neighborhoods
dice: dice similarity coefficient of the neighborhoods of an edge's endpoints
quadrangles: number of quadrangles that include the edge
quadrilateral: geometric mean normalization of quadrangles
degree: degree of neighbor to which an edge is adjacent (asymmetric)
meetmin: triangles normalized by the smaller of the endpoints' neighborhoods' sizes
geometric: triangles normalized by the product of the endpoints' neighborhoods' sizes
hypergeometric: probability of the edge being included at least as many triangles if edges were random, given the size of the endpoints' neighborhoods (inverted, so that larger is more important)
The normalize parameter determines whether edge scores are normalized.
none: no normalization is performed
rank: scores are normalized by neighborhood rank, such that the strongest edge in a node's neighborhood is ranked 1 (requires that filter = degree)
embeddedness: scores are normalized using the maximum Jaccard coefficient of the top k-ranked neighbors of each endpoint, for all k
The filter parameter determines how edges are filtered based on their (normalized) edge scores.
threshold: Edges with scores > parameter are retained in the backbone
proportion: Specifies the approximate proportion of edges to retain in the backbone
degree: Retains each node's d^parameter most important edges, where d is the node's degree (requires that normalize = "rank")
disparity: Applies the disparity filter using backbone_from_weighted()
lans: Applies locally adaptive network sparsification using backbone_from_weighted()
mlf: Applies the marginal likelihood filter using backbone_from_weighted()
A backbone in the same class as U, or if backbone_only = FALSE, then a backbone object.
package: Neal, Z. P. (2026). backbone: An R Package to Extract Network Backbones. PLOS One, 21, e0349258. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1371/journal.pone.0349258")}
skeleton: Karger, D. R. (1999). Random sampling in cut, flow, and network design problems. Mathematics of Operations Research, 24, 383-413. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1287/moor.24.2.383")}
gspar and lspar: Satuluri, V., Parthasarathy, S., & Ruan, Y. (2011, June). Local graph sparsification for scalable clustering. In Proceedings of the 2011 ACM SIGMOD International Conference on Management of data (pp. 721-732). \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1145/1989323.1989399")}
simmelian: Nick, B., Lee, C., Cunningham, P., & Brandes, U. (2013, August). Simmelian backbones: Amplifying hidden homophily in facebook networks. In Proceedings of the 2013 IEEE/ACM international conference on advances in social networks analysis and mining (pp. 525-532). \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1145/2492517.2492569")}
jaccard, meetmin, geometric, hyper: Goldberg, D. S., & Roth, F. P. (2003). Assessing experimentally derived interactions in a small world. Proceedings of the National Academy of Sciences, 100, 4372-4376. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1073/pnas.0735871100")}
degree: Hamann, M., Lindner, G., Meyerhenke, H., Staudt, C. L., & Wagner, D. (2016). Structure-preserving sparsification methods for social networks. Social Network Analysis and Mining, 6, 22. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1007/s13278-016-0332-2")}
quadrilateral: Nocaj, A., Ortmann, M., & Brandes, U. (2015). Untangling the hairballs of multi-centered, small-world online social media networks. Journal of Graph Algorithms and Applications, 19, 595-618. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.7155/jgaa.00370")}
#A dense, unweighted network with three embedded communities
U <- igraph::sample_sbm(60, matrix(c(.75,.25,.25,.25,.75,.25,.25,.25,.75),3,3), c(20,20,20))
plot(U) #Communities are not obvious
#Extract backbone using the built-in "Local Sparsification" model
bb <- backbone_from_unweighted(U, model = "lspar", parameter = 0.5)
plot(bb) #Communities are clearly visible
#Extract backbone using local sparification, but explicitly specifying the model steps
bb <- backbone_from_unweighted(U, model = "custom", escore = "jaccard",
normalize = "rank", filter = "degree",
umst = FALSE, parameter = 0.5)
plot(bb) #Communities are clearly visible
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.