在R中求逆矩阵

时间:2018-11-23 18:08:10

标签: r covariance variance covariance-matrix

我有一个方差协方差矩阵S:

> S
     [,1] [,2]
[1,]    4   -3
[2,]   -3    9

我试图找到它的逆。

我的代码是:

>invS <- (1/((S[1,1]*S[2,2])-(S[1,2]*S[2,1])))*S
           [,1]       [,2]
[1,]  0.1481481 -0.1111111
[2,] -0.1111111  0.3333333

但是,如果我使用 solve(),我会得到:

>invSalt <- solve(S)
          [,1]      [,2]
[1,] 0.3333333 0.1111111
[2,] 0.1111111 0.1481481

为什么invS不正确?我应该改变些什么来纠正它?

2 个答案:

答案 0 :(得分:3)

您在分母中正确找到了行列式,但是其余的都是错误的。

enter image description here

非对角线元素应带有相反的符号,而对角线元素应进行切换。比较这两个矩阵时,这两件事都清晰可见。

这不是手工做的最方便的事情,因此solve确实更好。如果您坚持手动操作,则可以使用

matrix(rev(S), 2, 2) / (prod(diag(S)) - S[1, 2] * S[2, 1]) * (2 * diag(1, 2) - 1)
#           [,1]      [,2]
# [1,] 0.3333333 0.1111111
# [2,] 0.1111111 0.1481481

答案 1 :(得分:3)

正确的公式是

.env.production