impulse response function mit vars package

Methoden der Zeitreihenanalyse

Moderator: schubbiaschwilli

Antworten
Lobbi

impulse response function mit vars package

Beitrag von Lobbi »

Hi Leute,
ich bin neu hier und brauche Hilfe zu R. Zuerst würde ich gerne die Daten plotten. Die Abbildungen zeigen mir aber nicht das Datum an das im Datensatz enthalten ist. Kann ich Monat und Jahr aus Date irgendwie auf der X-Achse anzeigen?

Code: Alles auswählen

library(vars)
library(pastecs)
library(tseries)

Date<-DatenR[,1]
DatenUSA<-DatenR[,-1]
summary(DatenUSA)

plot(DatenUSA$short, type="l",ylab="short",xlab="time")
plot(DatenUSA$long, type="l",ylab="long",xlab="time")
plot(DatenUSA$Liq, type="l",ylab="Liq",xlab="time")
plot(DatenUSA$ERP, type="l",ylab="ERP",xlab="time")
plot(DatenUSA$Z, type="l",ylab="Z",xlab="time")
plot(DatenUSA$SENT, type="l",ylab="Sentiment",xlab="time")
plot(DatenUSA$DPR, type="l",ylab="DPR",xlab="time")
Aus diesen Zeitreihen möchte ich nun eine IRF analyse anstellen. Ich benutze hierfür das vars Paket mit folgenden Code:

Code: Alles auswählen

# list of class varest
varest.USA<-VAR(VAR_analsis_DataUSA, lag.max = 24, ic = "SC", type = "both")
varest.USA
summary(varest.USA)

#Run irf analysis
irf.USAg<-irf(varest.USA, response = "g", n.ahead = 48, boot = TRUE, ci=0.95)
plot(irf.USAg)
Das Problem hierbei ist dass ich oft den Fehler erhalte, dass (response = "g", n.ahead = 48, boot = TRUE, ci=0.95) nicht benutzt werden und folglich erhalte ich kein Ergebnis für irf(). Mit anderen Worten meldet R das der zweite Teil der Klammer nach varest.USA "unused arguments" sind.
Was bedeutet das und wieso meldet R diesen Fehler?

Komisch ist vor allem, dass ich manchmal den Fehler erhalte und manchmal wenn ich das Skript neu laufen lasse erhalte funktioniert es.

Gibt es vielleicht eine Alternative zu vars um eine IRF zu machen?

Wenn mir jemand von euch helfen könnte wäre das super.

Gruß,
Lobbi
Dateianhänge
DatenR.csv
(12.36 KiB) 144-mal heruntergeladen
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: impulse response function mit vars package

Beitrag von jogo »

Hallo Lobbi,

willkommen im Forum! In Deinem Datensatz konnte ich nicht die Spalten DatenR$short, DatenR$long u.a. finden. Deshalb erstmal soweit:

Code: Alles auswählen

library(vars)
library(pastecs)
library(tseries)
DatenR <- read.csv("http://forum.r-statistik.de/download/file.php?id=66")
DatenR$Date <- as.Date(DatenR$X, format="%d/%m/%Y")
str(DatenR)

plot(SENT ~ Date, type="l",ylab="Sentiment",xlab="time", data=DatenR)
plot(DatenR$SENT)
plot(ts(DatenR$SENT, start=c(2000, 1), frequency=12))
Gruß, Jörg
Lobbi

Re: impulse response function mit vars package

Beitrag von Lobbi »

Sorry für den Fehler.

Ich habe deinen code für mich angepasst und es funktioniert. Vielen Dank.

Hast du eine Idee was ich mit meinem anderen Problem tun kann. Manchmal klappt irf() ohne Probleme aber meistens läuft es nicht. Liegt das an meinem Computer?
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: impulse response function mit vars package

Beitrag von jogo »

Hallo Lobbi,
Lobbi hat geschrieben: So Feb 19, 2017 5:50 pm

Code: Alles auswählen

#Run irf analysis
irf.USAg<-irf(varest.USA, response = "g", n.ahead = 48, boot = TRUE, ci=0.95)
plot(irf.USAg)
Das Problem hierbei ist dass ich oft den Fehler erhalte, dass (response = "g", n.ahead = 48, boot = TRUE, ci=0.95) nicht benutzt werden und folglich erhalte ich kein Ergebnis für irf(). Mit anderen Worten meldet R das der zweite Teil der Klammer nach varest.USA "unused arguments" sind.
Was bedeutet das und wieso meldet R diesen Fehler?
erstmal bedeutet der Fehler genau das, was dort steht:
R verwendet die angegebenen argumente nicht. (Das sollte ein warning sein.)
Die Funktion irf() kann auf sehr verschiedene Art aufgerufen werden. Wahrscheinlich werden diese zusätzlichen Argumente verwendet, wenn das erste Argument einen anderen Typ hat (einer anderen Klasse angehört).
Object of class ‘`varest`’; generated by `VAR()`, or object of class ‘`svarest`’; generated by `SVAR()`, or object of class ‘`vec2var`’; generated by `vec2var()`, or object of class ‘`svecest`’; generated by `SVEC()`.

Gruß, Jörg
Antworten