Re: [R-sig-phylo] Comparing means under a phylogenetic perspective?
Rafael, a phylogenetic paired t-test should do the job. Please check this reference: Lindenfors P, Revell LJ, and Nunn CL. Sexual dimorphism in primate aerobic capacity: a phylogenetic test. J Evolution Biol 23: 1183-1194, 2010. Liam, any comments on this? Enrico Rafael Maia escribió: Hello everyone, first of all, I would like to apologize if this question is too basic. I've been trying to study comparative methods and their implementation in R for several months now, but haven't taken any formal courses on it, so maybe I'm missing something extremely obvious. I also apologize since this isn't necessarily R-related, but this seemed like a good forum to ask... My question relates to the evolution of ornamental colors. Specifically, I am interested in comparing ornamental and non-ornamental colors in birds over a range of species, in order to test if ornamental colors (trait A) are showier than non-ornamental ones (trait B). Both traits are measured in the same scale, and are in the same unit. From what I understand of independent contrasts, the independence of data points is achieved by obtaining phylogenetically independent values of the change of these traits in a node. This makes a lot of sense to me if you are asking a question of if these traits are evolving in a correlated fashion, so that you'd expect a change in one of them to be accompanied by a change in the other. However, this is not necessarily what I am interested in. I would actually like to know if the changes in these traits occur in a manner in which, even if they are changing independently, trait A is *always larger* than trait B. So, for example, trait A might remain very similar between two species (i.e. low contrast), whereas trait B changes a lot (high contrast), but trait B is still lower than trait A in both species. Thus, a correlation of contrasts does not seem to tackle my issue. In a similar manner, comparing contrasts of both traits under a t-test does not seem to do the trick either, since contrasts will reflect the variation in the variables over the phylogeny, and as I said, this does not seem to be a question of how the variations in the variables are associated... after banging my head against the wall for weeks with this issue, I'm not even sure if this question should actually be asked in a phylogenetic context - would simply comparing the ratio of trait A x trait B across these species suffice? It doesn't seem so, since common descent is expected to play a role in their evolution. However, I am not sure anymore what is the right question to address my hypothesis anymore... Any thoughts would be deeply appreciated. Many thanks in advance! Abraços, Rafael Maia --- webpage: http://gozips.uakron.edu/~rm72 A little learning is a dangerous thing; drink deep, or taste not the Pierian spring. (A. Pope) Graduate Student - Integrated Bioscience University of Akron http://gozips.uakron.edu/~shawkey/ ___ R-sig-phylo mailing list R-sig-phylo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-phylo -- *** Enrico L. Rezende Departament de Genètica i de Microbiologia Facultat de Biociències, Edifici Cn Universitat Autònoma de Barcelona 08193 Bellaterra (Barcelona) SPAIN Telephone: +34 93 581 4705 Fax: +34 93 581 2387 E-mail:enrico.reze...@uab.cat ___ R-sig-phylo mailing list R-sig-phylo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
[R-sig-phylo] Conditioning on Total Tips in Birth-Death Trees
Hello all, Are there any birth-death tree functions which condition on the total number of tips (extinct and extant) on a tree rather than the number of surviving tips? All the ones I've been able to find condition on time or on the number of extant tips. I put together the following kludge using a while() loop and the rlineage() function in ape, which returns bd trees within a given range of total number of tips, but it would be ideal to me not to have to condition on time. bdtree.paleo-function(birth,death,time,minTip=0,maxTip=Inf){ rt-rlineage(birth,death,Tmax=time) while(Ntip(rt)minTip | Ntip(rt)maxTip){rt-rlineage(birth,death,Tmax=time)} rt } Also, I'm not very familiar with the birth-death literature and I've been looking for one particular bit of information, which I thought I might ask if anyone here knew. I was wondering if it was known what the expected probability distribution of branch lengths for a fully-sampled phylogeny (includes all extinct lineages) is? I've been trying to figure out, if for a fully extinct tree with homogenous rates, whether we would expect the branch lengths of internal branches to follow an exponential distribution based on the birth parameter (and extinct terminal edges following an exponential distribution based on the death parameter) or if the branch lengths are a function of both parameters. Perhaps I'm not using the right keywords, but my literature searches haven't found the information I'm looking for. Thanks, -Dave -- David Bapst Dept of Geophysical Sciences University of Chicago 5734 S. Ellis Chicago, IL 60637 http://home.uchicago.edu/~dwbapst/ ___ R-sig-phylo mailing list R-sig-phylo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Re: [R-sig-phylo] How to detect phylogenetic signal (lambda) in one unscaled trait?
Hi Alberto, OK, I think the bigger and more general issue is how to correct for correlations with body size. this is an issue in many circumstances, both biologically and statistically, aside from any questions about how best to test for or quantify phylogenetic signal. I think that if you get it right from the biological/statistical perspective then you will also have the answer regarding what to do for phylogenetic signal. When you compute a ratio (divide by a measure of body size) in hopes of removing the effects of body size you are implicitly assuming that the trait varies directly with the measure of body size. For example, computing tail length/body length for snakes might be a good way to remove the effects of body size if snakes of all sizes, on average, have tails of the same relative length. However, many traits do not vary directly with any measure of body size. For example, resting metabolic rate generally does not vary directly with body mass. Rather, it scales on body mass (log-log plot) with a slope of about 0.6-0.8. Hence, if you compute the ratio metabolic rate/body mass it will show a negative relation with body mass, and so you have not removed the correlation with body mass. In such a case, it is generally better to do the log-log regression and compute residuals. Or, you can do what I described previously (see Blomberg et al., 2003, pages 720-721). In some cases, you might have strong a priori knowledge or particular biological needs that would lead you to trust computing a ratio for your particular purposes. For example, one might compute the ratio of forelimb length divided by hindlimb length of lizards for some purposes. In general, however, the regression approach is probably safest if you want to then analyze a trait that is no longer correlated with body size. Cheers, Ted Original message Date: Wed, 23 Mar 2011 02:13:36 +0200 From: Alberto Gallano alberto@gmail.com Subject: Re: [R-sig-phylo] How to detect phylogenetic signal (lambda) in one unscaled trait? To: Alejandro Gonzalez alejandro.gonza...@ebd.csic.es Cc: R-phylo Mailing-list r-sig-phylo@r-project.org Thanks Alejandro, yes, I see this difference. I think my question is: if the goal is to assess phylogenetic signal in a trait, after accounting for interspecific differences in body size, which of these two alternatives is preferable? They both seem to calculate lambda after correcting for body size. Is one way more correct, given the above stated goal? regards, Alberto On Wed, Mar 23, 2011 at 1:53 AM, Alejandro Gonzalez alejandro.gonza...@ebd.csic.es wrote: Hi Alberto, The results differ between the two approaches because you're actually estimating two different things. gls(logY ~ logX, correlation=corPagel(1, tree), method=ML) Will give you the estimate of lambda for the residuals of the fitted model. while: fitContinuous(tree, log(Y/X), model=lambda) will give you the lambda value of the ratio of the two traits. Cheers, Alejandro On 23, Mar 2011, at 12:47 AM, Alberto Gallano wrote: Thanks Ted and Joe, that helps a lot with my understanding. Given then that the variables should be on a log scale, as you suggest, is there any reason to chose a regression model estimate of lambda: gls(logY ~ logX, correlation=corPagel(1, tree), method=ML) where X is a body size proxy (i.e., scaling is done in the model), over a ratio approach?: fitContinuous(tree, log(Y/X), model=lambda) These seem to produce different results. Is there a preference for one other the other in a comparative methods context? Or is this just a question of whether one prefers to size 'correct' using ratios vs residuals? kind regards, Alberto On Wed, Mar 23, 2011 at 1:30 AM, Joe Felsenstein j...@gs.washington.edu wrote: Ted wrote: Following on that, various papers (I can't remember the references) have argued that imagining Brownian-like evolution of body size on a log scale seems reasonable. That is, it should be equally easy for an elephant's body size to evolve 10% as for a mouse's body size to evolve 10%, and to analyze that you want everybody on a log scale. Extending this, you would want to use log(Y/X) or log(Y/[X raised to some allometric slope]). It's just easier to put all variables onto their log scales, so you have log(X), log(Y), log(Z) and then the allometric stuff just corresponds to linear combinations there, which you already have machinery to do. The recommendation to use log scales is a very old one: I talk about it in my Theoretical Evolutionary Genetics free e-text. But is older than that. Falconer has a whole chapter on Scale in his 1960 Introduction
Re: [R-sig-phylo] Conditioning on Total Tips in Birth-Death Trees
Hi Dave- Are there any birth-death tree functions which condition on the total number of tips (extinct and extant) on a tree rather than the number of surviving tips? You can recode the birthdeath.tree function from Geiger to do this if you want. The total number of species in the tree (living plus extinct) is equal to nrow(edge)/2, where edge is the edge matrix. Find the repeat statement and replace the line: if (taxa.stop) if (sum(alive) = taxa.stop) break with the following: if (taxa.stop) if ((nrow(edge)/2) = taxa.stop) break; The new birthdeath.tree function should stop when taxa.stop lineages have been born (regardless of whether they've subsequently gone extinct). I was wondering if it was known what the expected probability distribution of branch lengths for a fully-sampled phylogeny (includes all extinct lineages) is? If you have a perfectly sampled tree, branches should be exponentially distributed with rate (lambda + mu). Events occur in the birth-death process with rate (lambda + mu), and the probability that a given event will be speciation is lambda/(lambda + mu). ~Dan I've been trying to figure out, if for a fully extinct tree with homogenous rates, whether we would expect the branch lengths of internal branches to follow an exponential distribution based on the birth parameter (and extinct terminal edges following an exponential distribution based on the death parameter) or if the branch lengths are a function of both parameters. Perhaps I'm not using the right keywords, but my literature searches haven't found the information I'm looking for. Thanks, -Dave -- David Bapst Dept of Geophysical Sciences University of Chicago 5734 S. Ellis Chicago, IL 60637 http://home.uchicago.edu/~dwbapst/ ___ R-sig-phylo mailing list R-sig-phylo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-phylo [[alternative HTML version deleted]] ___ R-sig-phylo mailing list R-sig-phylo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
[R-sig-phylo] Reminder: Deadline for full talk abstracts for Conference on Informatics for Phylogenetics, Evolution, and Biodiversity (iEvoBio)
(Apologies if you receive multiple copies.) This is a reminder that the deadline for submitting abstracts for full talks to the 2011 conference on Informatics for Phylogenetics, Evolution, and Biodiversity (iEvoBio) is Friday, March 25, 2011, which is just two days away. Please see http://bit.ly/iEvoBio2011_CfA for the full Call for Abstracts and author instructions. As another reminder, full talks are only 1 of 5 kinds of contributed content that iEvoBio will feature. The other 4 are: 1) Lightning talks (5 mins long), 2) Challenge entries, 3) Software bazaar demonstrations, and 4) Birds-of-a-Feather gatherings. The Call for Challenge entries is also open (see http://ievobio.org/ challenge.html). Tentative submission deadlines are listed on the conference website (http://ievobio.org/program.html#dates). More details about the program and guidelines for contributing content are available at http://ievobio.org. You can also find continuous updates on the conference's Twitter feed at http://twitter.com/ iEvoBio, and there is an announcement-only Google group at http://groups.google.com/group/ievobio-announce . You can use the group's RSS feed (linked from its URL), or join the group to receive announcements by email. iEvoBio is sponsored by the US National Evolutionary Synthesis Center (NESCent) in partnership with the Society for the Study of Ecolution (SSE) and the Society of Systematic Biologists (SSB). Additional support has been provided by the Encyclopedia of Life (EOL). The iEvoBio 2011 Organizing Committee: Rob Guralnick (University of Colorado at Boulder) (Co-chair) Cynthia Parr (Encyclopedia of Life) (Co-chair) Dawn Field (UK National Environmental Research Center) Mark Holder (University of Kansas) Hilmar Lapp (NESCent) Rod Page (University of Glasgow) ___ R-sig-phylo mailing list R-sig-phylo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Re: [R-sig-phylo] weirdness in confidence intervals returned by ace, pic option
Hi Nick, With method = pic, the CIs are computed using the expected variances under the model, so they depend only on the tree. I've added a paragraph in the man page to explain this. Cheers, Emmanuel Nick Matzke wrote on 22/03/2011 12:30: Hi all, This isn't crucial to my work at the moment since I am not using the PIC option of ace to do ancestral character estimation. But while trying it out I noticed a very weird result that I can't explain...basically when I run ace on my raw trait values, I get the same sized confidence interval (97.5% CI minus 2.5% confidence interval) for all of my (drastically different) traits. ___ R-sig-phylo mailing list R-sig-phylo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-phylo