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) or fdsm() (Monte Carlo) to score edges in a bipartite projection and then filter by p-value. Fixed null-model variants are also available via fixedfill(), fixedrow(), and fixedcol(). Projection weighting can be selected with projection="simple"|"hyper"|"probs"|"ycn".

Is your graph unweighted?

Use the unweighted module: sparsify() (generic framework), lspar() (local sparsification), or local_degree() (degree-based), then apply boolean_filter() with "sparsify_keep".

Is your graph weighted?

Choose based on your analysis goals:

  • Statistical significance: Use methods from statistical to 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 structural to extract edges that are important for the network’s topology (shortest paths, spanning trees, planarity).

  • Neighborhood similarity: Use methods from proximity to score edges based on how similar the neighborhoods of their endpoints are.

  • Combined approach: Use glab_filter() from hybrid to combine betweenness and degree information.

Method comparison table#

Method

Weighted

Directed

Output Type

Connectivity

Approach

disparity_filter()

Yes

Yes

p-value

No guarantee

Statistical

noise_corrected_filter()

Yes

Yes

z-score

No guarantee

Statistical

marginal_likelihood_filter()

Yes

Yes

p-value

No guarantee

Statistical

ecm_filter()

Yes

Yes

p-value

No guarantee

Statistical

lans_filter()

Yes

Yes

p-value

No guarantee

Statistical

multiple_linkage_analysis()

Yes

Yes

Scored graph

No guarantee

Statistical

global_threshold_filter()

Yes

Yes

Scored graph

No guarantee

Structural

strongest_n_ties()

Yes

Yes

Scored graph

No guarantee

Structural

global_sparsification()

Yes

Yes

Scored graph

No guarantee

Structural

primary_linkage_analysis()

Yes

Yes

Scored graph

No guarantee

Structural

edge_betweenness_filter()

Yes

Yes

Scored graph

No guarantee

Structural

node_degree_filter()

No

Yes

Scored graph

No guarantee

Structural

high_salience_skeleton()

Yes

No

Score

No guarantee

Structural

metric_backbone()

Yes

No

Scored graph

Depends on filter

Structural

ultrametric_backbone()

Yes

No

Scored graph

Depends on filter

Structural

doubly_stochastic_filter()

Yes

No

Score

No guarantee

Structural

h_backbone()

Yes

No

Scored graph

No guarantee

Structural

modularity_backbone()

Yes

No

Node score

No guarantee

Structural

planar_maximally_filtered_graph()

Yes

No

Scored graph

Depends on filter

Structural

maximum_spanning_tree_backbone()

Yes

No

Scored graph

Depends on filter

Structural

glab_filter()

Yes

No

p-value

No guarantee

Hybrid

Proximity methods (12)

No

Yes

Score

No guarantee

Proximity

sdsm()

Optional

No

Scored graph

No guarantee

Bipartite

fdsm()

Optional

No

Scored graph

No guarantee

Bipartite

sparsify()

No

No

Scored graph

Optional (UMST)

Unweighted

lspar()

No

No

Scored graph

No guarantee

Unweighted

local_degree()

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 plus mla_keep flags.