शुरू करेंमुफ़्त में शुरू करें

एलील फ़्रीक्वेंसी के लिए 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(___)
कोड संपादित करें और चलाएँ