data(varespec)
vare.dca <- decorana(varespec)
vare.dca
summary(vare.dca)
plot(vare.dca)
### the detrending rationale:
gaussresp <- function(x,u) exp(-(x-u)^2/2)
x <- seq(0,6,length=15) ## The gradient
u <- seq(-2,8,len=23) ## The optima
pack <- outer(x,u,gaussresp)
matplot(x, pack, type="l", main="Species packing")
library(MASS) ## isoMDS, eqscplot
library(mva) ## prcomp, cmdscale (for isoMDS)
library(multiv) ## ca
opar <- par(mfrow=c(2,2))
eqscplot(prcomp(pack)$x, type="b", main="PCA")
eqscplot(ca(pack)$rproj, type="b", main="CA")
eqscplot(decorana(pack)$rproj, type="b", main="DCA")
eqscplot(isoMDS(vegdist(pack), maxit=200)$points, type="b", main="NMDS")
### Let's add some noise:
noisy <- (0.5 + runif(length(pack)))*pack
par(mfrow=c(2,1))
matplot(x, pack, type="l", main="Ideal model")
matplot(x, noisy, type="l", main="Noisy model")
par(mfrow=c(2,2))
eqscplot(prcomp(noisy)$x, type="b", main="PCA")
eqscplot(ca(noisy)$rproj, type="b", main="CA")
eqscplot(decorana(noisy)$rproj, type="b", main="DCA")
eqscplot(isoMDS(vegdist(noisy), maxit=200)$points, type="b", main="NMDS")
par(opar)
Run the code above in your browser using DataLab