我估计了协方差矩阵
我想取这个矩阵的倒数,R给我以下错误
A=[ 3529861.470 8785861.47 6920.344 17120.34;
8785861.470 26209861.47 17120.344 51920.34;
6920.344 17120.34 14.000 34.00;
17120.344 51920.34 34.000 104.00]
" solve.default(l)中的错误:系统在计算上是单数的: 互惠条件数= 2.14511e-22"。
然而,Matlab在不给出任何错误消息的情况下进行逆向计算。有谁知道R给我错误的原因?是否有任何其他计算逆的方法
答案 0 :(得分:5)
A <- matrix(c(3529861.470,8785861.47,6920.344,17120.34,
8785861.470,26209861.47,17120.344,51920.34,
6920.344,17120.34,14.000,34.00,
17120.344,51920.34,34.000,104.00),
nrow=4,byrow=TRUE)
solve(A) ## works on my system
## [,1] [,2] [,3] [,4]
## [1,] -1.2515442 0.7617239 535.4871 -349.3141
## [2,] 0.7617072 -0.4635922 -325.9051 212.5957
## [3,] 535.4884664 -325.9130639 -229114.3516 149458.2734
## [4,] -349.3061387 212.5955306 149454.4973 -97492.7335
eigen(A)$values
## [1] 2.921525e+07 5.245875e+05 1.440703e+00 -3.061760e-06
rcond(A) ## condition number
## [1] 7.516179e-14
如果您在反转矩阵时遇到问题,您应该能够调整tol
参数,但这当然需要您自担风险 - 您要覆盖矩阵操作可能在数字上的警告不稳定。
这是
R Under development (unstable) (2015-02-11 r67792)
Platform: i686-pc-linux-gnu (32-bit)
Running under: Ubuntu precise (12.04.5 LTS)