commsimulator(x, method, thin=1)make.commsim or a
commsim function."swap" and "tswap" (ignored with non-sequential
methods)commsimulator is replaced with
make.commsim which defines the Null models, and
functions nullmodel and
simulate.nullmodel that check the input data and
generate the Null model communities. Function commsimulator
was used to generate a single Null model for presence/absence
(binary) data. Below is a copy of its original documentation in
oecosimu, where it is now replaced with
make.commsim, nullmodel and
simulate.nullmodel. Approximately the same
documentation for these models is found in
make.commsim. (However, the random number sequences
for model r0 differ, and you must use method = "r0_old"
in make.commsim to reproduce the commsimulator
results.) Function commsimulator implements binary (presence/absence)
null models for community composition.
The implemented models are r00 which maintains the
number of presences but fills these anywhere so that neither species
(column) nor site (row) totals are preserved. Methods r0,
r1 and r2 maintain the site (row) frequencies. Method r0
fills presences anywhere on the row with no respect to species (column)
frequencies, r1 uses column marginal
frequencies as probabilities, and r2 uses squared column
sums. Methods r1 and r2 try to simulate original species
frequencies, but they are not strictly constrained. All these methods
are reviewed by Wright et al. (1998). Method c0 maintains
species frequencies, but does not honour site (row) frequencies (Jonsson
2001).
The other methods maintain both row and column frequencies.
Methods swap and tswap implement sequential methods,
where the matrix is changed only little in one step, but the changed
matrix is used as an input if the next step.
Methods swap and tswap inspect random 2x2 submatrices
and if they are checkerboard units, the order of columns is
swapped. This changes the matrix structure, but does not influence
marginal sums (Gotelli & Entsminger
2003). Method swap inspects submatrices so long that a swap
can be done. Miklós & Podani (2004) suggest that this may lead into
biased sequences, since some columns or rows may be more easily
swapped, and they suggest trying a fixed number of times and
doing zero to many swaps at one step. This method is implemented by
method tswap or trial swap. Function commsimulator makes
only one trial swap in time (which probably does nothing),
but oecosimu estimates how many
submatrices are expected before finding a swappable checkerboard,
and uses that ratio to thin the results, so that on average one swap
will be found per step of tswap. However, the checkerboard
frequency probably changes during swaps, but this is not taken into
account in estimating the thin. One swap still changes the
matrix only little, and it may be useful to
thin the results so that the statistic is only evaluated after
burnin steps (and thinned).
Methods quasiswap and backtracking are not sequential,
but each call produces a matrix that is independent of previous
matrices, and has the same marginal totals as the original data. The
recommended method is quasiswap which is much faster because
it is implemented in C. Method backtracking is provided for
comparison, but it is so slow that it may be dropped from future
releases of vegan (or also implemented in C).
Method quasiswap (Miklós & Podani 2004)
implements a method where matrix is first filled
honouring row and column totals, but with integers that may be larger than
one. Then the method inspects random 2x2 matrices and performs a
quasiswap on them. Quasiswap is similar to ordinary swap, but it also
can reduce numbers above one to ones maintaining marginal
totals.
Method backtracking
implements a filling method with constraints both for row and column
frequencies (Gotelli & Entsminger 2001). The matrix is first filled
randomly using row and column frequencies as probabilities. Typically
row and column sums are reached before all incidences are filled in.
After that begins backtracking, where some of the
points are removed, and then filling is started again, and this
backtracking is done so may times that all incidences will be filled
into matrix. The quasiswap method is not sequential, but it produces
a random incidence matrix with given marginal totals.
Gotelli, N.J. & Entsminger, N.J. (2003). Swap algorithms in null model analysis. Ecology 84, 532--535.
Jonsson, B.G. (2001) A null model for randomization tests of nestedness in species assemblages. Oecologia 127, 309--313.
Miklós, I. & Podani, J. (2004). Randomization of presence-absence matrices: comments and new algorithms. Ecology 85, 86--92.
Wright, D.H., Patterson, B.D., Mikkelson, G.M., Cutler, A. & Atmar, W. (1998). A comparative analysis of nested subset patterns of species composition. Oecologia 113, 1--20.
Deprecated