Seite 1 von 1
Problem mit Schleife
Verfasst: Mo Sep 18, 2017 6:19 pm
von wintwin111
Hallo,
ich brauche eure Hilfe. Ich habe einen Vektor
Nun möchte ich folgende Berechnungen mithilfe einer Schleife durchführen.
1. 0.5*a[1]+...+0.5*a[5] -> soll in Vektor b gespeichert werden als b[1]
2. 0.5*a[2]+...+0.5*a[5]+0.5*b[1] -> soll als b[2] gespeichert werden
.
.
.
5. 0.5*a[5]+...+0.5*b[4] -> soll als b[5] gespeichert werden
6. 0.5*b[1]+...+0.5*b[5] -> soll als b[6] gespeichert werden
Am Ende habe ich also einen Vektor b mit 6 Elementen. Da dies eine Vereinfachung meines echten Problems ist, wäre es gut, keine vordefinierten R-Funktionen zu benutzen (wie z.b sum). Ich bin mir ziemlich sicher, dass ich für dieses Problem eine (Doppel ?) Schleife brauche aber ich bekomme dies nicht umgesetzt.
Grüße
wintwin111
Re: Problem mit Schleife
Verfasst: Di Sep 19, 2017 9:54 pm
von bigben
wintwin111 hat geschrieben: Mo Sep 18, 2017 6:19 pmDa dies eine Vereinfachung meines echten Problems ist, wäre es gut, keine vordefinierten R-Funktionen zu benutzen (wie z.b sum).
Hi!
Meinst Du das ernst? Nicht mal so was basales wie sum? Dann schreib uns doch bitte Dein echtes Problem auf, sonst basteln wir an einer Lösung, und nachher lässt sie sich nicht übertragen oder Du kannst sie nicht übertragen oder ist unnötig kompliziert. Keiner arbeitet gern umsonst, aber einen Versuch bekommst Du, aber von mir keine Hilfe, das Ergebnis anzupassen. Tut das hier das Gewünschte?
Code: Alles auswählen
a <- 1:5
halb_a <- .5*a
b <- numeric(6)
for(i in 1:5)
{
b[i] <- Reduce(f = `+`, x = halb_a[i:5], init = 0)
}
for(i in 2:5){
b[i] <- b[i]+.5*b[i-1]
}
b[6] <- Reduce(f = `+`, b, init = 0)
LG,
Bernhard
Re: Problem mit Schleife
Verfasst: Do Sep 21, 2017 10:31 am
von wintwin111
Ok dann hier mein echtes Problem. Ich habe einen Datensatz von 2400 Daten in einer Zeitreihe. Nun möchte ich mithilfe verschiedener Zeitreihenmodelle diese Zeitreihe vorhersagen (also Datenpunkt 2401, 2402, etc.). Die Modelle wurden gefittet (mit Akaike Information Criterion, tut glaube ich nichts zur Sache) und dann habe ich zum Beispiel als bestes AR Modell ein AR (6) Modell bekommen. Die Parameter des Modells werden berechnet. Also sieht mein Modell folgendermaßen aus.
X(t+1)=intercept+a1*X(t)+a2*X(t-1)+...+a6*X(t-5)+e(t)
X(t+2)=intercept+a1*X(t+1)+a2*X(t)+...+a6*X(t-4)+e(t)
...
intercept und alle a's habe ich vorher ausgerechnet und sind somit als Konstanten für mein Problem anzusehen. Das Problem ist nun, dass die Daten bis t (also t, t-1, ... t-2399) in einem Vektor gespeichert sind. Die Schleife soll den Wert X(t+1) berechnen und ihn in einen neuen Vektor speichern. Für den Wert X(t+2) muss die Schleife nun aus dem schon bestehenden und dem neuen Vektor Werte nehmen und genau hier liegt mein Problem. Ich hoffe es ist einigermaßen verständlich. Wenn ihr Fragen habt stellt sie bitte
Grüße
Edit: e(t) kann vernachlässigt werden dass ist einfach eine Zufallszahl
Der Code gibt mir folgende Werte zurück:
Code: Alles auswählen
> b
[1] 7.50000 10.75000 11.37500 10.18750 7.59375 47.40625
aber eigentlich sollte rauskommen:
7.5 10.75 15.125 42.375 40.375
Re: Problem mit Schleife
Verfasst: Do Sep 21, 2017 5:47 pm
von EDi
Wie Sie wurden die Modelle gefittet?
Es gibt z.B. ?predict.arima oder predict.ar...
Re: Problem mit Schleife
Verfasst: Fr Sep 22, 2017 6:41 am
von wintwin111
Die Modelle wurden mit dem package forecast und auto.arima gefittet.
Edit: Ja ich weiß das es bereits eine Vielzahl von forecasting Methoden in R gibt, ich würde es aber gerne mal per "Hand" versuchen, da ich es für eine wissenschaftliche Arbeit an der Uni brauche.