View source: R/backbone_from_weighted.R
| backbone_from_weighted | R Documentation |
backbone_from_weighted() extracts the unweighted backbone from a weighted network
backbone_from_weighted(
W,
model = "disparity",
alpha = 0.05,
signed = FALSE,
mtc = "none",
parameter = 0,
missing_as_zero = FALSE,
narrative = FALSE,
backbone_only = TRUE
)
W |
A weighted network as a valued adjacency matrix or Matrix, or a weighted unipartite igraph object |
model |
string: backbone model, one of: |
alpha |
real: significance level of hypothesis test(s) in statistical models |
signed |
logical: return a signed backbone from a statistical model |
mtc |
string: type of Multiple Test Correction, either |
parameter |
real: parameter used to control structural backbone models |
missing_as_zero |
logical: treat missing edges as edges with zero weight and consider them for inclusion/exclusion in backbone |
narrative |
logical: display suggested text & citations |
backbone_only |
logical: return just the backbone (default), or a detailed backbone object |
The backbone_from_weighted function extracts the backbone from a weighted unipartite network. The backbone is an unweighted
unipartite network that contains only edges whose weights are statistically significant (based on alpha for statistical models),
or which exhibit certain structural properties (based on parameter for structural models). For statistical models, when
signed = FALSE, the backbone contains edges that are statistically significantly strong under a one-tailed test. When
signed = TRUE, the backbone contains positive edges that are statistically significantly strong, and negative edges that are
statistically significantly weak, under a two-tailed test.
The model parameter controls the model used to evaluate the edge weights. The available models include:
Statistical Models (controlled by alpha, signed, and mtc)
disparity (default) - The disparity filter (Serrano et al., 2009)
lans - Locally adaptive network sparsification (Foti et al., 2011)
mlf - Marginal likelihood filter (Dianati, 2016)
Structural Models (controlled by parameter)
global - parameter is a numeric vector of length 1 or 2. If length(parameter)==1, then edges with weights
above parameter are preserved. If length(parameter)==2, then edges with weights above max(parameter) are
preserved as positive, and edges with weights above min(parameter) are preserved as negative.
The models implemented in backbone_from_weighted() can be applied to a weighted network that was obtained by projecting a
bipartite network or hypergraph. However, if the original bipartite network or hypergraph is available, it is better to use backbone_from_projection().
A backbone in the same class as W, 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")}
disparity: Serrano, M. A., Boguna, M., & Vespignani, A. (2009). Extracting the multiscale backbone of complex weighted networks. Proceedings of the National Academy of Sciences, 106, 6483-6488. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1073/pnas.0808904106")}
lans: Foti, N. J., Hughes, J. M., & Rockmore, D. N. (2011). Nonparametric sparsification of complex multiscale networks. PLOS One, 6, e16431. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1371/journal.pone.0016431")}
mlf: Dianati, N. (2016). Unwinding the hairball graph: Pruning algorithms for weighted complex networks. Physical Review E, 93, 012304. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1103/PhysRevE.93.012304")}
#A weighted network with heterogeneous (i.e. multiscale) weights
W <- matrix(c(0,10,10,10,10,75,0,0,0,0,
10,0,1,1,1,0,0,0,0,0,
10,1,0,1,1,0,0,0,0,0,
10,1,1,0,1,0,0,0,0,0,
10,1,1,1,0,0,0,0,0,0,
75,0,0,0,0,0,100,100,100,100,
0,0,0,0,0,100,0,10,10,10,
0,0,0,0,0,100,10,0,10,10,
0,0,0,0,0,100,10,10,0,10,
0,0,0,0,0,100,10,10,10,0),10)
W <- igraph::graph_from_adjacency_matrix(W, mode = "undirected", weighted = TRUE)
plot(W, edge.width = sqrt(igraph::E(W)$weight)) #A stronger clique & a weaker clique
mean_weight <- mean(igraph::E(W)$weight) #Find average edge weight
bb <- backbone_from_weighted(W, model = "global", #A backbone with stronger-than-average edges...
parameter = mean_weight)
plot(bb) #...ignores the weaker clique
bb <- backbone_from_weighted(W, model = "disparity") #A disparity filter backbone...
plot(bb) #...preserves edges at multiple scales
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.