[R] envfit output (vegan package) - not sure what it means

Jari Oksanen jari.oksanen at oulu.fi
Thu May 10 15:44:06 CEST 2012


cernst <crystal.ernst <at> mail.mcgill.ca> writes:

> 
> I'm pretty new to R and would appreciate some help interpreting the output of
> a function that was recommended to me.
> 
> I've used the *envfit *function in the vegan package to plot vectors of four
> climate variables onto a species matrix ordination.  The output indicates
> that only a single variable (mean_temp) is significant:
> 
> ***VECTORS
> 
>                         NMDS1          NMDS2        r2           Pr(>r)   
> precip            0.41539         -0.90964      0.2948    0.112887   
> wind              -0.61937          0.78510      0.0441     0.763237   
> temp_mean  0.50571        -0.86270      0.5839     0.004995 **
> pressure        -0.66891        0.74334      0.0688     0.622378   
> ---
> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
> P values based on 1000 permutations.
> 
> I understand that the length of the plotted arrows is proportional to the
> strength of the correlation between the variable and the ordination, but I'm
> not sure how to interpret the direction of the arrows. I know that it is
> "the direction of the gradient", but *I don't really understand what
> gradient that is referring to*.  So I'm not sure how to interpret what I'm
> seeing in the plot, other than the significance of the relationship.
> 
Crystal, 

The arrows are labelled: the arrow with label temp_mean refers to the 
gradient of temp_mean. The arrow points to the direction to which the
linear change in temp_mean is the fastest.

To see what this means, you can add the corresponding linear trend surface,
or its isoclines to the graphs. These isoclines are regularly spaced
lines that are perpendicular to the arrow. So this is a linear trend
surface, and the arrow points the gradient down the plane.

I don't have your data, so I so how to do that in one of the vegan
data sets. Just change here your data sets, ordination results and
variable ('temp_mean' instead of 'A1' below):

require(vegan)
data(dune)
data(dune.env)
ord <- rda(dune)
plot(ord, dis="sites")
ef <- envfit(ord ~  A1, data=dune.env)
plot(ef)
ordisurf(ord ~ A1, data = dune.env, add = TRUE, knots = 1)

HTH, Jari Oksanen

PS. The density of vegan users is higher in r-sig-ecology than here: 
consider posting there for a more secured answer.



More information about the R-help mailing list