एलील फ़्रीक्वेंसी के लिए Markov मॉडल
लेक्चर में, आपने देखा कि Markov मैट्रिक्स \(M\) का अग्रणी eigenvalue, जिसका 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 देता है जो उस स्थिति को मॉडल करता है जहाँ सभी एलील समान रूप से दर्शाए गए हैं (प्रत्येक की probability 0.25).
इस अभ्यास में, हम एक for-loop का उपयोग करके म्यूटेशन की प्रक्रिया को एक प्रारंभिक एलील वितरण से दोहराते हैं:
[1] 1 0 0 0
और दिखाते हैं कि वास्तव में यही होता है — कि for-loop के स्थान पर eigenvector सही जानकारी देता है.
Markov प्रक्रियाओं पर अधिक जानकारी के लिए यह लिंक देखें.
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में Data Science के लिए Linear Algebra
अभ्यास निर्देश
- 1000 म्यूटेशन के बाद का एलील वितरण
xप्रिंट करें. M(जो आपके लिए लोड है) के पहले eigenvector को खोजें और इस तरह स्केल करें कि उसका योग1हो. इसेv1को असाइन करें.v1, यानीMका स्केल किया हुआ पहला eigenvector प्रिंट करें, और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(___)