Eigenvalues and Eigenvectors
An eigenvector of a matrix is a direction that the matrix merely stretches or shrinks without rotating; the eigenvalue is the stretch factor. These special directions govern the stability of disease models (via the Jacobian) and the axes of variation in PCA, making them one of the most useful tools in applied statistics.
Definition
A nonzero vector is an eigenvector of a square matrix with eigenvalue if
Applying to points along the same line — orientation is unchanged (or flipped if ), and the length scales by .
Characteristic equation
Rearranging, . A nonzero exists only when is singular, giving the characteristic equation:
For a matrix this is a quadratic in , so there are (up to) two eigenvalues; they may be real or complex conjugates.
Worked example (by hand)
Let
Form and take its determinant:
So and .
Eigenvector for : solve :
Eigenvector for : solve :
Check: .
Stability of dynamical systems
For a system of ODEs, linearize near an equilibrium using the Jacobian matrix evaluated at that point. The eigenvalues of determine local stability:
- If every eigenvalue has negative real part, the equilibrium is locally stable (perturbations decay).
- If any eigenvalue has positive real part, it is unstable (perturbations grow).
- Complex eigenvalues indicate oscillatory approach or departure.
In epidemiology, evaluating at the disease-free equilibrium and checking the eigenvalues is equivalent to the threshold condition on the basic reproduction number: the disease-free state is stable when and unstable (an outbreak grows) when . The dominant eigenvalue crossing zero corresponds to crossing .
PCA connection
In principal component analysis, the eigenvectors of the sample covariance matrix are the principal component directions, and each eigenvalue is the variance captured along that direction. The largest eigenvalue points along the axis of greatest spread in the data — the covariance matrix is symmetric, so its eigenvalues are real and its eigenvectors orthogonal.
Computing it
R
A <- matrix(c(2, 1, 1, 2), nrow = 2, byrow = TRUE)
e <- eigen(A)
e$values # 3 1
$e$vectors # columns are eigenvectors (normalized to unit length)
$```
### Python
```python
import numpy as np
A = np.array([[2.0, 1.0], [1.0, 2.0]])
vals, vecs = np.linalg.eig(A)
vals # array([3., 1.])
vecs # columns are unit eigenvectors
# For symmetric matrices, np.linalg.eigh is more accurate.
Julia
using LinearAlgebra
A = [2.0 1.0; 1.0 2.0]
eigvals(A) # [1.0, 3.0] (ascending order)
F = eigen(A)
F.values # [1.0, 3.0]
F.vectors # columns are unit eigenvectors
Why it matters for statistics
Eigen-decomposition underpins PCA, factor analysis, and the diagnosis of multicollinearity (a near-zero eigenvalue of flags an ill-conditioned design). In dynamical epidemiological models, eigenvalues of the Jacobian give a precise, computable stability criterion that mirrors the threshold — turning intuition about outbreaks into linear algebra.