CommencezCommencez gratuitement

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

Voir le cours

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 soit 1. Assignez-le à v1.
  • Affichez v1, le premier vecteur propre mis à l'échelle de M, 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(___)
Modifier et exécuter le code