sim8: Sim8 Co-occurrence Randomization Algorithm

Description Usage Arguments Details Value Note References Examples


Randomizes a binary matrix speciesData by reshuffling all elements. Columns are proportional to column sums, and rows are proportional to row sums. Makes a call to the vector_sample function.





binary presence-absence matrix (rows = species, columns = sites).


This algorithm assumes that the probability that a species occurs in a site is depends on the joint independent probability of randomly selecting the species and randomly selecting the site, with these probabilities set proportional to row and column sums of the matrix.


Returns a binary presence-absence matrix with the same dimensions and fill as the input matrix.


This algorithm is theoretically attractive because it incorporates heterogeneity in species occurrences and species richness per site in a probabilistic way that does not fix row and column frquencies. However, in spite of its appeal, sim8 does not generate average row and column sums that match the original matrix, and it is susceptible to Type I errors when tested with random matrices. It is not recommended for co-occurrence analysis. See Ulrich and Gotelli (2012) for a more complicated algorithm for probabilistic row and column totals that has better statistical behavior.


Gotelli, N.J. 2000. Null model analysis of species co-occurrence patterns. Ecology 81: 2606-2621.

Ulrich, W. and N.J. Gotelli. 2012. A null model algorithm for presence- absence matrices based on proportional resampling. Ecological Modelling 244:20-27.


randomMatrix <- sim8(speciesData = matrix(rbinom(40,1,0.5),nrow=8))

Search within the EcoSimR package
Search all R packages, documentation and source code

Questions? Problems? Suggestions? or email at

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.