2016-04-12 12 views
0
Plotten

Ich habe versucht, dieses Problem immer wieder zu lösen, aber ich kann es nicht bekommen. Ich habe ein Beta-t-EGARCH-Modell und ein GARCH-t-Modell in R geschätzt und muss nun die Ergebnisse über die gleiche Grafik plotten. Das Endergebnis ist schrecklich, da die Variablen nicht den gleichen Maßstab auf der Y-Achse haben. Ich bin neu bei R, also bitte beschuldige mich nicht :). Hier ist der Code:Mehrere Variablen im selben Maßstab in R

library(quantmod) 
library(betategarch) 
library(fGarch) 
library(ggplot2) 

getSymbols("GOOG",src="yahoo") 
google_ret <- abs(periodReturn(GOOG, period="daily", subset=NULL, type="log"))-mean(abs(periodReturn(GOOG, period="daily", subset=NULL, type="log"))) 

googcomp <- tegarch(google_ret, asym=FALSE, skew=FALSE) 
goog1stdev <- fitted(googcomp) 


#now we try to fit a standard GARCH-t model 
googgarch <- garchFit(data=google_ret, cond.dist="sstd") 
googgarch2 <- garchFit(data=google_ret, cond.dist="sstd", include.mean = FALSE, include.delta = FALSE, include.skew = FALSE, include.shape = FALSE, leverage = FALSE, trace = TRUE) 
volatility <- volatility(googgarch2, type = "sigma") 


plot(google_ret) 
par(new=TRUE) 
plot(googgarch2, which=2) 
par(new=TRUE) 
plot(goog1stdev, col="red") 

Das Endergebnis ist eine grafische Darstellung vollständig aus Skala auf der y-Achse, mit Variablen, die niedrigere Werte haben über höhere diejenigen aufgetragen. Vielen Dank an alle, die mir helfen wollen!

+0

Bitte fügen Sie Code, um die Pakete zu laden erforderlich. – eipi10

+0

Ich habe die Nachricht bearbeitet :) – james42

Antwort

1

Der empfohlene Ansatz ist sie als verschiedene Plots auf aufeinander gestapelt zu zeichnen:

layout(matrix(1:3,3)) 
plot(google_ret) 
plot(googgarch2, which=2) 
plot(goog1stdev, col="red") 

enter image description here

Sie können par("mar") mit Aufrufen der Leer loszuwerden Randgrößen anzupassen:

opar=par(mar=par("mar") -c(1,0,3,0)) # opar will then let your restore previous values 
..... plotting efforts 
par(opar) 

enter image description here

Ich weiß nicht, Ihre Domain sehr, wenn Sie aber CNA y-Koordinaten Verwendung verschoben dann diese Version eine etwas aufgeräumt produziert mit überlagerten Plots:

png() 
plot(google_ret, ylim=c(0,1), ylab="ylab="Google Returns(black); GGarch x10 +0.5 (blue); STD + 0.3(red)") 
par(new=TRUE) 
plot([email protected] +.5, type="l", col="blue",axes=FALSE, ylab="", main="",ylim=c(0, 1)) ;abline(h=.5, col="blue") 
par(new=TRUE); 
plot(10*coredata(goog1stdev) + .3, col="red", type="l", axes=FALSE, main="",ylim=c(0,1), ylab=""); abline(h=.3, col="red") 
dev.off() 

enter image description here

+0

Ich werde diesen Weg tun, wenn ich nicht in der Lage bin, sie auf einer einzigen Handlung zu bekommen! Danke für den Vorschlag – james42

+0

Sie werden feststellen, dass keines der wichtigsten Plotparadigmen glücklich über zwei- (viel weniger 3-ordinate) Zeichenmethoden ist. Das 'plotrix'-Paket hat eine zweistellige Plot-Methode. –

Verwandte Themen