
Eigenmittelquote im Zeitablauf
Neben der verlässlichen Berechnung von Risikowerten kommt der Visualisierung der Ergebnisse eine entscheidende Bedeutung zu, wenn die richtigen Steuerungsimpulse gesetzt werden sollen. Hierzu bietet R eine Unzahl von Möglichkeiten. Ich bin vor einigen Tagen hier auf einen Artikel zu ggplot2 gestoßen und musste das direkt selbst ausprobieren (bitte tapfer durchhalten, der Graph kommt ganz unten…):
# Package ggplot2 laden
require(ggplot2)
# Mittelwert und Standardabweichung setzen
my.mean <- 0.10
vola.1m <- 0.0015
#Schwellwerte definieren
my.red <- 0.08
my.yellow <- 0.09
# Zeitraueme definieren
my.hist <- 24
my.future <- 24
# Zeitreihe aufstellen
my.dates <- seq(as.Date("2010-01-01"),
length.out=my.hist+my.future,
by="1 month")
#Reproduzierbarkeit sicherstellen
set.seed(12345)
# Eigenmittelquoten des simulieren, hier vereinfacht als
# Normalverteilt angenommen
my.emquote <- c(rnorm(n=my.hist,
mean=my.mean,
sd=vola.1m),
rep(NA,times=my.future))
# Den letzten Wert der Simulation als Ausgangsbasis nehmen,
# sieht in der Grafik hinterher einfach netter aus...
my.new.mean <- my.emquote[my.hist]
# Aus der Normalverteilung das 99%-Quantil ableiten,
# Standardabweichung wird ueber Wurzel-t-Funktion ermittelt.
my.emquote.99 <- c(rep(NA,times=my.hist-1),
my.new.mean,
sapply(1:my.future,
function(x) {qnorm(p=0.99,
mean=my.new.mean,
sd=vola.1m*(x/1)^0.5)}))
# Dito 1%-Quantil...
my.emquote.01 <- c(rep(NA,times=my.hist-1),
my.new.mean,
sapply(1:my.future,
function(x) {qnorm(p=0.01,
mean=my.new.mean,
sd=vola.1m*(x/1)^0.5)}))
# ...und 75%-Quantil...
my.emquote.75 <- c(rep(NA,times=my.hist-1),
my.new.mean,
sapply(1:my.future,
function(x) {qnorm(p=0.75,
mean=my.new.mean,
sd=vola.1m*(x/1)^0.5)}))
# ...und 25%-Quantil...
my.emquote.25 <- c(rep(NA,times=my.hist-1),
my.new.mean,
sapply(1:my.future,
function(x) {qnorm(p=0.25,mean=my.new.mean,
sd=vola.1m*(x/1)^0.5)}))
# Alle Vektoren huebsch in einen Data-Frame packen.
my.data<-data.frame(dates=my.dates,
quoten=my.emquote,
quoten.01=my.emquote.01,
quoten.99=my.emquote.99,
quoten.25=my.emquote.25,
quoten.75=my.emquote.75,
grenze.rot=my.red,
grenze.gelb=my.yellow)
# Dann den Plot definieren:
my.plot<-ggplot(
# Data-Frame als Grundlage
my.data,
# x-Achse ist die Zeitreihe
aes(x=my.dates)) +
# Titel fuer die Grafik
labs(title = "Simulation Eigenmittelquote") +
# y-Achse formatieren
scale_y_continuous(breaks = seq(0.07, 0.12, by =0.01 ),
limits = c(0.07,0.12),
labels = seq(7,12, by =1)) +
# Grafikparameter fuer die Zukunft
scale_fill_manual("Konfidenz",
breaks = c("98% Konfidenz",
"50% Konfidenz",
"Gruene Zone",
"Gelbe Zone",
"Rote Zone"),
values = c('98% Konfidenz' = "grey",
'50% Konfidenz' = "darkgrey",
'Gruene Zone' = "green",
'Gelbe Zone' = "yellow",
'Rote Zone' = "red")) +
# Grenze gruen
geom_ribbon(aes(ymax=0.12,
ymin=grenze.gelb,
fill="Gruene Zone"),
alpha=0.1) +
#Grenze gelb
geom_ribbon(aes(ymax=grenze.gelb,
ymin=grenze.rot,
fill="Gelbe Zone"),
alpha=0.1) +
#Grenze gelb
geom_ribbon(aes(ymax=grenze.rot,
ymin=0.07,
fill="Rote Zone"),
alpha=0.1) +
# Linie fuer die histrische Eigenmittelquote
geom_line(aes(y = my.emquote),
size = 1, linetype = 1, alpha = 1,
colour="darkgrey") +
#Flaeche fuer 98%-Konfidenz
geom_ribbon(aes(ymax = my.emquote.99,
ymin = my.emquote.01,
fill = "98% Konfidenz"),
colour = "grey",
linetype = 3,
alpha = 0.4) +
#Flaeche fuer 50%-Konfidenz
geom_ribbon(aes(ymax = my.emquote.75,
ymin = my.emquote.25,
fill = "50% Konfidenz"),
colour = "darkgrey",
linetype = 3,
alpha = 0.4) +
# Beschriftung der y-Achse
ylab(paste("Eigenmittelquote in %", sep = "")) +
#Beschriftung der x-Achse
xlab(paste("Zeit"))
my.plot
Und schon ist die Grafik da. Man sieht (meiner Meinung nach deutlich) die drei Zonen: grün für die unkritischen Werte, gelb als Warnzone, rot als inakzeptablen Bereich. Die historischen Ist-Werte für die Eigenmittelqoute ist als graue Linie dargestellt, die unsicheren zukünftigen Werte werden als graue Bereiche dargestellt:
