vazquez.example {bipartite} | R Documentation |
Describes how to use bipartite to calculate the statistics presented in Vazquez et al. (2009). Some of these functions are available in bipartite or other packages, and this help page will show how to use them in line with the publication.
The functions used are:
r2dtable
, swap.web
and shuffle.web
for quantitative alternatives.sortweb
sortweb
In the example below, we use the bipartite/standard R functions whenever possible.
Carsten F. Dormann <carsten.dormann@ufz.de> based on code and ideas of Diego Vazquez, Natacha P. Chacoff and Luciano Cagnolo
Vazquez, P.D., Chacoff, N.,P. and Cagnolo, L. (2009) Evaluating multiple determinants of the structure of plant-animal mutualistic networks. Ecologyin press.
See also networklevel
.
data(Safariland) # confint: N100 <- sapply(swap.web(100, Safariland), networklevel, index="nestedness") quantile(unlist(N100), c(0.025, 0.975)) # intasymm: extract values for the asymmetry of interactions and the dependency matrix # for pollinators: specieslevel(Safariland)$"higher trophic level"$"interaction push/pull" specieslevel(Safariland)$"higher trophic level"$"dependence" # for plants: specieslevel(Safariland)$"lower trophic level"$"interaction push/pull" specieslevel(Safariland)$"lower trophic level"$"dependence" #intereven networklevel(Safariland, index="interaction evenness", intereven="sum")[2] # or, as we recommend (see help on networklevel): networklevel(Safariland, index="interaction evenness", intereven="prod")[2] # mgen: binweb <- Safariland>0 #throw away the information on the number of visits # make a matrix with probabilities for each link, based on column and row totals: pweb <- outer(rowSums(binweb)/sum(binweb), colSums(binweb)/sum(binweb), FUN="*") # make a new, emtpy matrix: rbinweb <- matrix(0, nrow=nrow(binweb), ncol=ncol(binweb)) # put the links into random places, with probability as given by the observed data: rbinweb[sample(1:prod(dim(binweb)), size=sum(binweb), prob=pweb)] <- 1 # this is the new, random realisation given the observed marginal link sums: rbinweb # for this null-web any of the networklevel indices can be calculated # mlik: #calculates the log-likelihood of observing a network, given a probability matrix of the same size (pweb): dmultinom(Safariland>0, prob=pweb, log=TRUE) #AIC (the number of parameters is given by how many constraints are put onto the null model; here, we constrain 9 rows and 27 columns, i.e. sum(dim(binweb))): -2*dmultinom(Safariland>0, prob=pweb, log=TRUE) + 2*(sum(dim(binweb))) # netstats: networklevel(Safariland, index=c("connectance", "interaction evenness", "nestedness", "ISA")) mean(specieslevel(Safariland)$"higher trophic level"$"interaction push/pull") mean(specieslevel(Safariland)$"lower trophic level"$"interaction push/pull") #plotmat: visweb(t(unname(Safariland)), circles=TRUE, boxes=FALSE) #sortmatr/sortmatrext: sortweb(Safariland, sort.order="inc") #rares species first plotweb(sortweb(Safariland, sort.order="dec"), method="normal") plotweb(sortweb(web=Safariland, sort.order="seq", sequence=list(seq.higher=sample(colnames(Safariland)), seq.lower=sample(rownames(Safariland)))), method="normal")