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
a produit un vecteur propre qui modélise une situation où les allèles sont représentés de façon é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 allélique initiale :
[1] 1 0 0 0
et nous montrons que c'est bien ce qui se passe : le vecteur propre fournit la bonne information en remplacement de la boucle for.
Pour en savoir plus sur les processus de Markov, consultez ce lien.
Cette activité fait partie du cours
Algèbre linéaire pour la science des données en R
Instructions de l’exercice
- Affichez
x, la distribution allélique après 1000 mutations. - Trouvez et mettez à l'échelle le premier vecteur propre de
M(déjà chargé pour vous) de sorte que sa somme soit1. Assignez-le àv1. - Affichez
v1, le premier vecteur propre mis à l'échelle deM, puis comparez-le àx.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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(___)