R中矩阵求逆的三种方法都给出了不同的结果

问题描述

我有一个 316x316 的矩阵 (https://www.dropbox.com/s/7qjo025p2ea59dg/data.rda?dl=0)。

当我使用 solve 反转它时,出现错误

> ans1 <- solve(data)
Error in solve.default(data) : 
  system is computationally singular: reciprocal condition number = 3.73244e-17

当我使用 chol2inv 反转它时,我得到一个矩阵,其中每个值都是 1.492617e+12

> ans2 <- chol2inv(chol(data))
> head(ans2[1:3,1:3])
             [,1]         [,2]         [,3]
[1,] 1.492617e+12 1.492617e+12 1.492617e+12
[2,] 1.492617e+12 1.492617e+12 1.492617e+12
[3,] 1.492617e+12 1.492617e+12 1.492617e+12

当我使用 ginv 反转它时,我得到了一个仍然不同的结果:

> library(MASS)
> ans3 <- ginv(data)
> head(ans3[1:3,1:3])
            [,1]        [,2]       [,] 11.16048596  0.02262223 -0.5915676
[2,]  0.02262223 12.07619895  0.4329126
[3,] -0.59156765  0.43291261 23.1798179

是否有人想过导致这些差异的原因和/或在这种情况下应该如何处理?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)