Discussion:
[R-sig-phylo] aov.phylo vs phylANOVA
Jacob Berv
2018-11-15 17:30:27 UTC
Permalink
Dear R-sig-phylo,
I was wondering if anyone on here might be able to help me understand the difference between phytool’s implementation of phylogenetic ANOVA and geiger’s implementation. From the respective documentation, it seems that both approaches rely on and cite the same reference:

Garland T Jr, AW Dickerman, CM Janis, and JA Jones. 1993. Phylogenetic analysis of covariance by computer simulation. Systematic Biology 42(3):265-292.

Both seem to have a similar approach, at least as it is described in their respective documentations, and both seem to rely on character simulations to derive their p values. It seems aov.phylo uses sim.char() and phylANOVA uses fastBM() for their simulations internally.

On Liam’s blog, he indicates that these tests are the same, except that phylANOVA additionally performs post-hoc tests.
http://blog.phytools.org/2013/02/updated-phylanova.html

However, running some of my data through both of these tests is generating totally different results (aov.phylo detecting significant differences where phylANOVA does not, with p values differing by 5 orders of magnitude.

Running my same test data~group through a pgls also generates a result comparable to what I get from phylANOVA — so it seems like perhaps aov.phylo is the outlier?

Best,
Jake Berv
_______________________________________________
R-sig-phylo mailing list - R-sig-***@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/r-sig-***@r-project.org/
Theodore Garland
2018-11-15 17:39:20 UTC
Permalink
As the lead author of the paper in question, I'll be curious to find out
what you uncover.

Thanks and cheers,
Ted


Theodore Garland, Jr., Distinguished Professor

Department of Evolution, Ecology, and Organismal Biology (EEOB)

University of California, Riverside

Riverside, CA 92521

Office Phone: (951) 827-3524

Facsimile: (951) 827-4286 (not confidential)

Email: ***@ucr.edu

http://www.biology.ucr.edu/people/faculty/Garland.html

http://scholar.google.com/citations?hl=en&user=iSSbrhwAAAAJ


Director, UCR Institute for the Development of
<http://idea.ucr.edu/>Educational
Applications <http://idea.ucr.edu/>


Editor in Chief, *Physiological and Biochemical Zoology
<http://www.press.uchicago.edu/ucp/journals/journal/pbz.html>*


Fail Lab: Episode One


http://youtu.be/c0msBWyTzU0
Post by Jacob Berv
Dear R-sig-phylo,
I was wondering if anyone on here might be able to help me understand the
difference between phytool’s implementation of phylogenetic ANOVA and
geiger’s implementation. From the respective documentation, it seems that
Garland T Jr, AW Dickerman, CM Janis, and JA Jones. 1993. Phylogenetic
analysis of covariance by computer simulation. Systematic Biology
42(3):265-292.
Both seem to have a similar approach, at least as it is described in their
respective documentations, and both seem to rely on character simulations
to derive their p values. It seems aov.phylo uses sim.char() and phylANOVA
uses fastBM() for their simulations internally.
On Liam’s blog, he indicates that these tests are the same, except that
phylANOVA additionally performs post-hoc tests.
http://blog.phytools.org/2013/02/updated-phylanova.html
However, running some of my data through both of these tests is generating
totally different results (aov.phylo detecting significant differences
where phylANOVA does not, with p values differing by 5 orders of magnitude.
Running my same test data~group through a pgls also generates a result
comparable to what I get from phylANOVA — so it seems like perhaps
aov.phylo is the outlier?
Best,
Jake Berv
_______________________________________________
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/r-
[[alternative HTML version deleted]]

_______________________________________________
R-sig-phylo mailing list - R-sig-***@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/r-sig-***@r-project.org/
Liam J. Revell
2018-11-15 17:53:12 UTC
Permalink
Hi Jacob.

As far as I know, aov.phylo and phylANOVA should be doing more or less
the same thing. With random data if I run enough simulations for the
null distribution of F the P-values of the two different implementations
come out almost exactly the same. One difference that I noted is that if
you give either method data vectors without taxon names both work, but
only phylANOVA gives a warning.

Please send along the data that has generated this incongruency if you
are unable to figure it out.

All the best, Liam

Liam J. Revell
Associate Professor, University of Massachusetts Boston
Profesor Asistente, Universidad Católica de la Ssma Concepción
web: http://faculty.umb.edu/liam.revell/, http://www.phytools.org
Post by Jacob Berv
Dear R-sig-phylo,
Garland T Jr, AW Dickerman, CM Janis, and JA Jones. 1993. Phylogenetic analysis of covariance by computer simulation. Systematic Biology 42(3):265-292.
Both seem to have a similar approach, at least as it is described in their respective documentations, and both seem to rely on character simulations to derive their p values. It seems aov.phylo uses sim.char() and phylANOVA uses fastBM() for their simulations internally.
On Liam’s blog, he indicates that these tests are the same, except that phylANOVA additionally performs post-hoc tests.
http://blog.phytools.org/2013/02/updated-phylanova.html
However, running some of my data through both of these tests is generating totally different results (aov.phylo detecting significant differences where phylANOVA does not, with p values differing by 5 orders of magnitude.
Running my same test data~group through a pgls also generates a result comparable to what I get from phylANOVA — so it seems like perhaps aov.phylo is the outlier?
Best,
Jake Berv
_______________________________________________
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
_______________________________________________
R-sig-phylo mailing list - R-sig-***@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/r-sig-***@r-project.org/
Jacob Berv
2018-11-15 20:00:50 UTC
Permalink
Hi everyone —
It seems like the solution is that I was looking at the wrong p-value, as is often the case!

From Liam:
"The issue may be that you need to look at the p-value from the internal print-out of aov.phylo not from the summary."

I was using the summary() function to examine the model output from geiger. When applying this function to the phyl.aov output object, the p-values appear to be from a regular anova, not the phylogenetic anova. To access the phylogenetic anova p value, you have to look inside the object generated by phyl.aov:

attr(obj, ’summary’)

This will display the appropriate "Pr(>F) given phy"

Jake
Post by Liam J. Revell
Hi Jacob.
As far as I know, aov.phylo and phylANOVA should be doing more or less the same thing. With random data if I run enough simulations for the null distribution of F the P-values of the two different implementations come out almost exactly the same. One difference that I noted is that if you give either method data vectors without taxon names both work, but only phylANOVA gives a warning.
Please send along the data that has generated this incongruency if you are unable to figure it out.
All the best, Liam
Liam J. Revell
Associate Professor, University of Massachusetts Boston
Profesor Asistente, Universidad Católica de la Ssma Concepción
web: http://faculty.umb.edu/liam.revell/, http://www.phytools.org
Post by Jacob Berv
Dear R-sig-phylo,
Garland T Jr, AW Dickerman, CM Janis, and JA Jones. 1993. Phylogenetic analysis of covariance by computer simulation. Systematic Biology 42(3):265-292.
Both seem to have a similar approach, at least as it is described in their respective documentations, and both seem to rely on character simulations to derive their p values. It seems aov.phylo uses sim.char() and phylANOVA uses fastBM() for their simulations internally.
On Liam’s blog, he indicates that these tests are the same, except that phylANOVA additionally performs post-hoc tests.
http://blog.phytools.org/2013/02/updated-phylanova.html
However, running some of my data through both of these tests is generating totally different results (aov.phylo detecting significant differences where phylANOVA does not, with p values differing by 5 orders of magnitude.
Running my same test data~group through a pgls also generates a result comparable to what I get from phylANOVA — so it seems like perhaps aov.phylo is the outlier?
Best,
Jake Berv
_______________________________________________
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
_______________________________________________
R-sig-phylo mailing list - R-sig-***@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/r-sig-***@r-project.org/
Jacob Berv
2018-11-15 20:02:46 UTC
Permalink
Sorry— I meant aov.phylo (geiger function), not phly.aov.
J
Post by Jacob Berv
Hi everyone —
It seems like the solution is that I was looking at the wrong p-value, as is often the case!
"The issue may be that you need to look at the p-value from the internal print-out of aov.phylo not from the summary."
attr(obj, ’summary’)
This will display the appropriate "Pr(>F) given phy"
Jake
Post by Liam J. Revell
Hi Jacob.
As far as I know, aov.phylo and phylANOVA should be doing more or less the same thing. With random data if I run enough simulations for the null distribution of F the P-values of the two different implementations come out almost exactly the same. One difference that I noted is that if you give either method data vectors without taxon names both work, but only phylANOVA gives a warning.
Please send along the data that has generated this incongruency if you are unable to figure it out.
All the best, Liam
Liam J. Revell
Associate Professor, University of Massachusetts Boston
Profesor Asistente, Universidad Católica de la Ssma Concepción
web: http://faculty.umb.edu/liam.revell/, http://www.phytools.org
Post by Jacob Berv
Dear R-sig-phylo,
Garland T Jr, AW Dickerman, CM Janis, and JA Jones. 1993. Phylogenetic analysis of covariance by computer simulation. Systematic Biology 42(3):265-292.
Both seem to have a similar approach, at least as it is described in their respective documentations, and both seem to rely on character simulations to derive their p values. It seems aov.phylo uses sim.char() and phylANOVA uses fastBM() for their simulations internally.
On Liam’s blog, he indicates that these tests are the same, except that phylANOVA additionally performs post-hoc tests.
http://blog.phytools.org/2013/02/updated-phylanova.html
However, running some of my data through both of these tests is generating totally different results (aov.phylo detecting significant differences where phylANOVA does not, with p values differing by 5 orders of magnitude.
Running my same test data~group through a pgls also generates a result comparable to what I get from phylANOVA — so it seems like perhaps aov.phylo is the outlier?
Best,
Jake Berv
_______________________________________________
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
_______________________________________________
R-sig-phylo mailing list - R-sig-***@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/r-sig-***@r-project.org/
Loading...