Consuelo,

Again, about the tolerance, using the code you told me:

pc3 <- dudi.pca(kasc2df(map)$tab, scan=FALSE)
sum(dudi.pca(pc3$tab, scale=FALSE, row.w = dataenfa1$pr/sum(dataenfa1$pr), scan=FALSE)$eig)

I got* 3.129783*, is this correct?

Yes it is. You can double check it with niche.test:

bla <- niche.test(map, lynxjura$locs[tmp, c("X", "Y")])
bla$obs
0.1450481 3.1297832

The first value is the marginality (same as in enfa1), the second one is the tolerance.

But I don't understand, shouldn't tolerance have a value ranging from 0 to 1? I thougth that was the idea, since specialization varies from 1 to infinite, right? [i.e. Reutter et al 2003***]

Not necessarily. But I guess you will find different definitions of (global) tolerance and (global) specialization according to different sources.

In any cases, I would not recommend the use of a *global* tolerance/specialization index, unless it is used to compare:

- two species in the same study area
- the same species in two periods, given that the environment does not change.

In the other hand, I have estimated the global specializations using Hirzel et al (2002) formula, like this:

S <- (sqrt(sum(enfa1$s)))/1.96
Does it seem correct?

According to Hirzel et al. (2002)'s definition, it should be divided by the number of specialization axes. It is just the mean eigenvalue of specialization, which can be seen as a way to define a global specialization. Now, as I said before, it is difficult to use it as is.

I got this value S = 0.996322 (<1 though), and then, my tolerance (1/S) was 1.003692 (>1).

It bothers me that we don't have the same values! grrr

My guess: the S = 1/T relation only hold on one dimension, but not in the N-dimensions ecological space. Could be wrong, though. Anyway, Hirzel et al. (2002)'s definition of specialization cannot not be used in this context.

What do you think?

About my other question about the scatter plot of enfa, the scores and so on... I think I haven't been able to explain myself... I have uploaded a picture http://img808.imageshack.us/i/scatter.jpg/. I hope you can see what I mean there.

Now I see. The d=1 that you have in the upper-right corner just holds for the projection of pixels (simplified with the use of MCPs). Try the following:

> scatter(enfa1, pts = TRUE)
> summary(enfa1$li)

which should help. The arrows are just proportional to their real values, in order to adequately fit in the graph.

Regards,
Mathieu.


Thanks again guys!!!

Consuelo


*** Reutter, B.A, V. Helfer, A.H. Hirzel1 & P. Vogel. 2003. Modelling habitat-suitability using museum collections: an example with three sympatric Apodemus species from the Alps. Journal of Biogeography, 30, 581–590

-------------
Consuelo Hermosilla
PhD student
Departamento de Ecología y Biología Animal
Departamento de Bioquímica, Genética e Inmunología, Área de Genética
Facultad de Ciencias del Mar
Campus de As Lagoas-Marcosende
Universidad de Vigo
36310 Vigo
SPAIN
Mobile: +34 692 633 298

oooO
(     ) Oooo
   (   (     )
  _)    )  /
        (_/

Stop Gaza Massacre


2010/6/9 Clément Calenge <clement.cale...@gmail.com <mailto:clement.cale...@gmail.com>>

    On 06/09/2010 09:05 AM, Clément Calenge wrote:



            sum(dudi.pca(kasc2df(map), row.w =
            dataenfa1$pr/sum(dataenfa1$pr),
            scan=FALSE)$eig)

            which gives you 5 only. The weights should sum to 1 (i.e.
            they are
            proportions). But then, how would you interpret this? This
            is the same
            as for the "global specialization".


        Yes, but be careful: kasc2df returns a list with one component
        "tab" (the component of interest) and one component "index" (the
        component allowing to rebuild the original kasc), so that the
        correct code is:

        sum(dudi.pca(kasc2df(map)$tab, row.w =
        dataenfa1$pr/sum(dataenfa1$pr), scan=FALSE)$eig)


    I was a bit too hasty for this reply. Actually the code is
    incorrect. Consider the following code:

    pc <- dudi.pca(kasc2df(map)$tab, row.w = dataenfa1$pr/sum(dataenfa1$pr))

    This code performs a *centered and scaled* PCA of the environmental
    variables: this analysis first centers and scales the table
    containing the value of the environmental variables. Therefore, for
    each variable of pc$tab, the mean *weighted by the utilization
    weights* is equal to zero and the variance *weighted by the
    utilization weights* is equal to 1. Therefore, the sum of the
    eigenvalues of the PCA on this transformed table is equal to the
    number of environmental variables. This code is incorrect (thanks
    Mathieu for noting the inconsistency). First, to calculate the
    global tolerance, you would need to calculate:

    pc <- dudi.pca(kasc2df(map)$tab, scan=FALSE)

    This preliminary analysis is performed just to center/scale the
    variables with uniform weighting. This allows to compare the
    different variables in pc$tab (they all have the same average and
    the same scale). *Then*, calculate the weighted and *unscaled* PCA
    of the table pc$tab:

    sum(dudi.pca(pc$tab, scale=FALSE, row.w =
    dataenfa1$pr/sum(dataenfa1$pr), scan=FALSE)$eig)

    This gives the tolerance of the species on the area,
    Sorry for the confusion,
    HTH,

    Clément Calenge

-- Clément CALENGE
    Cellule d'appui à l'analyse de données
    Office national de la chasse et de la faune sauvage
    Saint Benoist - 78610 Auffargis
    tel. (33) 01.30.46.54.14



--

~$ whoami
Mathieu Basille, Post-Doc

~$ locate
Laboratoire d'Écologie Comportementale et de Conservation de la Faune
+ Centre d'Étude de la Forêt
Département de Biologie
Université Laval, Québec

~$ info
http://ase-research.org/basille

~$ fortune
``If you can't win by reason, go for volume.''
Calvin, by Bill Watterson.

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to