Mantel test with skew-symmetric matrices?
Steve, My answer concerning the vegan part is so short that I top-post (my apologies for those who are sensitive about this): No, you cannot use non-symmetric matrices in mantel() functions in vegan. The functions use the standard R distance objects which are regarded as symmetric. If you supply a non-symmetric matrix, only its lower triangle will be used. Changing this would require redesign of the functions. Contributions are welcome and will be credited in the vegan manual pages to their authors. Best wishes, Jari Oksanen
On 1/10/09 20:20 PM, "Steve Arnott" <ArnottS at dnr.sc.gov> wrote:
Hello All, I'm interested in using the mantel()and mantel.partial() functions in the 'vegan' R package to examine fish morphology in several lakes with respect to distance between lakes, lake elevation (above sea level) and various habitat measures. For example, several authors have postulated that jaw length varies with habitat conditions, but jaw length, lake distance, elevation and the habitat measures co-vary. Applying a partial Mantel to control for elevation or lake distance seems like a good way of attacking the problem. Typically, Mantel tests are performed using symmetrical distance matrices based upon absolute distances. For example, a symmetrical matrix of distances between 3 lakes might look like this: 0 7 3 7 0 4 3 4 0 This makes sense with distance data (miles, km, etc), but information is lost on the direction of effect between lakes with data such as jaw length or elevation. Instead, a so-called skew-symmetric matrix can be generated, which would instead look something like this: 0 7 3 -7 0 -4 -3 4 0 I have two questions: 1) Is it wrong to use skew-symmetric matrices - i.e. should I just forget about the skew data and use absolute values to make all my matrices symmetric? The original Mantel paper (1967, Cancer Research, 2: 209-220) does talk about skew-symmetric matrices, but the published applications I've come across only seem to use symmetric matrices. 2) If it is ok to use skew-symmetric matrices, do the mantel() and mantel.partial() functions in 'vegan' (or related functions in other packages, such as 'ecodist') handle them correctly? I've found that it is possible to process skew data and generate results using these functions, but I'm uncertain from the documentation whether the results are meaningful (i.e. is the coding designed to handle such cases appropriately?) With thanks, Steve ------------------------------------------------------------------------------ Stephen A. Arnott, PhD Associate Marine Scientist Marine Resources Research Institute South Carolina Department of Natural Resources P.O. Box 12559 Charleston SC 29422-2559 Phone: (1)-843-953-9794 Fax: (1)-843-953-9820 E-mail: arnotts at dnr.sc.gov<mailto:arnotts at dnr.sc.gov> ------------------------------------------------------------------------------ [[alternative HTML version deleted]]
_______________________________________________ R-sig-ecology mailing list R-sig-ecology at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-ecology