Markow-Modelle für Allelfrequenzen
In der Lektion hast du gesehen, dass der führende Eigenwert der Markow-Matrix \(M\), deren R-Ausgabe lautet:
[,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
einen Eigenvektor ergibt, der eine Situation modelliert, in der die Allele gleich vertreten sind (jeweils mit der Wahrscheinlichkeit 0,25).
In dieser Übung verwenden wir eine for-Schleife, um den Mutationsprozess ausgehend von einer anfänglichen Allelverteilung von:
[1] 1 0 0 0
zu iterieren und zu zeigen, dass genau das passiert – nämlich dass der Eigenvektor die richtigen Informationen anstelle der for-Schleife liefert.
Mehr zu Markow-Prozessen findest du unter diesem Link.
Diese Übung ist Teil des Kurses
Lineare Algebra für Data Science in R
Anleitung zur Übung
- Gib
xaus, die Allelverteilung nach den 1000 Mutationen. - Ermittle und skaliere den ersten Eigenvektor von
M(ist bereits geladen), sodass seine Summe1ergibt. Weise ihnv1zu. - Gib
v1aus, den skalierten ersten Eigenvektor vonM, und vergleiche ihn mitx.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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(___)