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
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 sume1. Asígnalo av1. - Imprime
v1, el primer eigenvector deMya escalado, y compáralo conx.
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(___)