contagion {SpatEntropy} | R Documentation |
Li and Reynolds' relative contagion index.
Description
This function computes Li and Reynold's contagion index, following Li and Reynolds (1993),
starting from a data matrix. References can be found at SpatEntropy
.
Usage
contagion(
data,
win = spatstat.geom::owin(xrange = c(0, ncol(data)), yrange = c(0, nrow(data))),
plotout = T
)
Arguments
data |
A data matrix or vector, can be numeric, factor, character, ... |
win |
Optional, an object of class |
plotout |
Logical. Default to |
Details
This index is based on the transformed variable identifying couples of realizations
of the variable of interest. A distance of interest is fixed: the contagion index is
originally thought for areas sharing a border, as O'Neill's entropy. Then, all contiguous couples
of realizations of the variable of interest are counted
and their relative frequencies are used to compute the index, which is
where
is the relative version of O'Neill's entropy, i.e. O'Neill's entropy divided by its maximum
,
being the number of categories of the variable under study. The relative contagion index ranges
from 0 (no contagion, maximum entropy) to 1 (maximum contagion).
The function is able to work with grids containing missing data, specified as NA values.
All NAs are ignored in the computation and only couples of non-NA observations are considered.
Value
a list of two elements:
-
contagion
Li and Reynold's relative contagion index -
probabilities
a table with absolute frequencies and estimated probabilities (relative frequencies) for all couple categories
Moreover, a plot of the dataset is produced.
Examples
#numeric data, square grid
data=matrix(sample(1:5, 100, replace=TRUE), nrow=10)
contagion(data)
#plot data
plot(as.im(data, W=square(nrow(data))),
col=grDevices::gray(seq(1,0,length.out=length(unique(c(data))))),
main="", ribbon=TRUE)
#character data, rectangular grid
data=matrix(sample(c("a","b","c"), 300, replace=TRUE), nrow=30)
contagion(data)
#plot data
plot(as.im(data, W=owin(xrange=c(0,ncol(data)), yrange=c(0,nrow(data)))),
col=terrain.colors(length(unique(c(data)))),
main="", ribbon=TRUE)