微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

主坐标分析 (PCoA) 中的复特征值

如何解决主坐标分析 (PCoA) 中的复特征值

我正在分享一个与主坐标分析 (PCoA) 中的复杂特征值相关的问题。非常感谢任何帮助!

目标:在系统发育距离矩阵上执行 PCoA -> 在回归模型中包含排序轴以解释植物物种(n = 1013 种)之间的系统发育相关性。

输入数据:系统发育距离矩阵,通过对有根和时间校准的系统发育应用 cophenetic() 函数获得。结果是一个 1013 x 1013 的矩阵,主对角线为 0。输入矩阵是对称的(根据 isSymmetric())并且不包含复数(根据 any(is.complex())。也没有NA。请参阅以下部分物种的子集:

    structure(c(0,55.7063710000001,105.333883,237.6822,237.682199,261.495339,105.333886,237.682203,237.682202,261.495342,237.682201,261.49534,66.171369,261.495341,0),.Dim = c(6L,6L),.Dimnames = list(c("Cyrtomium_falcatum","Cyrtomium_fortunei","Nephrolepis_cordifolia","Pteris_cretica","Pteris_vittata","Azolla_filiculoides"),c("Cyrtomium_falcatum","Azolla_filiculoides")))

最小可重现示例:我创建了一个重现错误消息的距离矩阵子集。它是txt格式,你可以用read.table("you_path/distance.matrix.subset.txt",header = T,row.names = 1,sep = " ")在R中加载。下载它 here (GoogleDrive)。

问题错误消息表明在执行 PCoA 时产生了复杂的特征值(如果我正确理解错误)。我将 ape::pcoa()认设置一起使用(ape 5.4.1 版)。

Error in min(D.eig$values) : invalid 'type' (complex) of argument

对此错误消息 elsehwere 进行了一些讨论,但我还没有找到解决方案。

有趣的是,如果我使用 stats::cmdscale()stats 版本 3.6.3)执行 PCoA,我没有收到任何错误消息。此外,我最近对较小的一组物种 (n = 79) 执行了相同的程序,并且在使用 ape::pcoa() 时没有收到错误消息。

非常感谢您提供的任何帮助和/或见解!我是 Stack Overflow 的新手,所以请告诉我如何让问题更容易理解,或者是否需要其他信息。

干杯!

解决方法

我想我已经解决了这个问题——这是一个名为 center() 的内部函数深处的一个舍入错误,它使对称矩阵变为非对称矩阵——并提交了一个 Github 问题。

https://github.com/emmanuelparadis/ape/issues/17

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。