| fixedcol {backbone} | R Documentation |
fixedcol extracts the backbone of a bipartite projection using the Fixed Column Model.
fixedcol( B, method = "RefinedNormal", alpha = 0.05, signed = FALSE, mtc = "none", class = "original", narrative = FALSE )
B |
An unweighted bipartite graph, as: (1) an incidence matrix in the form of a matrix or sparse |
method |
string: Specifies the method of the Poisson Binomial distribution computation used by the "ppbinom" function in PoissonBinomial-Distribution. "RefinedNormal" gives quick, very accurate approximations, while "DivideFFT" gives the quickest exact computations. |
alpha |
real: significance level of hypothesis test(s) |
signed |
boolean: TRUE for a signed backbone, FALSE for a binary backbone (see details) |
mtc |
string: type of Multiple Test Correction to be applied; can be any method allowed by |
class |
string: the class of the returned backbone graph, one of c("original", "matrix", "sparseMatrix", "igraph", "network", "edgelist").
If "original", the backbone graph returned is of the same class as |
narrative |
boolean: TRUE if suggested text & citations should be displayed. |
This fixedcol function compares an edge's observed weight in the projection B*t(B) to the
distribution of weights expected in a projection obtained from a random bipartite graph where
the column vertex degrees are fixed but the row vertex degrees are allowed to vary.
When signed = FALSE, a one-tailed test (is the weight stronger) is performed for each edge with a non-zero weight. It
yields a backbone that perserves edges whose weights are significantly stronger than expected under the null
model. When signed = TRUE, a two-tailed test (is the weight stronger or weaker) is performed for each every pair of nodes.
It yields a backbone that contains positive edges for edges whose weights are significantly stronger, and
negative edges for edges whose weights are significantly weaker, than expected in the chosen null model.
NOTE: Before v2.0.0, all significance tests were two-tailed and zero-weight edges were evaluated.
If alpha != NULL: Binary or signed backbone graph of class class.
If alpha == NULL: An S3 backbone object containing three matrices (the weighted graph, edges' upper-tail p-values,
edges' lower-tail p-values), and a string indicating the null model used to compute p-values, from which a backbone
can subsequently be extracted using backbone.extract(). The signed, mtc, class, and narrative parameters
are ignored.
Neal, Z. P., Domagalski, R., and Sagan, B. (2021). Comparing Alternatives to the Fixed Degree Sequence Model for Extracting the Backbone of Bipartite Projections. Scientific Reports, 11, 23929. doi: 10.1038/s41598-021-03238-3
#A binary bipartite network of 30 agents & 75 artifacts; agents form three communities
B <- rbind(cbind(matrix(rbinom(250,1,.8),10),
matrix(rbinom(250,1,.2),10),
matrix(rbinom(250,1,.2),10)),
cbind(matrix(rbinom(250,1,.2),10),
matrix(rbinom(250,1,.8),10),
matrix(rbinom(250,1,.2),10)),
cbind(matrix(rbinom(250,1,.2),10),
matrix(rbinom(250,1,.2),10),
matrix(rbinom(250,1,.8),10)))
P <- B%*%t(B) #An ordinary weighted projection...
plot(igraph::graph_from_adjacency_matrix(P, mode = "undirected",
weighted = TRUE, diag = FALSE)) #...is a dense hairball
bb <- fixedcol(B, alpha = 0.05, narrative = TRUE, class = "igraph") #A fixedcol backbone...
plot(bb) #...is sparse with clear communities