시작하기무료로 시작하기

대립유전자 빈도를 위한 마르코프 모형

강의에서 보셨듯이, 마르코프 행렬 $M$의 주도 고유값(leading eigenvalue)은 다음과 같은 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

대립유전자가 균등하게 표현되는 상황(각각의 확률이 0.25)을 모델링하는 고유벡터를 만들어 냈습니다.

이 연습 문제에서는 for-루프를 사용해 다음 초기 대립유전자 분포에서 돌연변이 과정을 반복합니다:

[1] 1 0 0 0

그리고 실제로 그러한 현상이 일어남을 보입니다 — 즉, for-루프 대신 고유벡터가 올바른 정보를 제공한다는 것을 확인합니다.

마르코프 과정에 대한 더 자세한 내용은 이 링크를 참고하세요.

이 연습은 강의의 일부입니다

R로 배우는 데이터 과학을 위한 선형대수

강의 보기

연습 안내

  • 1000번의 돌연변이 후 대립유전자 분포인 x를 출력하세요.
  • M(이미 로드되어 있음)의 첫 번째 고유벡터를 찾아 합이 1이 되도록 스케일링하세요. v1에 할당하세요.
  • 스케일링한 첫 번째 고유벡터 v1을 출력하고 x와 비교하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# 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(___)
코드 편집 및 실행