Hallo liebe Community,
meine Masterarbeit steht bevor, für die ich mir ein paar Kleinigkeiten überlegt habe, die ich mithilfe von R untersuchen möchte.
Um etwas genauer zu werden:
Meine Arbeit beschäftigt sich mit dem Thema "Bitcoins". Die Zeitreihe von Bitcoins möchte ich dabei untersuchen, ob Sie sich ab bestimmten Zeitpunkten anders verhält. Wenn beispielsweise neue Regulierungsgesetze veröffentlicht wurden etc.
In meiner Uni-Zeit hatte ich zwar eine Vorlesung die das Thema Zeitreihenanalye behandelt hat, jedoch kann ich die dort stehenden Infos nur in Ansätzen umsetzen.
Ich habe mir folgende Schritte überlegt, die ich in "R" umsetzen werde, um die gewünschten Resultate zu erzielen:
1. Auf Stationarität testen mit einem DF test
2. ARMA Modell schätzen (falls DF test keine Stationarität ergibt, werde ich ein ARIMA Modell schätzen)
3. Ljung-Box-Pierce Test
4. Interventionsanalyse
Würdet ihr auch so vorgehen? oder habt ihr einen anderen Ansatz? Sollte man vieleicht erst ein Regressionsmodell schätzen und damit arbeiten? oder ist der ARMA/ARIMA Ansatz ausreichend?
Ich weiß momentan hat das ganze noch nicht viel mit R zutun, erstmal möchte ich nur sicher gehen, dass mein Vorgehen richtig ist, bevor ich mich an den Code heran wage
Wäre schön wenn ihr mich an eurem Wissen teilhaben lassen könnt
Viele Grüße und ein schönes Wochenende
Tim
Auswirkungen eines Events auf eine Zeitreihe
Moderator: schubbiaschwilli
Auswirkungen eines Events auf eine Zeitreihe
Zuletzt geändert von K415ER am Di Apr 11, 2017 3:14 pm, insgesamt 1-mal geändert.
Re: Auswirkungen eines Events auf eine Zeitreihe
Hallöchen,
ich habe mich in den letzten Wochen näher mit dem Thema beschäftigt und bin dabei an sich auch meinen Problemlösungen in R etwas näher gekommen.
Allerdings treten für mich noch ein paar ungereimtheiten auf, die ich euch an einem einfachen von mir gewählten Beispiel aufzeigen möchte.
Dafür habe ich eine Zeitreihe über den Benzinpreis genommen.(bzw. dessen Differenz, da die ZR sonst nicht stationär wäre)
wie man an dem Bild sieht, ist ein Ausreißer am ZP 36 zu erkennen, weswegen ich eigentlich erwarten würde, das meine Analyse auch auf dieses Ergebnis kommen würde
Hier ist mein gesamter R-Code
Zum Schluss hin habe ich mal den Output einmal mit und ohne Dummyvariable ausgegeben...
Zwar ist das AIC durch die Dummyvariable verbessert, worauf ich schließen würde, dass an sich die Dummyvariable zu einer Verbesserung des Modells führt
Allerdings ist die Dummyvariable ja nicht als signifikant einzustufen (verstehe ich das in diesem R-Output eigentlich richtig? wo jetzt die 4,45 steht, sollte doch im Idealfall ein Wert <0,05 stehen? Mal ganz davon abgesehen, dass ein p-value ja nicht > als 1 sein kann... meinem schlauen Buch zufolge, gibt der Wert eig den P-value aus..., ergibt irgendwie nicht wirklich sinn für mich....)
Ich habe mit mit dem Vorgehen sehr nah an dem Buch von Rainer Schlittgen "Angewandte Zeitreihenanalyse mit R" aus dem Jahr 2012 orientiert... Deswegen verstehe ich nicht, warum ich keine brauchbaren Ergebnisse erziele.
Wisst ihr vieleicht woran das liegt?
Viele Grüße
ich habe mich in den letzten Wochen näher mit dem Thema beschäftigt und bin dabei an sich auch meinen Problemlösungen in R etwas näher gekommen.
Allerdings treten für mich noch ein paar ungereimtheiten auf, die ich euch an einem einfachen von mir gewählten Beispiel aufzeigen möchte.
Dafür habe ich eine Zeitreihe über den Benzinpreis genommen.(bzw. dessen Differenz, da die ZR sonst nicht stationär wäre)
wie man an dem Bild sieht, ist ein Ausreißer am ZP 36 zu erkennen, weswegen ich eigentlich erwarten würde, das meine Analyse auch auf dieses Ergebnis kommen würde
Hier ist mein gesamter R-Code
Zum Schluss hin habe ich mal den Output einmal mit und ohne Dummyvariable ausgegeben...
Zwar ist das AIC durch die Dummyvariable verbessert, worauf ich schließen würde, dass an sich die Dummyvariable zu einer Verbesserung des Modells führt
Allerdings ist die Dummyvariable ja nicht als signifikant einzustufen (verstehe ich das in diesem R-Output eigentlich richtig? wo jetzt die 4,45 steht, sollte doch im Idealfall ein Wert <0,05 stehen? Mal ganz davon abgesehen, dass ein p-value ja nicht > als 1 sein kann... meinem schlauen Buch zufolge, gibt der Wert eig den P-value aus..., ergibt irgendwie nicht wirklich sinn für mich....)
Ich habe mit mit dem Vorgehen sehr nah an dem Buch von Rainer Schlittgen "Angewandte Zeitreihenanalyse mit R" aus dem Jahr 2012 orientiert... Deswegen verstehe ich nicht, warum ich keine brauchbaren Ergebnisse erziele.
Wisst ihr vieleicht woran das liegt?
Viele Grüße
Re: Auswirkungen eines Events auf eine Zeitreihe
Hallo K415ER,
wer sagt denn, dass die Reihe der ersten Differenzen automatisch stationär ist?
So ein p-value kann schlecht größer als 1 werden. Bitte schau Dir doch die Ergebnisse an von
Gruß, Jörg
wer sagt denn, dass die Reihe der ersten Differenzen automatisch stationär ist?
da steht doch aber vorne in der Zeile s.e., das bedeutet das ist erst der Standardfehler.wo jetzt die 4,45 steht, ...
So ein p-value kann schlecht größer als 1 werden. Bitte schau Dir doch die Ergebnisse an von
Code: Alles auswählen
summary(out1)
summary(out2)
Re: Auswirkungen eines Events auf eine Zeitreihe
Hallo Jörg, danke für die schnelle Antwort!
jetzt wo du es sagst, hab mich die ganze zeit gefragt wofür das s.e. steht so ergibt es natürlich Sinn! bringt mich dadurch aber auch leider noch etwas weiter weg vom verständnis
Um dir kurz zu erläutern, warum ich darauf gekommen bin, habe dir mal die passenden Ausschnitte des Beispieles aus dem Lehrbuch zum Thema Interventionsanalyse kopiert.
1. Beispiel:
2. Beispiel:
Dieser Satz hat mich zu diesen Annahmen geführt bei Beispiel 1: Die Koeffizienten des ARMA-Modells sind signifikant, der des Regressors jedoch nicht -> da dort der s.e. ja über 0,05 liegt
Woran kann man denn dann bei den Beispielen erkennen, dass einmal die Dummyvariable signifikant ist und einmal nicht?
Bei dem Beispiel ist die Differenz stationär, den dickeyfuller test hatte ich vorher schon gemacht
Hier die beiden Summary's
Da muss ich dir jetzt aber gestehen, dass ich garkeine Ahnung habe, was die Summarys mir sagen.
Wie kann ich also insgesamt jetzt an den outputs sehen, ob ein Ausreißer vorliegt, oder nicht?
Viele Grüße
Tim
jetzt wo du es sagst, hab mich die ganze zeit gefragt wofür das s.e. steht so ergibt es natürlich Sinn! bringt mich dadurch aber auch leider noch etwas weiter weg vom verständnis
Um dir kurz zu erläutern, warum ich darauf gekommen bin, habe dir mal die passenden Ausschnitte des Beispieles aus dem Lehrbuch zum Thema Interventionsanalyse kopiert.
1. Beispiel:
2. Beispiel:
Dieser Satz hat mich zu diesen Annahmen geführt bei Beispiel 1: Die Koeffizienten des ARMA-Modells sind signifikant, der des Regressors jedoch nicht -> da dort der s.e. ja über 0,05 liegt
Woran kann man denn dann bei den Beispielen erkennen, dass einmal die Dummyvariable signifikant ist und einmal nicht?
Bei dem Beispiel ist die Differenz stationär, den dickeyfuller test hatte ich vorher schon gemacht
Hier die beiden Summary's
Da muss ich dir jetzt aber gestehen, dass ich garkeine Ahnung habe, was die Summarys mir sagen.
Wie kann ich also insgesamt jetzt an den outputs sehen, ob ein Ausreißer vorliegt, oder nicht?
Viele Grüße
Tim
Re: Auswirkungen eines Events auf eine Zeitreihe
Hallöchen
ich wollte mich nochmals erkundigen, ob jemand vllt eine Idee hat wie ich die signifikanz meiner variablen überprüfen kann.
generell scheint oftmals ein z-test angewendet zu werden... also einfach koeffizient/se und dann halt in der entsprechenden tabelle nachgucken
das wird ja mit der funktion coeftest() in r gemacht.
für den z test muss ja allerdings die zugrunde gelegte zeitreihe normalverteilt sein....meine untersuchten renditen sind das leider nicht.
oder lässt sich der test trotzdem anwenden?
im rahmen der linearen regression (in der der z test ja anscheinend standartmäßig verwendet wird) kann ich mir ja eigentlich auch nicht vorstellen, dass die zugrunde liegenden daten immer normalverteilt sind... und trotzdem wird der test verwendet.
also auch in diesem fall?
oder ist das totaler quatsch? habt ihr andere ideen? hat vllt sogar jemand entsprechende literaturvorschläge?
Viele grüße
Tim
ich wollte mich nochmals erkundigen, ob jemand vllt eine Idee hat wie ich die signifikanz meiner variablen überprüfen kann.
generell scheint oftmals ein z-test angewendet zu werden... also einfach koeffizient/se und dann halt in der entsprechenden tabelle nachgucken
das wird ja mit der funktion coeftest() in r gemacht.
für den z test muss ja allerdings die zugrunde gelegte zeitreihe normalverteilt sein....meine untersuchten renditen sind das leider nicht.
oder lässt sich der test trotzdem anwenden?
im rahmen der linearen regression (in der der z test ja anscheinend standartmäßig verwendet wird) kann ich mir ja eigentlich auch nicht vorstellen, dass die zugrunde liegenden daten immer normalverteilt sind... und trotzdem wird der test verwendet.
also auch in diesem fall?
oder ist das totaler quatsch? habt ihr andere ideen? hat vllt sogar jemand entsprechende literaturvorschläge?
Viele grüße
Tim
Re: Auswirkungen eines Events auf eine Zeitreihe
ich bin ein bisschen blöd, nach weiterer literaturrecherche bin ich darauf gekommen, dass die OLS Schätzer der parameter normalverteilt sind und sich die signifikanz einfach mit einem t test überprüfen lässt.
da auf diese weise nur der einfluss auf die rendite direkt überprüft wird, wollte ich ergänzend noch ein GARCH Modell aufstellen, um die Auswirkungen eines Events auf die Volatilität der Zeitreihe zu überprüfen. Auch da ergeben sich für mich einige Schwierigkeiten
Meine Überlegungen waren dabei, dass ich ein GARCH(1,1) Modell verwende, dafür habe ich das rugarch package heruntergeladen.
nun möchte ich also auch hier Dummyvariablen einfügen.
wie man sieht habe ich die dummyvariable bei variance.model eingefügt und nicht beim mean... -> ist das überhaupt schon richtig?
aber wie auch immer, auch in diesem fall wollte ich dann wieder dummyvariablen einfügen, die die Form 0001000 und 0001111 haben, also ob die volatilität nur zu einem zp betroffen, oder halt dauerhaft verändert ist.
überraschenderweise spuckt der mir aber immer das gleiche ergebnis aus, dass meine dummyvariable einen estimate von 0 hat... egal zu welchem zp, egal welche Form der Dummyvariable ich benutze... auch wenn die rendite von einem auf den anderen tag von 3 auf 20% steigt...
beispielhaft hier mal der r output zu einer dummyvariable
wo liegt der fehler? ich weiß es nämlich mal wieder leider nicht ;(
Viele Grüße
Tim
da auf diese weise nur der einfluss auf die rendite direkt überprüft wird, wollte ich ergänzend noch ein GARCH Modell aufstellen, um die Auswirkungen eines Events auf die Volatilität der Zeitreihe zu überprüfen. Auch da ergeben sich für mich einige Schwierigkeiten
Meine Überlegungen waren dabei, dass ich ein GARCH(1,1) Modell verwende, dafür habe ich das rugarch package heruntergeladen.
nun möchte ich also auch hier Dummyvariablen einfügen.
Code: Alles auswählen
specgarch <- ugarchspec(variance.model=list(model="sGARCH", external.regressors=DUMMY), mean.model=list(armaOrder=c(0,0)), distribution="norm")
garchfit<- ugarchfit(logreturn, spec=specgarch)
garchfit
aber wie auch immer, auch in diesem fall wollte ich dann wieder dummyvariablen einfügen, die die Form 0001000 und 0001111 haben, also ob die volatilität nur zu einem zp betroffen, oder halt dauerhaft verändert ist.
überraschenderweise spuckt der mir aber immer das gleiche ergebnis aus, dass meine dummyvariable einen estimate von 0 hat... egal zu welchem zp, egal welche Form der Dummyvariable ich benutze... auch wenn die rendite von einem auf den anderen tag von 3 auf 20% steigt...
beispielhaft hier mal der r output zu einer dummyvariable
wo liegt der fehler? ich weiß es nämlich mal wieder leider nicht ;(
Viele Grüße
Tim