Worked example 1

Worked example 1 illustrates the use of Diversity.R functions to perform simple Correspondence Analysis (CA) and Non Symetric CA (NSCA), as well as their constrained and/or partial relatives with respect to Instrumental Variables, CAIV and NSCAIV (Couteron et al. 2003). It is based on analyses of CFI data set, from a 12 240-ha rainforest plot called Counami Forest Inventory (CFI) in French Guiana.

1 - CFI data set

Once the library diversity has been installed and loaded:

data(CFI)
str(CFI)

#List of 4
# $ topo: Factor w/ 12 levels "10","20","21",..: 3 3 4 7 7 12 3 10 1 12 ...
# $ xy  : num [1:411, 1:2] 0 0 0 0 0 0 0 0 0.5 0.5 ...
#  ..- attr(*, "dimnames")=List of 2
#  .. ..$ : chr [1:411] "1" "2" "3" "4" ...
#  .. ..$ : chr [1:2] "X" "Y"
# $ tab : int [1:411, 1:59] 1 2 5 2 1 0 0 3 0 0 ...
#  ..- attr(*, "dimnames")=List of 2
#  .. ..$ : chr [1:411] "1" "2" "3" "4" ...
#  .. ..$ : chr [1:59] "Sp1" "Sp2" "Sp3" "Sp4" ...
# $ dbh : int [1:411, 1:14] 6 11 5 8 9 10 8 13 7 8 ...
#  ..- attr(*, "dimnames")=List of 2
#  .. ..$ : chr [1:411] "1" "2" "3" "4" ...
#  .. ..$ : chr [1:14] "C1" "C2" "C3" "C4" ...


CFI$tab is an
abundance matrix of 59 tree species in 411 plots ;
CFI$topo is a vector of 12 eco-topographical codes assigned to plots  ;
CFI$xy is a matrix of geographical co-ordinates of plots ;
CFI$dbh is a matrix of the frequency distribution of trees within plots into 14 diameter classes.


2 - Simple ordinations of the floristic table

    2.1 - CA

Fig. 3 in Couteron et al. (2003) is obtained from:

ca<-ca.richness(CFI$tab,test=F) #Select the number of axes:
3
plot(ca,2,3)

par(mfrow=c(1,2))
s.value(CFI$xy,ca$l1[,2])
s.value(CFI$xy,ca$l1[,3])


    2.2 - NSCA

Fig. 4 in Couteron et al. (2003) is obtained from:

nsca<-nsca.simpson(CFI$tab,test=F) #Select the number of axes:
3

plot(nsca)

par(mfrow=c(1,2))
s.value(CFI$xy,nsca$l1[,1])
s.value(CFI$xy,nsca$l1[,2])



3 - Constrained ordinations with respect to topography and stand structure

    3.1 - CAIV and NSCAIV with respect to topography

ca.topo<-ca.richness(CFI$tab~CFI$topo) #Select the number of axes:
2
sum(ca.topo$eig)/sum(ca$eig)
#[1] 0.0652135
summary(ca.topo)
#class:  summary.dudiv
#metric: Richness
#call: ca.richness.formula(formula = CFI$tab ~ CFI$topo)
#total diversity: 58
#explained diversity: 0.363
#ratio of explained diversity: 0.00626
#Pr(>ratio): 0.001 based on 999 replicates

nsca.topo<-nsca.simpson(CFI$tab~CFI$topo) #Select the number of axes:
2

sum(nsca.topo$eig)/sum(nsca$eig)
#[1] 0.1107594
summary(nsca.topo)
#class:  summary.dudiv
#metric: Simpson
#call: nsca.simpson.formula(formula = CFI$tab ~ CFI$topo)
#total diversity: 0.89
#explained diversity: 0.0129
#ratio of explained diversity: 0.0145
#Pr(>ratio): 0.001 based on 999 replicates


    3.2 - CAIV and NSCAIV with respect to stand structure

ca.dbh<-ca.richness(CFI$tab~CFI$dbh)  #Select the number of axes:
2

sum(ca.dbh$eig)/sum(ca$eig)
#[1] 0.04908191
summary(ca.dbh)
#class:  summary.dudiv
#metric: Richness
#call: ca.richness.formula(formula = CFI$tab ~ CFI$dbh)
#total diversity: 58
#explained diversity: 0.273
#ratio of explained diversity: 0.00471
#Pr(>ratio): 0.003 based on 999 replicates


nsca.dbh<-pcaiv(nsca,CFI$dbh,scannf=F)
#Select the number of axes:
2

sum(nsca.dbh$eig)/sum(nsca$eig)
#[1] 0.07496595
summary(nsca.topo)
#class:  summary.dudiv
#metric: Simpson
#call: nsca.simpson.formula(formula = CFI$tab ~ CFI$topo)
#total diversity: 0.89
#explained diversity: 0.0129
#ratio of explained diversity: 0.0145
#Pr(>ratio): 0.001 based on 999 replicates


    3.3 - CAIV and NSCAIV with respect to both topography and stand structure

ca.topoPdbh<-ca.richness(CFI$tab~CFI$topo+CFI$dbh) #Select the number of axes:
3

sum(ca.topoPdbh$eig)/sum(ca$eig)
#[1] 0.1083041
summary(ca.topoPdbh)
#class:  summary.dudiv
#metric: Richness
#call: ca.richness.formula(formula = CFI$tab ~ CFI$topo + CFI$dbh)
#total diversity: 58
#explained diversity: 0.603
#ratio of explained diversity: 0.0104
#Pr(>ratio): 0.001 based on 999 replicates


Fig. 6 in Couteron et al. (2003) is obtained from:

par(mfrow=c(2,2))
s.class(ca.topoPdbh$l1[,1:2],CFI$topo,cell=0)
s.corcircle(ca.topoPdbh$cor[13:26,],2,3)
scatterutil.eigen(ca.topoPdbh$eig/sum(ca.topoPdbh$eig))




nsca.topoPdbh<-nsca.simpson(CFI$tab~CFI$topo+CFI$dbh) #Select the number of axes:
2

sum(nsca.topoPdbh$eig)/sum(nsca$eig)

#[1] 0.1847913
summary(nsca.topoPdbh)
#class:  summary.dudiv
#metric: Simpson
#call: nsca.simpson.formula(formula = CFI$tab ~ CFI$topo + CFI$dbh)
#total diversity: 0.89
#explained diversity: 0.0216
#ratio of explained diversity: 0.0242
#Pr(>ratio): 0.001 based on 999 replicates

Fig. 7 in Couteron et al. (2003) is obtained from:

par(mfrow=c(2,2))
s.class(nsca.topoPdbh$l1[,1:2],CFI$topo,cell=0)
s.corcircle(nsca.topoPdbh$cor[13:26,])
scatterutil.eigen(nsca.topoPdbh$eig/sum(nsca.topoPdbh$eig))




    3.4 - Partial CAIV and NSCAIV with respect to topography once stand structure has been factored out

ca.topoSdbh<-ca.richness(CFI$tab~CFI$topo+Condition(CFI$dbh)) #Select the number of axes:
2

sum(ca.topoSdbh$eig)/sum(ca$eig)
#[1] 0.05519235
summary(ca.topoSdbh)
#class:  summary.dudiv
#metric: Richness
#call: ca.richness.formula(formula = CFI$tab ~ CFI$topo + Condition(CFI$dbh))
#total diversity: 58
#explained diversity: 0.307
#ratio of explained diversity: 0.0053
#Pr(>ratio): 0.001 based on 999 replicates

nsca.topoSdbh<-nsca.simpson(CFI$tab~CFI$topo+Condition(CFI$dbh)) #Select the number of axes:
2

sum(nsca.topoSdbh$eig)/sum(nsca$eig)

#[1] 0.1024110
summary(nsca.topoSdbh)
#class:  summary.dudiv
#metric: Simpson
#call: nsca.simpson.formula(formula = CFI$tab ~ CFI$topo + Condition(CFI$dbh))
#total diversity: 0.89
#explained diversity: 0.0119
#ratio of explained diversity: 0.0134
#Pr(>ratio): 0.001 based on 999 replicates



    3.5 - Partial CAIV and NSCAIV with respect to stand structure once topography has been factored out

ca.dbhStopo<-ca.richness(CFI$tab~CFI$dbh+Condition(CFI$topo)) #Select the number of axes:
2

sum(ca.dbhStopo$eig)/sum(ca$eig)

#[1] 0.04085322
summary(ca.dbhStopo)
#class:  summary.dudiv
#metric: Richness
#call: ca.richness.formula(formula = CFI$tab ~ CFI$dbh + Condition(CFI$topo))
#total diversity: 58
#explained diversity: 0.228
#ratio of explained diversity: 0.00392
#Pr(>ratio): 0.009 based on 999 replicates

nsca.dbhStopo<-nsca.simpson(CFI$tab~CFI$dbh+Condition(CFI$topo)) #Select the number of axes:
2

sum(nsca.dbhStopo$eig)/sum(nsca$eig)
#[1] 0.07071023

summary(nsca.dbhStopo)
#class:  summary.dudiv
#metric: Simpson
#call: nsca.simpson.formula(formula = CFI$tab ~ CFI$dbh + Condition(CFI$topo))
#total diversity: 0.89
#explained diversity: 0.00825
#ratio of explained diversity: 0.00927
#Pr(>ratio): 0.001 based on 999 replicates



    3.6 - Residual CAIV and NSCAIV once topography and stand structure have been factored out

ca.res<-ca.richness(CFI$tab~Condition(CFI$topo+CFI$dbh),test=F) #Select the number of axes:
3

sum(ca.res$eig)/sum(ca$eig)
#[1] 0.891696


nsca.res<-nsca.simpson(CFI$tab~Condition(CFI$topo+CFI$dbh),test=F) #Select the number of axes:
2

sum(nsca.res$eig)/sum(nsca$eig)
#[1] 0.8152087

Fig. 8 in Couteron et al. (2003) is obtained from:

par(mfrow=c(2,3))
scatterutil.eigen(ca.res$eig/sum(ca.res$eig))
s.value(CFI$xy,ca.res$l1[,2])
s.value(CFI$xy,ca.res$l1[,3])
scatterutil.eigen(nsca.res$eig
/sum(nsca.res$eig))
s.value(CFI$xy,nsca.res$l1[,1])
s.value(CFI$xy,nsca.res$l1[,2])




Literature cited

Couteron, P., Pélissier, R. Mapaga, D., Molino, J.-F. and Teillier, L. 2003. Drawing ecological insights from a management-oriented forest inventory in French Guiana. Forest Ecology and Management, 172:89-108.

Pélissier, R., Couteron, P., Dray, S. and Sabatier, D. 2003. Consistency between ordination techniques and diversity measurements: two strategies for species occurrence data. Ecology, 84:242-251.