等位基因頻率的馬可夫模型
在課堂中,你看到馬可夫矩陣 \(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(___)