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
)
A backbone in the same class as U
, or if backbone_only = FALSE
, then a backbone object.
An unweighted, undirected network as an adjacency matrix or Matrix, or an unweighted unipartite igraph object
string: backbone model
real: filtering parameter
string: Method for scoring edges' importance
string: Method for normalizing edge scores
string: Type of filter to apply
logical: TRUE if the backbone should include the union of maximum spanning trees, to ensure connectivity
logical: display suggested text & citations
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()
package: Neal, Z. P. (2025). backbone: An R Package to Extract Network Backbones. CRAN. tools:::Rd_expr_doi("10.32614/CRAN.package.backbone")
skeleton: Karger, D. R. (1999). Random sampling in cut, flow, and network design problems. Mathematics of Operations Research, 24, 383-413. 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). 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). 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. 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. 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. 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
Run the code above in your browser using DataLab