Search code examples
reigeneigenvalueeigenvector

Eigenvector Order in R


I am trying to work out an issue regarding the order of eigenvectors returned by eigen in r. Consider the following:

covmatrix <- matrix(data = c(13, 5, 2, 4), nrow = 2, ncol = 2)
covmatrix
eigen <- eigen(covmatrix)
eigen

The output returns:

values
[1] 14  3

vectors
          [,1]       [,2]
[1,] 0.8944272 -0.1961161
[2,] 0.4472136  0.9805807

Per the documentation, the first column should represent the eigenvector associated with the largest eigenvalue. However, mathematically, when I calculate the eigenvectors I end up with column 2 associated with the eigenvalue 14 as 0.9805807 is 5 times 0.1961161. The math is detailed here. I'm sure I am missing something simple but can't quite work it out.


Solution

  • You are not working with the same matrix. To get consistent result with what you derive analytically, you need

    covmatrix <- matrix(data = c(13, 5, 2, 4), nrow = 2, ncol = 2, byrow = TRUE)
    
    eigen(covmatrix)
    $values
    [1] 14  3
    
    $vectors
              [,1]       [,2]
    [1,] 0.9805807 -0.4472136
    [2,] 0.1961161  0.8944272