-------- Original Message --------
Subject: Re: Analyzing ontogenetic trajectory angles
Date: Wed, 20 Jul 2011 13:48:46 -0400
From: Dennis E. Slice <[email protected]>
To: [email protected]
I'll just comment on a few technical points I haven't see addressed in
the replies. See below...
On 7/19/11 1:28 PM, morphmet wrote:
-------- Original Message --------
Subject: Analyzing ontogenetic trajectory angles
Date: Mon, 18 Jul 2011 14:46:19 -0400
From: David Katz <[email protected]>
To: [email protected]
Hello,
I have read several morphometrics papers which test for significant
differences in ontogenetic trajectory between two groups (species,
subspecies, etc) by calculating the "angle" between their growth
trajectories. However, parts of (or even lots of) the method remain
unclear to me.
First, it seems that calculation of the angle requires calculation of
two simple regression lines, one for each group, with the angle being
the arc subtended by the two lines. One axis for these regression
plots/calculations is the distribution of specimens along a PC which is
significantly correlated with size or age (usually the first PC). But
it is not clear to me what the second axis is. Log centroid size?
You don't need to explicitly specify two axes with which to work. A
multivariate regression of a bunch of variables on, say, age or size
will give you coefficients for each variable. These form a vector
pointing in some direction in multivariate space. Do the same for
another group, and you have another direction. There is an angle formed
by any two directional vectors in a space and the cosine of this angle
can be computed using the dot product of the vectors.
Second, the significance of the angle is tested by randomly permuting
specimens between the two groups 1000 or more times, then calculating a
new angle for each permutation. Significance is then tested against the
distribution of permutation-generated angles. But what is the
permutation procedure? Do we only permute a single specimen each time?
If you are looking for differences between groups, what you permute is
group membership. If your data are organized such that the first m are
group A and the next n are group B, then you simply randomize the order
of the data vector and keep taking the first m as group A and the next n
as group B. You can also create a group membership vector and shuffle
that. Or in other cases, you might want to resample within groups to
assess the variability of the result (whatever it is) for that group.
Third, if I'm understanding the method correctly, then absent an
additional scaling step, the two lines from which the angle is
calculated are not likely to be of the same length. How is this
accounted for, if at all?
Angles are invariant to size. The dot product operation I mentioned
above includes a standardization for size. For vectors a and b, the
formula is:
cos(theta) = (a dot b)/sqrt((a dot a)(b dot b))
or directly
theta = arccos((a dot b)/sqrt((a dot a)(b dot b)))
The sqrt((a dot a)(b dot b)) part is the size standardization. The dot
product for two vectors is sum_i (a_i times b_i) for the elements of a
and b.
Any help, or a reference to a good, explicit journal or book
explanation, would be very much appreciated.
Most multivariate texts have sufficient chapters or appendices on matrix
algebra and vector geometry for this. Manly, B. F. J. "Randomization,
Bootstrap and Monte Carlo Methods in Biology" provides an accessible
discussion.
-ds
Thanks.
David Katz
Doctoral Candidate
Department of Anthropology--Evolutionary Wing
University of California, Davis
Young Hall 204
/--Trying to focus on one distraction at a time/--
--
Dennis E. Slice
Associate Professor
Dept. of Scientific Computing
Florida State University
Dirac Science Library
Tallahassee, FL 32306-4120
-
Guest Professor
Department of Anthropology
University of Vienna
-
Software worth having/learning/using...
Linux (Operating System: Ubuntu, CentOS, openSUSE, etc.)
OpenOffice (Office Suite: http://www.openoffice.org/)
R package (Stats/Graphics environment: http://www.r-project.org/)
Eclipse (Java/C++/etc IDE: http://www.eclipse.org/)
Netbeans (Java/C++/etc IDE: http://netbeans.org/)
Zotero (FireFox bibliographic extension: http://www.zotero.org/)
========================================================