Seite 1 von 2

Mehrere Random Walks plotten

Verfasst: Sa Apr 24, 2021 2:30 pm
von Luk12Luk12
Hallo zusammen :)
ich möchte eine Reihe von Random Walks erstellen und diese alle übereinanderplotten. Ich weiß nicht ob mein Ansatz so clever ist und obs nicht auch eine bessere Möglichkeit gibt. Bin noch nicht so lange am Programmieren dabei ;) :
ich habe mir gedacht, dass ich einfach eine Matrix erstellen kann, bei der jede Spalte einem Prozess entspricht. Den Algorithms, den ich mir dafür gebastelt habe, seht ihr unten. Ich bin mir aber noch recht unsicher. Macht das alles Sinn? Ist das so sinnvoll oder habt ihr einen besseren Ansatz?

Außerdem habe ich noch nicht gefunden, wie ich das dann plotten könnte: Ich möchte also jede spalte als einen Prozess plotten und alle übereinander legen.

Code: Alles auswählen

 R <- 15
 C <- 10
 ww     <-  matrix(rnorm(n = R*C, mean = 0, sd = 0.1), nrow = R, ncol = C)
 tr.st. <-  matrix(rnorm(n = R*C, mean = 0, sd = 0.1), nrow = R, ncol = C)
   for (t in 1:R){
    for (i in 2:C) {
         tr.st.[t,i]  <- *tr.st.[t,i-1] +ww[t,i] }}
 plot(tr.st.[,4],type="l")
Bin über jede Anregung und jeden Tipp dankbar :)

Danke und beste Grüße,
Lukas

Re: Mehrere Random Walks plotten

Verfasst: Sa Apr 24, 2021 4:18 pm
von bigben
Hallo Lukas,

kannst Du damit was anfangen:

Code: Alles auswählen

R <- 15
C <- 10

rws <- replicate(C, cumsum(rnorm(R, sd = .1)))

plot(NA, xlim = c(1, R), ylim = c(-2, 2),ylab ="")
abline(h = seq(-2, 2, .5), col = "lightgrey", lty = 3)
for(i in 1:C){
  lines(rws[,i], col = i)
}
LG,
Bernhard

Re: Mehrere Random Walks plotten

Verfasst: Sa Apr 24, 2021 5:24 pm
von Luk12Luk12
Hi Bernhard,

das hilft mir sehr, vielen Dank!! :)

Leider habe ich wohl noch ein Fehler in meiner verschachtelten For schleife...leider werden keine Random Walk prozesse erstellt :/
Kann mir da jemand weiterhelfen, ich finde meinen Fehler nicht?

Danke und Gruß,
Lukas

Re: Mehrere Random Walks plotten

Verfasst: Sa Apr 24, 2021 6:25 pm
von schubbiaschwilli
Gude!

Ich möchte mal auf folgenden Thread bzw. Beitrag verweisen: viewtopic.php?f=8&t=2675 bzw. viewtopic.php?p=13020#p13020

Dank&Gruß
schubbiaschwilli

Re: Mehrere Random Walks plotten

Verfasst: Sa Apr 24, 2021 6:39 pm
von Luk12Luk12
Hi schubbiaschwilli,

ich schaue es mir an...danke schonmal :D

Gruß,
Lukas

Re: Mehrere Random Walks plotten

Verfasst: Sa Apr 24, 2021 7:38 pm
von bigben
Ich verstehe die an mich gerichtete Antwort nicht. Du hast gefragt, ob jemand einen besseren Ansatz hat und ich habe Dir einen besseren Ansatz gezeigt, der ohne verschachtelte for-Schleifen und deshalb auch weniger Gelgenheit, sich zu verhuddeln, auskommt.

Wenn Du unbedingt Deinen Code mit verschachtelten Schleifen retten willst: Ich finde die Fehlermeldung von R klar und deutlich:

Code: Alles auswählen

> for (t in 1:R){
+     for (i in 2:C) {
+         tr.st.[t,i]  <- *tr.st.[t,i-1] +ww[t,i] }}
Fehler: Unerwartete(s) '*' in:
"    for (i in 2:C) {
        tr.st.[t,i]  <- *"
Was verstehst Du an dieser Fehlermeldung nicht?

LG,
Bernhard

Re: Mehrere Random Walks plotten

Verfasst: Sa Apr 24, 2021 7:42 pm
von Luk12Luk12
Hi Bernhard,

entschuldige, ich hatte vor dem * noch eine variable stehen. Es handelt sich um einen AR(1) Prozess, der ein random walk ist, wenn ich diese variable auf 1 habe.
Ich wollte die Variable hier draußen lassen, aber das * hatte sich mit eingeschlichen.

Entschuldige und Gruß,
Lukas

Re: Mehrere Random Walks plotten

Verfasst: Sa Apr 24, 2021 7:46 pm
von bigben
Ja, und wenn man das '*' weg lässt, dann läuft Dein Code glatt durch und in tr.st. finden sich die gwünschen Daten und wie man die plottet habe ich oben gezeigt. Was ist denn jetzt an der Frage noch offen?

LG,
Bernhard

Re: Mehrere Random Walks plotten

Verfasst: Sa Apr 24, 2021 7:52 pm
von Luk12Luk12
Hi

das Problem ist, das wenn ich mir die Prozesse angucke keine Random Walks produziert werden, sondern wohl einfach nur weißes Rauschen.

Gruß,
Lukas

Re: Mehrere Random Walks plotten

Verfasst: Sa Apr 24, 2021 8:03 pm
von bigben
Ja, das ist der Fluch der verschachtelten Schleifen: Du hast Zeilen und Spalten verwechselst und die Random walks in den Zeilen und nicht in den Spalten erstellt. Wenn Du Dir Deine Daten in tr.st. zeilenweise anschaust, dann stimmt es wieder:

Code: Alles auswählen

plot(NA, xlim = c(1, C), ylim = c(-2, 2),ylab ="")
abline(h = seq(-2, 2, .5), col = "lightgrey", lty = 3)
for(i in 1:R){
  lines(tr.st.[i,], col = i)
}
LG,
Bernhard