MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Cetak x, distribusi alel setelah 1000 mutasi.
  • Temukan dan skala eigenvector pertama dari M (yang sudah dimuat untuk Anda) sehingga jumlahnya 1. Tetapkan ke v1.
  • Cetak v1, eigenvector pertama M yang telah diskalakan, lalu bandingkan dengan x.

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(___)
Edit dan Jalankan Kode