Encore sur les valeurs et vecteurs propres

Algèbre linéaire pour la science des données en R

Eric Eager

Data Scientist at Pro Football Focus

Que se passe-t-il ?

  • Si les valeurs propres $\lambda_1, \lambda_2, ..., \lambda_n$ de $A$ sont distinctes et que $\vec{v}_1, \vec{v}_2, ..., \vec{v}_n$ est un ensemble de vecteurs propres associés, alors cet ensemble forme une base de l'espace des vecteurs de dimension $n$.

  • Autrement dit, si la matrice $A$ a une base de vecteurs propres $\vec{v}_1, \vec{v}_2, ... \vec{v}_n$, avec des valeurs propres associées et distinctes $\lambda_1, \lambda_2, ... \lambda_n$, alors tout vecteur de dimension $n$ peut s'écrire comme combinaison linéaire de ces vecteurs, c.-à-d. $$\vec{x} = c_1\vec{v}_1 + c_2\vec{v}_2 + ... + c_n\vec{v}_n.$$

Algèbre linéaire pour la science des données en R

Que se passe-t-il ?

En appliquant la matrice $A$ à $\vec{x}$ et en utilisant $A\vec{v}_j = \lambda_j \vec{v}_j$, on obtient la décomposition simple suivante

$$A\vec{x} = c_1\lambda_1\vec{v}_1 + c_2\lambda_2\vec{v}_2 + ... + c_n\lambda_n\vec{v}_n.$$

Ainsi, les couples propres transforment la multiplication matricielle en combinaison linéaire de multiplications scalaires !

Algèbre linéaire pour la science des données en R

Itérer la matrice

Si l'on multiplie itérativement par la matrice $A$ :

$$A A\vec{x} = $$ $$ = A(c_1\lambda_1\vec{v}_1 + c_2\lambda_2\vec{v}_2 + ... + c_n\lambda_n\vec{v}_n)$$ $$ = c_1\lambda_1^2\vec{v}_1 + c_2\lambda_2^2\vec{v}_2 + ... + c_n\lambda_n^2\vec{v}_n,$$

ou, en général : $$A^t\vec{x} = c_1\lambda_1^t\vec{v}_1 + c_2\lambda_2^t\vec{v}_2 + ... + c_n\lambda_n^t\vec{v}_n.$$

Donc, les multiplications matricielles successives ne sont pas de simples multiplications scalaires successives (exponentiation) !

De plus, si l'une des valeurs propres est plus grande que les autres, cet écart s'accentue quand $t$ augmente.

Algèbre linéaire pour la science des données en R

Exemple : fréquences d'allèles

Algèbre linéaire pour la science des données en R
print(M)

eigen(M)
      [,1]  [,2]  [,3]  [,4]
[1,] 0.980 0.005 0.005 0.010
[2,] 0.005 0.980 0.010 0.005
[3,] 0.005 0.010 0.980 0.005
[4,] 0.010 0.005 0.005 0.980
décomposition eigen()
$`values`
[1] 1.00 0.98 0.97 0.97

$vectors
     [,1] [,2]          [,3]          [,4]
[1,] -0.5  0.5  0.000000e+00  7.071068e-01
[2,] -0.5 -0.5 -7.071068e-01  1.132427e-14
[3,] -0.5 -0.5  7.071068e-01 -2.442491e-15
[4,] -0.5  0.5 -1.382228e-14 -7.071068e-01
Algèbre linéaire pour la science des données en R
print(M)
      [,1]  [,2]  [,3]  [,4]
[1,] 0.980 0.005 0.005 0.010
[2,] 0.005 0.980 0.010 0.005
[3,] 0.005 0.010 0.980 0.005
[4,] 0.010 0.005 0.005 0.980
Lambda <- eigen(M)
v1 <- Lambda$vectors[, 1]/sum(Lambda$vectors[, 1])
print(v1)
0.25 0.25 0.25 0.25

Algèbre linéaire pour la science des données en R

Passons à la pratique !

Algèbre linéaire pour la science des données en R

Preparing Video For Download...