เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Markov Model สำหรับความถี่ของ Allele

ในบทเรียน เราได้เห็นว่า leading eigenvalue ของ Markov matrix \(M\) ซึ่งมีผลลัพธ์ใน 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

ให้ eigenvector ที่แสดงถึงสถานการณ์ที่ allele แต่ละตัวมีสัดส่วนเท่ากัน (โดยแต่ละตัวมีความน่าจะเป็น 0.25)

ในแบบฝึกหัดนี้ เราจะใช้ for-loop เพื่อวนซ้ำกระบวนการกลายพันธุ์ โดยเริ่มจากการกระจายตัวของ allele เริ่มต้นดังนี้:

[1] 1 0 0 0

แล้วแสดงให้เห็นว่าสิ่งที่เกิดขึ้นตรงกับที่คาดไว้ กล่าวคือ eigenvector ให้ข้อมูลที่ถูกต้องโดยไม่จำเป็นต้องใช้ for-loop

อ่านเพิ่มเติมเกี่ยวกับ Markov Process ได้ที่ ลิงก์นี้

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

พีชคณิตเชิงเส้นสำหรับ Data Science ใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • พิมพ์ x ซึ่งเป็นการกระจายตัวของ allele หลังจากการกลายพันธุ์ 1,000 ครั้ง
  • หาและปรับสเกล eigenvector ตัวแรกของ M (ซึ่งโหลดไว้ให้แล้ว) ให้ผลรวมเท่ากับ 1 แล้วกำหนดให้กับ v1
  • พิมพ์ v1 ซึ่งเป็น eigenvector ตัวแรกที่ปรับสเกลแล้วของ M และเปรียบเทียบกับ 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(___)
แก้ไขและรันโค้ด