This vignette uses an example of a \(3 \times 3\) matrix to illustrate some properties of eigenvalues and eigenvectors. We could consider this to be the variance-covariance matrix of three variables, but the main thing is that the matrix is square and symmetric, which guarantees that the eigenvalues, \(\lambda_i\) are real numbers. Covariance matrices are also positive semi-definite, meaning that their eigenvalues are non-negative, \(\lambda_i \ge 0\).
##      [,1] [,2] [,3]
## [1,]   13   -4    2
## [2,]   -4   11   -2
## [3,]    2   -2    8Get the eigenvalues and eigenvectors using eigen(); this
returns a named list, with eigenvalues named values and
eigenvectors named vectors.
## [1] 17  8  7##         [,1]    [,2]   [,3]
## [1,]  0.7454  0.6667 0.0000
## [2,] -0.5963  0.6667 0.4472
## [3,]  0.2981 -0.3333 0.8944The eigenvalues are always returned in decreasing order, and each
column of vectors corresponds to the elements in
values.
The following steps illustrate the main properties of eigenvalues and eigenvectors. We use the notation \(A = V' \Lambda V\) to express the decomposition of the matrix \(A\), where \(V\) is the matrix of eigenvectors and \(\Lambda = diag(\lambda_1, \lambda_2, \dots, \lambda_p)\) is the diagonal matrix composed of the ordered eigenvalues, \(\lambda_1 \ge \lambda_2 \ge \dots \lambda_p\).
zapsmall() is
handy for cleaning up tiny values.##           [,1]      [,2]      [,3]
## [1,] 1.000e+00 3.053e-16 5.551e-17
## [2,] 3.053e-16 1.000e+00 0.000e+00
## [3,] 5.551e-17 0.000e+00 1.000e+00##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
## [3,]    0    0    1## [1] 32## [1] 32## [1] 402## [1] 402## [1] 952## [1] 952## [1] 3## [1] 3##          [,1]    [,2]     [,3]
## [1,]  0.08824 0.02941 -0.01471
## [2,]  0.02941 0.10504  0.01891
## [3,] -0.01471 0.01891  0.13340## [1] 0.14286 0.12500 0.05882##        [,1]    [,2]    [,3]
## [1,] 0.0000  0.6667  0.7454
## [2,] 0.4472  0.6667 -0.5963
## [3,] 0.8944 -0.3333  0.2981values(mpower(A,p)) = values(A)^p, where
mpower(A,2) = A %*% A, etc.## eigen() decomposition
## $values
## [1] 289  64  49
## 
## $vectors
##         [,1]    [,2]   [,3]
## [1,]  0.7454  0.6667 0.0000
## [2,] -0.5963  0.6667 0.4472
## [3,]  0.2981 -0.3333 0.8944## [1] 4913  512  343## [1] 83521  4096  2401