【问题标题】:Partial Mantel test in R vegan package gives errorR vegan 包中的部分 Mantel 测试给出错误
【发布时间】:2018-02-09 21:11:14
【问题描述】:

我正在尝试使用 R vegan 包运行 Partial Mantel 测试。即使在非常简单的虚拟数据上,我也会在输出中收到以下错误。

我的代码:

  m1 = matrix(c(0, 1, 2,
                1, 0, 3,
                2, 3, 0),nrow = 3)
  m2 = m1 * 2
  m3 = m1 * 3
  mtest = mantel.partial(xdis = m1, ydis = m2,zdis = m3)
  print(mtest)

输出:

Partial Mantel statistic based on Pearson product-moment correlation 

Call:
mantel.partial(xdis = m1, ydis = m2, zdis = m3) 

Mantel statistic r:   NaN 
      Significance: NA 

Error in quantile.default(x$perm, c(0.9, 0.95, 0.975, 0.99)) : 
  missing values and NaN's not allowed if 'na.rm' is FALSE

【问题讨论】:

  • 在 'mantel.partial()' 中将 'na.rm' 设置为 TRUE 并不能修复错误。

标签: r matrix correlation vegan


【解决方案1】:

示例矩阵是线性相关的; m2m1 的简单线性变换,因此它们完全相关。和m3 一样。一旦你考虑了一对矩阵之间的相关性,就没有什么可以与之相关的了,因此会出现奇怪的 NaNs 和 NAs 以​​及最终的错误。

【讨论】:

  • 所有三个矩阵都是线性相关的,所有相关系数均为 1。部分相关将是 0/0 的结果,即“非数字”(NaN) 并正确报告。为什么有人要分析这样的数据?
  • @Jari Oksanen 也许是为了学习如何使用该库,这是否违反任何规则?您的评论先生没有为该线程增加任何价值。这种情况应该由库更好地处理,而不是引发运行时错误。
  • @Hani:它不会引发运行时错误,但会给出非数字的结果(这是正确的答案)。在实践中,您只能在特制的人工数据中获得这种结果,并且它们不会打扰人们分析真实数据。原则上,我们可以将NaN 转换为其他值,但我不知道该值应该是什么(相关性 0 和 P-值 1 是一种选择,但这也会使那些认为他们的数据完全相关)。
  • @Jari Oksanen “你只能在特制的人工数据中得到这种结果”这并不完全正确。在不同距离矩阵的大数据集上运行我的代码时,我首先遇到了这个错误。这个错误不断打破我的数据处理循环(在运行时),而不仅仅是抛出一条消息。
  • 哪个“第一个错误”?该帖子只有一个三个变量的示例,每个变量都有三个观察结果并且没有给出错误,而是给出了正确的结果(不是数字)。任何其他错误对你来说都是私人的,我不知道你在说什么。如果此结果破坏了“数据处理循环”,则错误必须来自在循环中未正确处理其输入的其他函数,或者来自mantel.partial() 中的其他错误。使用traceback() 查看哪个函数给出了错误以及你是如何结束的。
猜你喜欢
  • 2013-04-30
  • 2020-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-08
  • 2018-08-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多