ComeçarComece de graça

Modelos de Markov para Frequências de Alelos

Na aula, você viu que o maior autovalor da matriz de Markov \(M\), cujo resultado em R é:

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

produziu um autovetor que modela uma situação em que os alelos são representados de forma igual (cada um com probabilidade de 0,25).

Neste exercício, usamos um laço for para iterar o processo de mutação a partir de uma distribuição inicial de alelos:

[1] 1 0 0 0

e mostrar que é exatamente isso que acontece — que o autovetor traz a informação correta em vez do laço for.

Para saber mais sobre Processos de Markov, veja este link.

Este exercício faz parte do curso

Álgebra Linear para Data Science em R

Ver curso

Instruções do exercício

  • Imprima x, a distribuição de alelos após 1000 mutações.
  • Encontre e escale o primeiro autovetor de M (que já está carregada para você) para que sua soma seja 1. Atribua a v1.
  • Imprima v1, o primeiro autovetor de M escalado, e compare com x.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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 e executar o código