Model Markov untuk Frekuensi Alel
Dalam kuliah, Anda melihat bahwa eigenvalue utama dari matriks Markov \(M\), yang keluaran R-nya adalah:
[,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
memunculkan sebuah eigenvector yang memodelkan keadaan di mana alel terwakili secara setara (masing-masing dengan probabilitas 0,25).
Dalam latihan ini, kita menggunakan for-loop untuk mengiterasi proses mutasi dari distribusi alel awal:
[1] 1 0 0 0
dan menunjukkan bahwa inilah yang sebenarnya terjadi — bahwa eigenvector memberikan informasi yang tepat sebagai pengganti for-loop.
Untuk informasi lebih lanjut tentang Proses Markov, lihat tautan ini.
Latihan ini adalah bagian dari kursus
Aljabar Linear untuk Data Science di R
Petunjuk latihan
- Cetak
x, distribusi alel setelah 1000 mutasi. - Temukan dan skala eigenvector pertama dari
M(yang sudah dimuat untuk Anda) sehingga jumlahnya1. Tetapkan kev1. - Cetak
v1, eigenvector pertamaMyang telah diskalakan, lalu bandingkan denganx.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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(___)