Premium
SWAP ALGORITHMS IN NULL MODEL ANALYSIS
Author(s) -
Gotelli Nicholas J.,
Entsminger Gary L.
Publication year - 2003
Publication title -
ecology
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 2.144
H-Index - 294
eISSN - 1939-9170
pISSN - 0012-9658
DOI - 10.1890/0012-9658(2003)084[0532:sainma]2.0.co;2
Subject(s) - citation , library science , computer science , swap (finance) , algorithm , artificial intelligence , operations research , mathematics , economics , finance
Null model analysis is an important research tool in community ecology (Gotelli 2001). Researchers compare community data with randomized data to ask how communities would appear if they were structured only by stochastic factors (Gotelli and Graves 1996). Such tests move beyond conventional statistical analyses, and provide a benchmark for patterns that might be expected in the absence of species interactions (Nitecki and Hoffman 1987). However, the use of null models in community ecology is controversial, and has been so since the first null model analyses appeared in the literature (e.g., Williams 1947). Beginning with the exchanges between Diamond (1975) and Connor and Simberloff (1979), much of the controversy has centered on null model analysis of binary presence-absence matrices, in which each row is a species, each column is a site, and the entries indicate the presence (1) or absence (0) of a species at a site (Simberloff and Connor 1979). A standard approach has been to create null matrices in which the matrix elements are reshuffled, but the row and column totals of the original matrix are preserved (Connor and Simberloff 1979, Stone and Roberts 1990, Manly 1995, Sanderson et al. 1998). However, creating a set of random matrices with fixed row and column totals is a challenging statistical problem. One cannot simply fill an empty matrix with randomly placed Is, because eventually a point will be reached in which any further placements will violate either row or column totals. "Fill" and "swap" algorithms are the two solutions to this problem (Gotelli and Entsminger 2001). In a "fill" algorithm, an empty matrix is filled one cell at a time until row and column constraints are violated. At that point the algorithm backtracks by removing one of the previously filled