LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Gib x aus, die Allelverteilung nach den 1000 Mutationen.
  • Ermittle und skaliere den ersten Eigenvektor von M (ist bereits geladen), sodass seine Summe 1 ergibt. Weise ihn v1 zu.
  • Gib v1 aus, den skalierten ersten Eigenvektor von M, und vergleiche ihn mit x.

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(___)
Code bearbeiten und ausführen