Skip to content

enfa-gnesfa details (adehabitat)

2 messages · Consuelo Hermosilla, Clément Calenge

#
No, they are not implemented, but they are easy to implement. Imagine 
that pc is the object containing the PCA of the table of the values of 
environmental variables (columns) in each pixel (rows), and that wei is 
the vector describing the utilization weight of each pixel. Then you can 
perform the test (e.g. for the FANTER) in this way:

## observed first eigenvalue:
obs <- gnesfa(pc, Focus=wei, scan=FALSE)$eig[1]
## randomized datasets:
sim <- sapply(1:500, function(i) {
     weir <- sample(wei)
     gnesfa(pc, Focus=weir, scan=FALSE)$eig[1]
})
## The randomization test
ran <- as.randtest(sim, obs)
ran
plot(ran)

Note that this tests relies on the hypothesis of independence between 
the pixels (e.g. no "contagion" of the utilization weights between 
neighbour pixels, so no social attraction, etc.)
No, it is not available, but it is similar to the renfa function. To 
perform it, use the same code as above, but replace "Focus=weir" by 
"Reference=weir"
No they are not equivalent. Have a look at Knick and Dyer for a more 
detailed description (1997, Distribution of black-tailed jackrabbit 
habitat use areas in changing landscapes using the Mahalanobis distance 
statistic, Journal of Wildlife Management, 61: 75-85). They are not 
implemented in adehabitat. They are easy to obtain. If "ma" is your 
object containing the results of the MADIFA, you can draw such a graph by:

## for the approximate Mahalanobis distances
x <- seq(0,1,length=100)
plot(quantile(sort(ma$mahasu), x), x, ty="l", xlab="Mahalanobis 
distances", ylab="Quantiles")

And similarly for other approaches.
The inertia ratio for each factorial axis is simply the corresponding 
eigenvalue. The inertia ratio for the first axis is the first 
eigenvalue, etc.
The "global specialization" does not exist. The specialization 
corresponds to the ratio
variance of available weights/variance of utilization weights
measured on a variable (or a direction of the ecological space). 
Therefore, it is an
unidimensional measure, and cannot be measured globally over the 
ecological space.
The tolerance is just the sum of the variances of utilization weights 
over all the variables.
If "tab" is the dataframe containing the values of environmental 
variables (columns) in each pixel (rows), and that wei is as above the 
vector describing the utilization weight of each pixel, you can 
calculate the tolerance with:

sum(dudi.pca(tab, row.w=wei, scan=FALSE)$eig)

HTH,

Cl?ment Calenge