Modèles de Markov pour les fréquences alléliques
Dans le cours, vous avez vu que la valeur propre dominante de la matrice de Markov \(M\), dont la sortie R est :
[,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
produit un vecteur propre qui modélise une situation où les allèles sont représentés de manière égale (chacun avec une probabilité de 0,25).
Dans cet exercice, nous utilisons une boucle for pour itérer le processus de mutation à partir d’une distribution initiale d’allèles :
[1] 1 0 0 0
et montrer que c’est bien ce qui se passe : le vecteur propre fournit la bonne information à la place de la boucle for.
Pour en savoir plus sur les processus de Markov, consultez ce lien.
Cet exercice fait partie du cours
Algèbre linéaire pour la data science en R
Instructions
- Affichez
x, la distribution des allèles après 1000 mutations. - Trouvez et mettez à l’échelle le premier vecteur propre de
M(déjà chargé pour vous) afin que sa somme vaille1. Assignez-le àv1. - Affichez
v1, le premier vecteur propre mis à l’échelle deM, et comparez-le àx.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# This code iterates mutation 1000 times
x <- c(1, 0, 0, 0)
for (j in 1:1000) {x <- M%*%x}
# Print x
print(___)
# Print and scale the first eigenvector of M
Lambda <- eigen(M)
v1 <- Lambda$vectors[, ___]/sum(Lambda$___[, 1])
# Print v1
print(___)