Moran's I and Geary'c randomization tests for spatial and phylogenetic autocorrelation
This function performs Moran's I test using phylogenetic and spatial link matrix (binary or general). It uses neighbouring weights so Moran's I and Geary's c randomization tests are equivalent.
gearymoran(bilis, X, nrepet = 999, alter=c("greater", "less", "two-sided"))
bilis |
: a n by n link matrix where n is the row number of X |
X |
: a data frame with continuous variables |
nrepet |
: number of random vectors for the randomization test |
alter |
a character string specifying the alternative hypothesis, must be one of "greater" (default), "less" or "two-sided" |
bilis
is a squared symmetric matrix which terms are all positive or null.
bilis
is firstly transformed in frequency matrix A by dividing it by the total sum of data matrix :
a_ij = bilis_ij / (sum_i sum_j bilis_ij)
The neighbouring weights is defined by the matrix D = diag(d_1,d_2, …) where d_i = sum_j bilis_ij. For each vector x of the data frame X, the test is based on the Moran statistic t(x)Ax where x is D-centred.
Returns an object of class krandtest
(randomization tests).
Sébastien Ollier sebastien.ollier@u-psud.fr
Daniel Chessel
Cliff, A. D. and Ord, J. K. (1973) Spatial autocorrelation, Pion, London.
Thioulouse, J., Chessel, D. and Champely, S. (1995) Multivariate analysis of spatial patterns: a unified approach to local and global structures. Environmental and Ecological Statistics, 2, 1–14.
moran.test
and geary.test
for classical versions of Moran's test and Geary's one
# a spatial example data(mafragh) tab0 <- (as.data.frame(scalewt(mafragh$env))) bilis0 <- neig2mat(mafragh$neig) gm0 <- gearymoran(bilis0, tab0, 999) gm0 plot(gm0, nclass = 20) ## Not run: # a phylogenetic example data(mjrochet) mjr.phy <- newick2phylog(mjrochet$tre) mjr.tab <- log(mjrochet$tab) gearymoran(mjr.phy$Amat, mjr.tab) gearymoran(mjr.phy$Wmat, mjr.tab) if(adegraphicsLoaded()) { g1 <- table.value(mjr.phy$Wmat, ppoints.cex = 0.35, nclass = 5, axis.text = list(cex = 0), plot = FALSE) g2 <- table.value(mjr.phy$Amat, ppoints.cex = 0.35, nclass = 5, axis.text = list(cex = 0), plot = FALSE) G <- cbindADEg(g1, g2, plot = TRUE) } else { par(mfrow = c(1, 2)) table.value(mjr.phy$Wmat, csi = 0.25, clabel.r = 0) table.value(mjr.phy$Amat, csi = 0.35, clabel.r = 0) par(mfrow = c(1, 1)) } ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.