ComenzarEmpieza gratis

Modelos de Markov para frecuencias alélicas

En la lección viste que el autovalor principal de la matriz de Markov \(M\), cuyo resultado en R es:

      [,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

produce un eigenvector que modela una situación en la que los alelos están representados por igual (cada uno con probabilidad 0,25).

En este ejercicio, usamos un bucle for para iterar el proceso de mutación desde una distribución inicial de alelos de:

[1] 1 0 0 0

y mostramos que eso es precisamente lo que ocurre: que el eigenvector aporta la información correcta en lugar del bucle for.

Para más información sobre los procesos de Markov, consulta este enlace.

Este ejercicio forma parte del curso

Álgebra lineal para data science en R

Ver curso

Instrucciones del ejercicio

  • Imprime x, la distribución de alelos tras 1000 mutaciones.
  • Obtén y escala el primer eigenvector de M (que ya está cargada para ti) para que sume 1. Asígnalo a v1.
  • Imprime v1, el primer eigenvector de M ya escalado, y compáralo con x.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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(___)
Editar y ejecutar código