대립유전자 빈도를 위한 마르코프 모형
강의에서 보셨듯이, 마르코프 행렬 $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(___)