Skip to content

Vegan-Adonis-NMDS-SIMPER

15 messages · Gian Maria Niccolò Benucci, Liz Pryde, Brandon Gerig +4 more

#
Further to the Warton paper, he and colleagues developed an R package that I've used in place of SIMPER called ' mvabund'. This runs multivariate GLMs and gives effects sizes and adjusted significance values of species that can be used to determine those having the greatest effect.

I haven't looked at it recently but when I used the package they had it working for count and binary data. It's very simple to use and there are excellent references for both the methods and theory. David even uploaded possibly the most entertaining stats video about it on you tube which explains reasons for the approach very clearly.

Good luck,
Liz

Liz Pryde
1 day later
#
You mean `betadisper()`? This simply computes a multivariate
dispersion about the kth group centroid for k groups. If you can
express the "levels within main effects" as a factor variable defining
the groups then `betadisper()` could work with that, but I'm not quite
following what you want to do.

`adonis()` will test whether the groups means (defined by the
combinations of the levels of the covariate factors) differ.
`betadisper()` can test if there are different "variances" for the
same groups. If there are different variances, one might question the
results from `adonis()` if it indicated that the observed group means
was inconsistent with the hypothesis of equal group means. This
inconsistency may be due solely or in part to the heterogeneity of
dispersions (variances).

Is that what you want to test/investigate?

G
On 26 March 2014 09:57, Brandon Gerig <bgerig at nd.edu> wrote:

  
    
#
Brandon,

Are you asking if you can use betadisper as a substitute for post-anova
pairwise comparisons among levels? After using betadisper to obtain
dispersions, I believe you can plot the centroids for each level. In
addition to telling you if the dispersions differ among levels, you could
see how the centroids differ from one another. Is this what you want to
know? If so, realize that it won't give you pairwise significance tests
for differences between levels. For that, you might want to do additional
permanovas on reduced datasets containing only the two levels you want to
compare. You could then adjust the p-values for multiple tests after the
fact.

Hope this helps,

Steve


J. Stephen Brewer 
Professor 
Department of Biology
PO Box 1848
 University of Mississippi
University, Mississippi 38677-1848
 Brewer web page - http://home.olemiss.edu/~jbrewer/
FAX - 662-915-5144
Phone - 662-915-1077
On 3/26/14 10:57 AM, "Brandon Gerig" <bgerig at nd.edu> wrote:

            
#
Hi,

For that I believe you can run TukeyHSD.betadisper... to getting significant values between levels. see ?TukeyHSD.betadisper

Cheers,
On Mar 27, 2014, at 1:47 PM, Brandon Gerig wrote:

            
#
Note that `betadisper()` only considers statistically dispersions
about the group centroids. It might show the centroids and return
their values, but it doesn't consider differences in those centroids.
As far is `betadisper()` is concerned, the group centroids could all
be made exactly equal and it wouldn't change the results as it is only
the spread about the centroid that is used.

HTH

G
On 27 March 2014 06:47, Brandon Gerig <bgerig at nd.edu> wrote:

  
    
#
No, that will just consider the dispersions *about the centroids* not
location shifts of the centroids. The latter is what `adonis()` does,
but we don't have pairwise comparisons (with/without permutation test)
there or the Tukey post-hoc tests. I suppose we *could* automate the
process that Steve suggests, just as I automated it for
`betadisper()`, and I think this has been raised before, but it hasn't
risen to the top of anyone's TODO list yet to actually see it
implemented. Patches welcome :-) !

G
On 27 March 2014 06:55, Johannes Bj?rk <bjork.johannes at gmail.com> wrote:

  
    
#
Patches welcome. It is best to use vegan in GitHub.

Pairwise tests are not high on my TODO list, because they are so much against what I've learnt from statistical theory and I detest tests.

Cheers, Jari Oksanen


Sent from my iPad
#
Gavin and Brandon,

Yes, I am aware that betadisper() does not actually give you a test of
differences between centroids, but the fact that it does calculate
centroids is quite valuable for interpretation, in my opinion, especially
when using non-euclidean distance matrices (e.g., Bray-Curtis) and also if
you would prefer NOT to do additional pairwise tests between levels, but
still would like to have some idea as to which pairwise differences
between levels might be most responsible for the effect. When using
bray-curtis distances, you can't get centroids by calculating averages of
abundances among the observations of interest. If you just want to use a
NMDS ordination with levels symbol-coded to make them distinct, that's
fine. Sometimes folks calculate the average axis score per group or level
of group and plot that. That's fine, too. The nice thing about obtaining
centroids calculated using betadisper() is that they are based on a
principal coordinates analysis that uses ALL the axes, not just the first
two or three axes in the ordination. It is likely that if the first two or
three axes of the NMDS explain most of the important variation, the
average scores per level for those three axes will probably tell the same
information as the centroids will.

Even though it wasn't intended for this purpose, Sharon Graham and I,
together, figured out that you could use the centroids calculated by
betadisper() to analyze split-plot and repeated-measures designs using
adonis. So, its value extends beyond what it was intended for.


Steve
 
J. Stephen Brewer 
Professor 
Department of Biology
PO Box 1848
 University of Mississippi
University, Mississippi 38677-1848
 Brewer web page - http://home.olemiss.edu/~jbrewer/
FAX - 662-915-5144
Phone - 662-915-1077
On 3/27/14 10:47 AM, "Gavin Simpson" <ucfagls at gmail.com> wrote:

            
#
Hi Steve,

I agree with your points here; I simply wanted to avoid the impression
that `betadisper()` did anything with the centroids. It did seem like
the OP and some others had got this impression.

I also agree that the PCoA way of computing the centroids is a useful
tool not just for `betadisper()`; there is no reason that this be
restricted to running a `betadisper()` just to get that information.
I'll see about removing this functionality from being embedded only
`betadisper()` and abstract it out to a user-visible function that
`betadisper()` can use internally.

G
On 27 March 2014 12:28, Steve Brewer <jbrewer at olemiss.edu> wrote: