Choosing a Method#
With 65 functions available, selecting the right backbone method depends on the properties of your network and the goals of your analysis.
Decision guide#
- Is your graph bipartite?
Use
sdsm()(analytical) orfdsm()(Monte Carlo) to score edges in a bipartite projection and then filter by p-value. Fixed null-model variants are also available viafixedfill(),fixedrow(), andfixedcol(). Projection weighting can be selected withprojection="simple"|"hyper"|"probs"|"ycn".- Is your graph unweighted?
Use the
unweightedmodule:sparsify()(generic framework),lspar()(local sparsification), orlocal_degree()(degree-based), then applyboolean_filter()with"sparsify_keep".- Is your graph weighted?
Choose based on your analysis goals:
Statistical significance: Use methods from
statisticalto test whether edge weights are significant under a null model. These produce p-values that can be filtered at a chosen significance level.Topological structure: Use methods from
structuralto extract edges that are important for the network’s topology (shortest paths, spanning trees, planarity).Neighborhood similarity: Use methods from
proximityto score edges based on how similar the neighborhoods of their endpoints are.Combined approach: Use
glab_filter()fromhybridto combine betweenness and degree information.
Method comparison table#
Method |
Weighted |
Directed |
Output Type |
Connectivity |
Approach |
|---|---|---|---|---|---|
Yes |
Yes |
p-value |
No guarantee |
Statistical |
|
Yes |
Yes |
z-score |
No guarantee |
Statistical |
|
Yes |
Yes |
p-value |
No guarantee |
Statistical |
|
Yes |
Yes |
p-value |
No guarantee |
Statistical |
|
Yes |
Yes |
p-value |
No guarantee |
Statistical |
|
Yes |
Yes |
Scored graph |
No guarantee |
Statistical |
|
Yes |
Yes |
Scored graph |
No guarantee |
Structural |
|
Yes |
Yes |
Scored graph |
No guarantee |
Structural |
|
Yes |
Yes |
Scored graph |
No guarantee |
Structural |
|
Yes |
Yes |
Scored graph |
No guarantee |
Structural |
|
Yes |
Yes |
Scored graph |
No guarantee |
Structural |
|
No |
Yes |
Scored graph |
No guarantee |
Structural |
|
Yes |
No |
Score |
No guarantee |
Structural |
|
Yes |
No |
Scored graph |
Depends on filter |
Structural |
|
Yes |
No |
Scored graph |
Depends on filter |
Structural |
|
Yes |
No |
Score |
No guarantee |
Structural |
|
Yes |
No |
Scored graph |
No guarantee |
Structural |
|
Yes |
No |
Node score |
No guarantee |
Structural |
|
Yes |
No |
Scored graph |
Depends on filter |
Structural |
|
Yes |
No |
Scored graph |
Depends on filter |
Structural |
|
Yes |
No |
p-value |
No guarantee |
Hybrid |
|
Proximity methods (12) |
No |
Yes |
Score |
No guarantee |
Proximity |
Optional |
No |
Scored graph |
No guarantee |
Bipartite |
|
Optional |
No |
Scored graph |
No guarantee |
Bipartite |
|
No |
No |
Scored graph |
Optional (UMST) |
Unweighted |
|
No |
No |
Scored graph |
No guarantee |
Unweighted |
|
No |
No |
Scored graph |
No guarantee |
Unweighted |
Choosing a statistical method#
All six statistical methods test edge significance, but they differ in their null models:
disparity_filter(): Assumes each node’s total strength is uniformly distributed across its edges. Works well for heterogeneous networks with broad degree distributions.noise_corrected_filter(): Uses a binomial framework to model edge weights as outcomes of random processes. Produces z-scores rather than p-values.marginal_likelihood_filter(): Considers both endpoints of each edge in a binomial null model. Treats weights as integer counts.ecm_filter(): Uses a maximum-entropy null model that preserves both degree and strength sequences. Most computationally expensive but most principled.lans_filter(): Nonparametric method using empirical CDFs. Makes no distributional assumptions but relies on sufficient data at each node.multiple_linkage_analysis(): Local linkage significance method that returns scored edges plusmla_keepflags.