開始使用免費開始

等位基因頻率的馬可夫模型

在課堂中,你看到馬可夫矩陣 \(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

會產生一個特徵向量,對應到等位基因被平均表示的情況(每個的機率都是 0.25)。

在這個練習中,我們用 for 迴圈從初始的等位基因分佈:

[1] 1 0 0 0

開始重複突變過程,並展示結果的確如此——也就是說,用該特徵向量就能在不寫 for 迴圈的情況下得到正確的資訊。

想進一步了解馬可夫過程,請參考這個連結:link

本練習屬於課程

R 的資料科學線性代數

檢視課程

練習說明

  • 列印 x,也就是進行 1000 次突變後的等位基因分佈。
  • 尋找並縮放 M(已為你載入)的第一個特徵向量,使其總和為 1,指定給 v1
  • 列印 v1,也就是 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(___)
編輯並執行程式碼