Risikomanagement mit R, Part 1

Author

Dr. Heiko Frings

Published

March 18, 2024

Vorbemerkungen

Diese HTML Datei wurde mit Quarto Quarto(R) generiert. Quarto ist eine Weiterentwicklung von Markdown.

Es ist auch eine Printversion dieses Textes geplant.

Die HTML-Datei enthält Code-Schnipsel, welche kopiert werden können und in der Software R lauffähig sind. So kann vieles sofort ausprobiert werden. Der vorhandene Code kann dann leicht alteriert oder erweitert werden. Auf diese Weise lässt sich fast spielerisch ein Zugang zu R aufbauen.

Dieser Text ist ein Text im Aufbau, der laufend ausgeweitet werden soll.

Gegenwärtig sehen wir einen geradezu explosionsartigen Anstieg der Möglichkeiten der Analyse, demgegenüber vielfach ein Verharren bei alten längst überholten Methoden zu beobachten ist. Es gilt einen klugen und besonnenen Gebrauch der neuen Vielfalt zu machen, ohne dabei in eine Modellverliebtheit zu verfallen. Gerade um hier die richtige Balance zu finden, ist es wichtig, Erfahrungen aus der Praxis explizit mit einzubringen.

Daher laden wir bei Instat immer wieder zum Dialog ein. Instat

Nicht zuletzt tun wir dies mit unserer alljährlichen Risikokonferenz

Risikokonferenz auf der Wartburg

Die abstrakten Bilder generierten wir mit dem R Paket aRtsy.

Leser sind herzlichst dazu eingeladen, den Text zu kommentieren und auszuweiten. Bitte wenden Sie sich an:

Vorwort

In allen wirtschaftlichen Aktivitäten spielt Risikomanagement eine zunehmend wichtige Rolle. Darüber hinaus wird die Bedeutung von Risikomanagement auch jenseits wirtschaftlicher Betrachtungen immer fühlbarer. Dies hat sich nicht zuletzt gerade jüngst auch bei dem Ausbruch der SARS-CoV-2 Pandemie sehr deutlich gezeigt. Zeitlich konzentriert konnten hier auch die vielen Dimensionen von Risikomanagement beobachtet werden. Genannt seien hier nur 3 Bereiche in denen unzulänglich agiert wurde:

  • Ethische Komponente: Zielkonflikte durch knappe Mittel

  • Durch versuchte Risikomitigation ausgelöste Sekundärrisiken und Schäden

  • Mangelhafte Datenerhebung: Daten zur Quantifizierung der Risiken, Daten zur Findung geeigneter Mitigationsmaßnahmen

  • Modellierung: Findung geeigneter mathematischer Methoden zur Berücksichtigung der Fehlerkorridore

Diese und weitere Komponenten eines (fehlenden bzw. mangelhaften) Risikomanagements fanden teils Eingang in die Massenmedien. Leider wurde dabei allzu deutlich, welche Folgen mangelnde Risikovorsorge einerseits sowie überhastete Mitigationsversuche andererseits haben können. Eine typische Risikoquelle, welche jeder Risikomanager einer Unternehmung kennt, nämlich die mangelnde Diversifikation bei den Lieferketten spielte anfangs eine besonders unrühmliche Rolle bei der Deckung der Schutzmasken-Nachfrage.

Wir haben hier im Weiteren allerdings  immer nur Anwendungen im wirtschaftlichen Sektor vor Augen. Dessen ungeachtet, lässt sich ein Gutteil der Betrachtungen auch für Anwendungen jenseits der Wirtschaft nutzbar machen.

Ein wesentlicher Teil des Risikomanagements besteht in der möglichst präzisen Quantifizierung von Risiken. In diesem Text wollen wir uns daher besonders auf die Risikoquantifizierung im Unternehmen fokussieren. Unter Quantifizierung eines Risikos verstehen wir hier immer eine monetäre Quantifizierung. Wir untersuchen also z.B. nicht das Verletzungsrisiko per se bei der Bedienung einer Maschine, wenngleich ein solches Risiko zwar auch einen monetären Aspekt, aber durch diesen allein natürlich nicht zureichend und ethisch akzeptabel beschrieben wird.

Die Relevanz des Risikomanagements für Unternehmen wird nicht zuletzt durch eine Vielzahl gesetzlicher Regelungen sowohl auf europäischer Ebene wie auf nationaler Ebene bestätigt und zusätzlich gestärkt. Genannt seien hier:  KonTraG , Basel III, MARisk, Solvency II.  Außerhalb Europas gibt es ähnliche Entwicklungen.

Aber auch ganz unabhängig vom regulatorischen Umfeld wird ein effektives Risikomanagement durch zunehmend komplexer werdende ökonomische Bedingungen zu einem entscheidenden Erfolgsfaktor wirtschaftlicher Aktivitäten. Entgegen eines weit verbreiteten Irrtums beschäftigt sich das Risikomanagement nicht allein mit der Vermeidung, Milderung oder Abwälzung von Risiken, sondern ist bzw. sollte immer gleichzeitig ein Chancenmanagement sein 1 . Deshalb ist ein effizientes Risikomanagement wesentlich für den Erfolg einer Unternehmung.

Wir werden eine Kritik der Begriffe „Risiken” und „Chancen” vornehmen und das Bild eines Managements zeichnen, welches durchgängig die Stochastizität unternehmerischen Tuns begreift und berücksichtigt, ohne dabei den Blick durch die Begriffe „Risiken” und „Chancen” zu verengen.

Ilan Averbuch: Das Haus im Boot das Boot im Haus

Es gibt keine genaue Unterscheidung zwischen Risiken auf der einen und Chancen auf der anderen Seite. Eine effektive Vermeidung oder Verringerung von Risiken kann als Ergreifen einer Chance gewertet werden. Umgekehrt ist das Verpassen zu vieler Chancen selbst ein Risiko.

Ein wichtiger Baustein eines jeden Risikomanagements ist die Quantifizierung der Einzelrisiken und deren Aggregation zu einem Gesamtrisiko. Dem Begriff des Risikos ist es inhärent, dass er sich auf mögliche Ereignisse oder Ausprägungen von Ereignissen bezieht. Die Quantifizierung von Risiken bedient sich daher des Wahrscheinlichkeitsbegriffs und damit der mathematischen Wahrscheinlichkeitstheorie. Die Bestimmung von Wahrscheinlichkeiten beinhaltet statistische Methoden und verwendet häufig  - gerade bei komplexeren Zusammenhängen-  die Methode der Monte-Carlo Simulation.

Die meist verwendeten Tabellenkalkulations-Programme stoßen hier schnell an Grenzen. Die dort fertig implementierten statistischen Routinen sind limitiert und die Tabellen werden sehr schnell höchst unübersichtlich. Durch add-ins wie @Risk® oder Chrystal Ball ® lässt sich eine Monte-Carlo-Simulation in MS Excel ® relativ komfortabel durchführen allerdings lassen sich damit die Nachteile von Spreadsheets bei weitem nicht zur Gänze ausgleichen 2 .Die andererseits vielfachen Angebote von Spezialsoftware für Risikomanagement bieten zwar zunächst eine häufig anwenderfreundliche Oberflächen sind aber in der verwendeten Methodik meist eingeschränkt und insoweit auch unflexibel.

Einen Ausweg kann hier Open Source Software wie R oder auch Python bieten. R und Python sind frei verfügbare Softwaresysteme mit extrem breit aufgestellter Funktionalität. Besonders R bietet darüber hinaus eine Vielfalt an zusätzlichen zum großen Teil hochkarätiger Softwarepakete mit einem starken Focus auf statistische Methoden. Eine zentrale Stelle zum Download von R und mittlerweile über 20.000 zusätzlicher Software Pakete, sogenannter packages  findet man insbesondere unter The R Project for Statistical Computing.  Es gibt schier unzählige weitere Informationsquellen zu R welche wir im Weiteren immer wieder aufführen werden und zusätzlich im Anhang tabellarisch auflisten.

R ist für viele potentielle Anwender auf den ersten Blick eher abschreckend, da es über keinerlei benutzerfreundliche graphische Anwenderoberflächen verfügt. Mittlerweile gibt es aber zum Glück eine Reihe Möglichkeiten R mit graphischen Anwenderoberflächen zu versehen und auch in komfortablen Entwicklungsumgebungen zu verwenden.  Auch hierfür gibt es wiederum kostenlose Software-Systeme auf hohem Niveau. Wir möchten schon jetzt auf das populäre R-Studio als Entwicklungsumgebung für R verweisen.  

Wir greifen hier die übliche Einteilung unsicherer Entwicklungen in Chancen und Risiken auf, obwohl wir später diese Form der Sprachregelung einer Kritik unterziehen werden. Wir nutzen diese Sprachregelung nur um in einer informellen Weise auf den umfassenden Ansatz, eines  nicht lediglich auf Risiken fixierten Risikomanagements hinzuweisen.

Das Pakete Rcpp bitet eine Schnittstelle zu C++. Auch viele kommerzielle Systeme bieten Schnittstellen zu R, so z.B. SAS, SPSS oder auch SAP HANA.

Alternativen zu R sind vor allem Python oder zunehmend auch
Julia. Insbesondere zwischen R und Python gibt es die Möglichkeit Brücken zu bauen, so dass R und Python gemeinsam genutzt werden können. Allerdings ist der Raum der Möglichkeiten den R eröffnet so groß, dass eine zusätzliche Einbeziehung von Python oft überflüssig erscheint.

Wer die Stärken von R und MS Excel® miteinander verbinden möchte, kann sich R auch als Add-Insfür MS Excel® bedienen. Hier gibt es eine freie Open Source Variante BERT (Basic Excel R Toolkit) sowie eine kommerzielle Variante RExcel vgl. dazu das Kapitel R und MS Excel®.

Wir wollen eine Einführung in die Möglichkeiten der Verwendung von R im Risikomanagement insbesondere in der Risikobewertung und der Risikoaggregation geben.  Bereits heute wird R in der Industrie und im Finanzbereich intensiv verwendet. Dessen ungeachtet, übersehen immer noch viele Unternehmungen gerade auch KMUs die Möglichkeiten, die sich aus der Verwendung  solcher Open Source Softwaresysteme ergeben können. Dabei kann gerade die Verwendung dieser Systeme eine sowohl kostengünstige als auch qualitativ hochstehende Alternative zu kommerziellen Softwaresystemen sein.

Wir möchten die Einführung in die Grundprinzipien der Risikobewertung und Risikoaggregation mit einer Einführung in R verbinden und dem Leser so in die Lage versetzen, theoretische Einsichten unmittelbar praktisch auszuprobieren.

Dabei haben wir in keinerlei Weise den Anspruch vollständig zu sein. Es sollen eher Fenster geöffnet werden für diejenigen Risikomanager, die bislang vor einer näheren Beschäftigung mit R zurückschreckten. Außerdem möchte es Leser ohne Hintergrund im Risikomanagement an das Thema der Quantifizierung von Risiken heranführen.

Die schiere Menge der Möglichkeiten die R und verwandte / „befreundete” Open Source Software Systeme bieten, führen zu dem Luxusproblem der Unübersichtlichkeit. Der Risikoanalyst der beginnt, sich mit R zu beschäftigen, steht einer geradezu verwirrenden Menge von Möglichkeiten gegenüber.

Ein Ziel dieses Textes besteht daher auch darin,  eine Auswahl von Softwarepaketen  vorzustellen, die in R integriert werden können bzw. um R herumranken und bereits praktische Verwendung im Risikomanagement fand.

Der R-Code der hier aufgeführten diversen Beispiele kann kopiert, unmittelbar verwendet und alteriert werden. Neben den detaillierter betrachteten Beispielen geben wir einen Ausblick auf weitere Anwendungen. 

Der Autor ist seit etwa 15 Jahren mit Risikoanalysen in diversen Wirtschaftsbereichen beschäftigt. Wie wohl die meisten Mitstreiter habe auch ich dabei zunächst vorwiegend MS Excel® verwendet. Später kam dann auch anspruchsvolle und zum Teil kostspielige (!) Spezialsoftware insbesondere zur Durchführung von Monte Carlo Simulationen für die Ermittlung von Rückversicherungsbedarf von Erstversicherern in Einsatz.

Später setzte ich zunächst S-Plus (S-Plus ist eine kommerzielle Version von R und ist in den letzten Jahren zunehmend in den Schatten von R geraten, vgl. S-Plus and R Statistics Software) und später R als weiteres zusätzliches Werkzeug insbesondere  für statistische Analysen ein. Nach und nach wurde mir aber immer deutlicher, dass sich R auch für viele weitere Aufgaben einsetzen lässt. In vielen Fällen wird dadurch die Nutzung von Excel und auch die Verwendung der Spezialsoftware obsolet.

Unter dem praktischen Druck schnell Antworten zu liefern, führt die Verwendung einfacherer Softwaresysteme häufig dazu, dass neue Analysealgorithmen erst gar nicht in den Focus des Praktikers geraten. So können beispielsweise mit den Methoden des Machine Learnings Umsatzprognosen oder das Auftreten von Störungen in Produktionsprozessen häufig deutlich präziser erfolgen, als dies bislang möglich war. Auf diese Weise lässt sich nicht nur die Qualität der Risikoanalysen steigern, sondern es ergeben sich auch direkte Impulse für das aktive Risikomanagement.

Leider ist es aber oft so, dass wegen Zeitdrucks und anderer Gründe das sprichwörtliche Fahrrad nicht gebaut wird und man stattdessen weiterhin zu Fuß läuft, also weiterhin alte Methoden und Hilfsmittel nutzt, obwohl der Einsatz anderer Werkzeuge schon bald nicht nur eine Qualitätssteigerung, sondern auch eine Beschleunigung der Prozesse ermöglichen könnte.

Erste Schritte in R

Es gibt mittlerweile eine Vielfalt von Einführungen in die Software R. Neben den diversen Monographien zu diesem Thema, gibt es beispielsweise auch viele Vorlesungsskripten, welche sich als Einführung in die Sprache R sehr gut eignen.

Eine knappe erste Einführung in R der TU Dresden findet sich hier:

R TU-Dresden

Ähnlich hier von der LMU und der Universität Dortmund:

R LMU-München

R Uni Dortmund

Einen KI -gestützten R-Tutor findet man hier:

R-Tutor

Es ist aus unserer Sicht wenig sinnvoll dieser Vielfalt einfach eine weitere R Einführung hinzuzufügen. Wir werden hier daher nur einen sehr kurzen Abriss geben und uns im Weiteren dann aber eingehender mit den speziellen R Paketen (weiter unten wird erklärt was das ist und wo man sie findet), welche für die Analyse von Risiken besonders hilfreich sind, beschäftigen. Die Verwendung von R in den verschiedenen Industrien wird in einer der vielen Onlinequellen zu R wie folgt abgeschätzt:

Die zentrale Webseite für alle R Belange ist http://www.r-project.org/ Dort finden Sie unter CRAN (Comprehensive R Archive Network) auch die Adressen unter denen Sie R und den Großteil der R Programmpakete herunterladen können. Gehen Sie z.B. zu http://ftp5.gwdg.de/pub/misc/cran/ (unter Deutschland, GWDG Göttingen) oder zu einem anderen CRAN Server um R und / oder zusätzliche R Pakete herunterzuladen. R läuft unter Linux / MacOS X und Windows. Hier sollten Sie die für Ihr System vorkompilierte Version herunterladen. Hier finden Sie auch umfangreiches Dokumentationsmaterial: Einführung, Sprachdefinition, “Writing R Extensions” (DLLs, Packages), Einführungen in weiteren Sprachen (neben Englisch) Details zur Installation finden Sie unter http://cran.r-project.org/doc/manuals/R-admin.pdf Die Installation ist aber in der Regel völlig problemlos und kann daher zunächst auch ohne jede Konsultation dieser Detailbeschreibung vorgenommen werden. Bevor wir weitere Software installieren, sollten wir uns ein wenig mit R bekannt machen.

Das Standard R GUI für R kommt relativ karg daher:

R GUI

RStudio ist eine integrierte Entwicklungsumgebung (IDE) für R und Python. Die Verwendung von RStudio erleichtert die Arbeit erheblich.RStudio umfasst eine Konsole, einen Editor mit Syntaxhervorhebung, der die direkte Codeausführung unterstützt, sowie Tools für Plotting, History, Debugging, Workspace-Management und Generierung von Reports und Shiny Apps. RStudio ist in Open-Source- und kommerziellen Editionen erhältlich und läuft lokal auf dem Laptop oder auch auf einem Server.

RStudio

Die Installation von R und RStudio wird kurz hier erklärt.

Es gibt eine Reihe weiterer IDS und GUIs für die Verwendung von R. Interessant finden wir isbesondere die Software R Analytic Flow, welche einen anderen Ansatz verfolgt.

R Analytic Flow

Erwähnt werden sollte auch, dass die freie Software Knime und auch MS Power BI R Code mit integrieren können.

R und MS Excel

In der unternehmerischen Praxis finden sehr viele Analysen nach wie vor in MS Excel® statt. Deswegen kann der Datenaustausch mit MS Excel® in der Anwendung von R wichtig sein. Speziell hierfür gibt es eine Reihe ausgereifter R Pakete:

excel.link Convenient Data Exchange with Microsoft Excel WriteXLS Cross-Platform Perl Based R Function to Create Excel 2003 (XLS) and Excel 2007 (XLSX) Files xlsx Read, Write, Format Excel 2007 and Excel 97/2000/XP/2003 Files ExcelFunctionsR Imports Excel Functions to R excelR A Wrapper of the ‘JavaScript’ Library ‘jExcel’ modgetxl A ‘shiny’ Module for Reading Excel Sheets popprxl Read GenAlEx Files Directly from Excel xltabr Automatically Write Beautifully Formatted Cross Tabulations/Contingency Tables to Excel XLConnect Excel Connector for R writexl Export Data Frames to Excel ‘xlsx’ Format XLConnect Excel Connector for R

Neben dieser Vielzahl von Paketen gibt es auch Excel add-ins welche für Verwendung von R in Excel sehr praktisch sein können: BERT (Basic Excel R Tool) https://bert-toolkit.com/ BERT ist ein Open Source Werkzeug zur Verbindung von Excel mit der Statistik-Sprache R. Es wurde speziell dafür entwickelt, die Ausführung von R-Funktionen aus Excel-Tabellenzellen zu unterstützen. Es dient dazu, benutzerdefinierte Excel- Funktionen (User-Defined Functions, UDFs) in R zu schreiben.

RExcel

RExcel ist ein Add-In für MS Excel®, mit dessen Hilfe man die Statistiksoftware R innerhalb von Excel verwenden kann. Im Bereich des Risikomanagements können diese add-ins auch als Alternativen zu den kommerziellen Simulations add-ins wie beispielsweise Chrystal Ball oder @Risk verstanden werden. Während die R add- ins zwar den Zugang zu einer ungleich breiteren Funktionalität geben, so ist ihr Bedienungskomfort allerdings deutlich geringer als der von Chrystal Ball und @Risk. MS Excel® wird häufig in einer etwas unübersichtlichen Weise in den Unternehmungen eingesetzt. Meist gibt es Dutzende oder gar hunderte verschiedenen MS Excel® Dateien, die manchmal über externe Links miteinander kommunizieren. Wenn schon so ein Wildwuchs von Excel Dateien entstanden ist, kann evtl. MS Power BI® ein geeignetes Hilfsmittel sein, hier etwas Ordnung hineinzubringen. Zudem hat MS Power BI® viele graphische Werkzeuge von R übernommen und kann durch eigenen R Code ergänzt werden. Eine kostenlose Desktop Version ist im Internet verfügbar . Für den R Anwender kann MS Power BI ® als Alternative zu R Shiny verwendet werden. Sowohl R Shiny als auch MS Power BI ® ermöglichen die Erstellung interaktiver Dashboards und Graphiken. Die interaktive Darstellung von Risikolandschaften erlangt zunehmende Bedeutung. Hilfe zu R Es existiert ein relativ gut ausgebautes Hilfe-System zu R. Die Qualität der Hilfe für die einzelnen R Pakete ist von Paket zu Paket unterschiedlich. Die sehr große weltweite Verbreitung von R erlaubt es, in verschiedenen Internet Foren, Hilfe zu Problemen bei der Verwendung von R oder auch zu den einzelnen Paketen zu erhalten. Der Zugang zu den Basishilfsfunktionen wird hier kurz dargestellt: help(fitdist) # Beispiel: Hilfe zu „fitdist” des Paketes „fitdistrplus” help.search() # Durchsuchen des Hilfssystems ?help # Hilfe zur Hilfefunktion help(fitdist) # Beispiel: Hilfe zu „fitdist” RSiteSearch(“fitdist”) # öffnet Internetseite mit Suchergebnissen

Zu einigen Themen gibt es Demos welche sich wie folgt ausrufen lassen:

demo(image) # Beispiel: Demo zum Anzeigen von Bildern demo() # Liste der Demos im Basissystem

Numerische Operatoren in R

+,-, *, /,^ Addition, Substraktion, Multiplikation, Division, Exponentielfunktion abs() Absolutbetrag sqrt() Quadratwurzel sin(), cos(), tan() Trigonometrische Funktionen asin(), acos(), atan() Inverse trig. Funktionen sinh(), cosh(), tanh() Hyperbolische trig. Funktionen exp() Exponentialfunktion mit der Eulerschen Konstante ceiling(), floor (), round() Rundungsfunktionen trunc() Abschneiden der Kommastellen
factorial () Fakultät

  Zuweisungen Skalare, Vektoren, Matrizen

Zuweisungsoperator <- (oder =)

Skalare, Vektoren (einfachster Datentyp in R, geordnete Menge von Daten gleichen Typs)

x<-5
y<-1:10
z<-c(5,7,5,6,10:15)
x;y;z
[1] 5
 [1]  1  2  3  4  5  6  7  8  9 10
 [1]  5  7  5  6 10 11 12 13 14 15

Matrizen , Arrays

m<-matrix(1:20,ncol=5)
colnames(m)<-c("A","B","C","D","E")
rownames(m)<-c("R1","R2","R3","R4")
m
   A B  C  D  E
R1 1 5  9 13 17
R2 2 6 10 14 18
R3 3 7 11 15 19
R4 4 8 12 16 20
my.array<-array(1:20,dim=c(2,4,2))
my.array
, , 1

     [,1] [,2] [,3] [,4]
[1,]    1    3    5    7
[2,]    2    4    6    8

, , 2

     [,1] [,2] [,3] [,4]
[1,]    9   11   13   15
[2,]   10   12   14   16

Data Frames & Listen

Im Unterschied zu Arrays können Data Frames verschiedene Datentypen vereinen:

a<-1:4
b<-c("red","white","red",NA)
c<-c(TRUE,FALSE,TRUE,TRUE)
my.data<-data.frame(ID=a,Color=b,Passed=c)
my.data
  ID Color Passed
1  1   red   TRUE
2  2 white  FALSE
3  3   red   TRUE
4  4  <NA>   TRUE

Listen

my.list<-list(some.numbers=1:10,some.letters=c("a","b","c"),a.matrix=matrix(10:20,ncol=4))
Warning in matrix(10:20, ncol = 4): Datenlänge [11] ist kein Teiler oder
Vielfaches der Anzahl der Zeilen [3]
my.list
$some.numbers
 [1]  1  2  3  4  5  6  7  8  9 10

$some.letters
[1] "a" "b" "c"

$a.matrix
     [,1] [,2] [,3] [,4]
[1,]   10   13   16   19
[2,]   11   14   17   20
[3,]   12   15   18   10

Zugriff auf Arrays, Data Frames und Listen

my.array<-array(1:20,dim=c(2,4,2))
my.array[1,2,2]
[1] 11
my.array[1:2,2,2]
[1] 11 12
my.array[2,,][,2]
[1] 10 12 14 16
my.list<-list(some.numbers=1:10,some.letters=c("a","b","c"),a.matrix=matrix(10:20,ncol=4))
Warning in matrix(10:20, ncol = 4): Datenlänge [11] ist kein Teiler oder
Vielfaches der Anzahl der Zeilen [3]
my.list$some.numbers
 [1]  1  2  3  4  5  6  7  8  9 10

Plots in R

R bietet eine Fülle von Möglichkeiten anspruchsvolle Plots zu erstellen. Dies gilt schon für R ohne Nutzung von Zusatzpaketen.

Insbesondere das Paket ggplot2 ist zur Ausweitung der Möglichkeiten sehr beliebt.

Die Erstellung von Plots ist unkompliziert. Hier ein paar Standards:

Code zeigen
#Erzeuge Pseudodaten
a<-rnorm(200, 10,5)
b<-(a^0.25) *(1+runif(200)/50)
#Stelle 4 Plots zusammen; jeweils 2 in einer Reihe
par(mfrow=c(2,2))
#  Histogramm
hist(a,col="darkred",main="Histogramm mit 25+1 Säulen",breaks=25)
#  Boxplot
boxplot(a,col="darkblue",main="Boxplot")
# Standardplot
plot(a,col=1:10,main="Plot mit 10 Farben")
# Scatterplot
plot(a,b,main="Scatterplot mit x-en",pch="x",col="red")

Die Syntax von ggplot2 ist etwas komplexer als die der Standardplotbefehle von R. Beispiel eines Plots unter Verwendung des Pakest ggplot2

Code zeigen
# Laden notwendiger Libraries (vgl....)
options(warn=-1)
library(ggplot2)
library(ggExtra)
 
# Nutzen eines R-internen Datensets, Blick auf ein Fragemnt dieses #datensets

head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
Code zeigen
# classic plot :
p <- ggplot(mtcars, aes(x=wt, y=mpg, color=cyl, size=cyl)) +
      geom_point() +
      theme(legend.position="none")
 
# with marginal histogram
p1 <- ggMarginal(p, type="histogram")
 
# marginal density
p2 <- ggMarginal(p, type="density")
 
# marginal boxplot
p3 <- ggMarginal(p, type="boxplot")

p;p1

Code zeigen
p;p2

Code zeigen
p;p3

Code zeigen
options(warn=-1)

suppressMessages(library(plotly))

d <- highlight_key(mtcars)
sp <- plot_ly(d, x = ~mpg, y = ~disp) %>%
    add_markers(color = I("darkred"))

# 'statistical trace types'
hist <- plot_ly(d, x = ~factor(cyl)) %>% 
    add_histogram(color = I("darkblue"))
box <- plot_ly(d, y = ~disp, color = I("darkgreen")) %>% 
    add_boxplot(name = " ")
violin <- plot_ly(d, y = ~disp, color = I("darkgrey")) %>%
    add_trace(type = "violin", name = " ")

subplot(sp, box, violin, shareY = TRUE, titleX = TRUE, titleY = TRUE) %>%
    subplot(hist, widths = c(.75, .25), titleX = TRUE, titleY = TRUE) %>%
    layout(
        barmode = "overlay", 
        title = "Click and drag scatterplot",
        showlegend = FALSE
    ) %>%
    highlight("plotly_selected")
Setting the `off` event (i.e., 'plotly_deselect') to match the `on` event (i.e., 'plotly_selected'). You can change this default via the `highlight()` function.
Code zeigen
options(warn=-1)

df <- data.frame(
  x = c(1, 2, 2, 1, 1, 2),
  y = c(1, 2, 2, 1, 1, 2),
  z = c(1, 1, 2, 2, 3, 3)
)
plot_ly(df) %>%
  add_markers(x = 1.5, y = 1.5) %>%
  add_markers(x = ~x, y = ~y, frame = ~z)
Code zeigen
plot_ly(mtcars, x = ~wt, y = ~mpg, frame = ~cyl) %>%
  animation_opts(transition = 0)
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plotly.com/r/reference/#scatter
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode
Code zeigen
if (interactive()) {
  p <- ggplot(txhousing, aes(month, median)) +
    suppressMessages(geom_line(aes(group = year), alpha = 0.3)) +
    geom_smooth() +
    suppressMessages(geom_line(aes(frame = year, ids = month), color = "red")) +
    facet_wrap(~ city)
 
  ggplotly(p, width = 1200, height = 900) %>%
    animation_opts(1000)
}

Verteilungen in R

Das Beispiel der Normalverteilung Schreibe in das Command Window den Funktionsnamen für die Dichte der Normalverteilung:

dnorm
function (x, mean = 0, sd = 1, log = FALSE) 
.Call(C_dnorm, x, mean, sd, log)
<bytecode: 0x00000207230e2e90>
<environment: namespace:stats>

R führt uns die Argumente x, mean = 0, sd = 1, log = FALSE auf. Der Mittelwert mean, die Standardabweichung sd sowie die Option log (logarithmisch?) sind mit Standardwerten befüllt. Ändert man diese nicht, so arbeitet man also mit der Standardnormalverteilung und es reicht einen Wert für x einzugeben, z.B.

dnorm(1) 
[1] 0.2419707
values<-seq(-2,2,by=0.05) 
paged.print=TRUE
pch=15
values 
 [1] -2.00 -1.95 -1.90 -1.85 -1.80 -1.75 -1.70 -1.65 -1.60 -1.55 -1.50 -1.45
[13] -1.40 -1.35 -1.30 -1.25 -1.20 -1.15 -1.10 -1.05 -1.00 -0.95 -0.90 -0.85
[25] -0.80 -0.75 -0.70 -0.65 -0.60 -0.55 -0.50 -0.45 -0.40 -0.35 -0.30 -0.25
[37] -0.20 -0.15 -0.10 -0.05  0.00  0.05  0.10  0.15  0.20  0.25  0.30  0.35
[49]  0.40  0.45  0.50  0.55  0.60  0.65  0.70  0.75  0.80  0.85  0.90  0.95
[61]  1.00  1.05  1.10  1.15  1.20  1.25  1.30  1.35  1.40  1.45  1.50  1.55
[73]  1.60  1.65  1.70  1.75  1.80  1.85  1.90  1.95  2.00
plot(values,dnorm(values),col="darkred",pch=15)

Alle Standardverteilungen und ebenso viele “exoterische” Verteilungen lassen sich in R abbilden.

Stetige Verteilungen

Gleichverteilung, Normalverteilung, Lognormalverteilung, Weibullverteilung, Exponentialverteilung, Gammaverteilung, Betaverteilung, Dreiecksverteilung, Paretoverteilungen,

Diskrete Verteilungen Binomialverteilung Poissonverteilung Negative Binomialverteilung

Eine übergreifende Syntaxkonvention ist es die Bezeichnung der Dichtefunktion jeweils mit d starten zu lassen: dnorm, dlnorm,…; die Bezeichnung Wahrscheinlichkeitsfunktion mit p starten zu lassen: pnorm, plnorm sowie den Buchstaben R für die Bezeichnung der Simulationsfunktionen zu verwenden: rnorm, rlnorm,…

Risiko & Wahrscheinlichkeit

Der Begriff des Risikos ist allgegenwärtig und findet sich dabei auch immer wieder in hochformalisierten Kontexten wie z.B.  Gesetzestexten. Dennoch unterliegt er einer ihm eigentümlichen Unschärfe 3.  Der mit dem Risikobegriff eng verwobene Begriff der Wahrscheinlichkeit ist ebenfalls unscharf und wird dennoch ubiquitär verwendet.

Der Wahrscheinlichkeitsbegriff ist -aus unserer Sicht- gegenüber dem Risikobegriff grundlegend und daher überträgt sich die Vagheit dieses Begriffes auch auf den Risikobegriff. Allerdings speist sich die Unschärfe des Risikobegriffes nicht allein aus der Unschärfe des Wahrscheinlichkeitsbegriffes. Es kommen weitere Vagheitselemente hinzu.

Für die Zwecke des Risikomanagements und auch für regulatorische Zwecke scheint es geboten, allgemeinverbindliche Explicata für die Explicanda Wahrscheinlichkeit und Risiko zu finden. Mindestens aber sollte man sich der unterschiedlichen Verwendungen des Wortes -welches eher eine Begriffsfamilie als einen festen Einzel-Begriff bezeichnet- bewusst sein.

Rudolf Carnap hat sich mit dem Begriff der Explikation bzw. rationalen Nachkonstruktion von Alltagsbegriffen beschäftigt und diesen insbesondere auch auf die Explikation des Alltagbegriffs der Wahrscheinlichkeit angewandt4 . Der Wahrscheinlichkeitsbegriff wurde bereits in den 1920er und 1930er Jahren intensiv diskutiert und diese Diskussion führte zu sich gegenseitig ausschließenden  Explicata. Zu nennen sind hier insbesondere Rudolf Carnap über Begriffsexplikation :  „Die Aufgabe der Begriffsexplikation besteht darin, einen gegebenen, mehr oder weniger unexakten Begriff durch einen exakten zu ersetzen. Der gegebene Begriff (sowie der dafür verwendete Ausdruck) soll Explikandum heißen, den exakten Begriff (sowie den dafür vorgeschlagenen Ausdruck) hingegen, der den ersten ersetzen soll, nennen wir Explikat. Das Explikandum kann der Sprache des Alltags oder einem frühen Stadium der Wissenschaftssprache entnommen sein. Das Explikat muß durch explizite Regeln für seine Anwendung gegeben werden. Dies kann z. B. durch eine Definition geschehen, welche diesen Begriff in ein bereits vorhandenes System von logisch-mathematischen oder empirischen Begriffen einordnet.”

Rudolf Carnap (1891-1970)

Es wird sich erweisen, dass zu dem Alltagsbegriff Risiko mehrere Explicata zu erstellen sind. Auch für praktische Zwecke ist es wichtig, sich auf ein möglichst präzises gemeinsames Verständnis zu einigen. Eine Option kann es auch sein, den Risikobegriff gänzlich zu vermeiden, um stattdessen einfach zu fordern, alle wichtigen Kenngrößen und Einflussfaktoren eines Unternehmens bzw. eines Projektes stets als nicht-deterministische, sondern stochastische Größen zu betrachten. Ob es sich dann dabei eher um „Risiken”, „Chancen” oder eine „Kombination von Risiken und Chancen” handelt, zeigt jeweils die genauere Analyse, welche ihrerseits mit präzise definierbaren „Risiko”-maßen dokumentiert werden kann.

Der gegenwärtige Umgang mit den Begriffen „Risiko” und „Wahrscheinlichkeit” zeichnet sich dagegen teils durch ein exorbitantes Maß an Ignoranz und Naivität in begriffshistorischer und begriffskritischer Hinsicht aus.

Ein Beispiel hierfür ist die häufig vertretene Meinung, der Wahrscheinlichkeitsbegriff sei mit dem Axiomensystem von Kolmogorov gleichzusetzen.

Der russische Mathematiker Andrei Kolmogorov stellte in den 1930 er Jahren ein Axiomensystem für die mathematische Wahrscheinlichkeitstheorie auf. Wenngleich dieses Axiomensystem mathematisch sehr fruchtbar ist, so erklärt es keineswegs den Begriff Wahrscheinlichkeit. Dies gilt schon deshalb, weil die Axiome vielfältige Interpretationen erlauben und es im Sinne der mathematischen Modelltheorie Modelle gibt, die diesen Axiomen entsprechen aber nichts mit dem Begriff der Wahrscheinlichkeit zu tun haben.

Andrei Kolmogorov (1903-1987)

Letztendlich ist die Kolmogorov-Wahrscheinlichkeit einfach ein auf 1 normiertes Maß und damit ein Begriff der Maßtheorie, die ihrerseits die klassischen Integralbegriffe verallgemeinert. Wäre also die naive Interpretation der Kolmogorov Axiome tatsächlich ein Explikat des Wahrscheinlichkeitsbegriffes, so folgte daraus, dass bereits Newton und Leibniz dieses Explikat für einen Gutteil von Anwendungsfällen zur Hand hatten. Die intendierte Anwendung der Integrale bezog sich aber zuallererst auf die klassische Mechanik und nicht auf Wahrscheinlichkeiten. So gesehen ist es geradezu absurd, in den Kolmogorov Axiomen ein Explikat für Wahrscheinlichkeit zu sehen.

Diese Beobachtung schmälert in keiner Weise die Bedeutung dieser Axiome. Eine gute Einführung in die klassische Wahrscheinlichkeitstheorie bietet z.B. B.W. Gnedenko5 .

dass auch die scheinbar klare Einteilung in Chancen und Risiken ihre Tücken hat, zeigt etwa nachstehendes Beispiel:

Ein Handelsunternehmen möge in drei unterschiedlichen Geschäftsbereichen immer mal wieder – je Geschäftsbereich etwa alle 2 bis 3 Jahre –  ein lukratives Zusatzgeschäft akquirieren  können. Alle drei Bevollmächtigten dieser Geschäftsbereiche würden dann typischerweise am Anfang des Jahres von der Chance sprechen, ein solches Geschäft zu akquirieren.  Umgekehrt würde man aber auch das gänzliche Ausbleiben aller Zusatzgeschäfte z.B. in den nächsten 3 Jahren nicht zu Unrecht als Risiko bezeichnen. Hier wird dann Möglichkeit, dass sich Risiken nicht realisieren als Chance bezeichnet. Umgekehrt würde man die Nicht-Realisierung  relativ wahrscheinlicher Risiken als Chance bezeichnen. Je nach Länge des betrachteten Zeitraumes, der Höhe der Ereigniswahrscheinlichkeiten und dem Clustern der Risiken tendiert  man eher zu der einen oder der anderen Ausdrucksweise.

Manche sprechen von Risiken, die mittels eines Risikomaßes bemessen werden können, andere bezeichnen dagegen das Maß selbst als Risiko und sprechen von der Risikoeinschätzung einer identifizierten Gefährdung. Risiko wird dann z.B. im technischen Bereich (etwa DIN-Norm VDE 31000 6) als Produkt der ungewollten Konsequenzen eines Ereignisses und der Wahrscheinlichkeit des Auftretens bezeichnet.

Der gegenwärtige Umgang mit den Begriffen Risiko und Wahrscheinlichkeit zeichnet sich dagegen teils durch ein exorbitantes Maß an Ignoranz und Naivität in begriffshistorischer und begriffskritischer Hinsicht aus.

Ein Beispiel hierfür ist die häufig vertretene Meinung, der Wahrscheinlichkeitsbegriff sei mit dem Axiomensystem von Kolmogorov gleichzusetzen.

Der russische Mathematiker Andrei Kolmogorov stellte in den 1930 er Jahren ein Axiomensystem für die mathematische Wahrscheinlichkeitstheorie auf. Wenngleich dieses Axiomensystem mathematisch sehr fruchtbar ist, so erklärt es keineswegs den Begriff Wahrscheinlichkeit. Dies gilt schon deshalb, weil die Axiome vielfältige Interpretationen erlauben und es im Sinne der mathematischen Modelltheorie Modelle gibt, die diesen Axiomen entsprechen aber nichts mit dem Begriff der Wahrscheinlichkeit zu tun haben.

Letztendlich ist die Kolmogorov-Wahrscheinlichkeit einfach ein auf 1 normiertes Maß und damit ein Begriff der Maßtheorie, die ihrerseits die klassischen Integralbegriffe verallgemeinert. Wäre also die naive Interpretation der Kolmogorov Axiome tatsächlich ein Explikat des Wahrscheinlichkeitsbegriffes, so folgte daraus, dass bereits Newton und Leibniz dieses Explikat für einen Gutteil von Anwendungsfällen zur Hand hatten. Die intendierte Anwendung der Integrale bezog sich aber zuallererst auf die klassische Mechanik und nicht auf Wahrscheinlichkeiten. So gesehen ist es geradezu absurd, in den Kolmogorov Axiomen ein Explikat für Wahrscheinlichkeit zu sehen.

Diese Beobachtung schmälert natürlich in keiner Weise die Bedeutung dieser Axiome. Eine gute Einführung in die klassische Wahrscheinlichkeitstheorie bietet z.B. B.W. Gnedenko 7

dass die scheinbar klare Disjunktion möglicher Entwicklungen in Chancen und Risiken ihre Tücken hat, zeigt nachstehendes Beispiel:

Ein Handelsunternehmen möge in drei unterschiedlichen Geschäftsbereichen immer mal wieder – etwa alle 2 bis 3 Jahre –  ein lukratives Zusatzgeschäft akquirieren  können. Alle drei Bevollmächtigten dieser Geschäftsbereiche würden dann typischerweise am Anfang des Jahres von der Chance sprechen, ein solches Geschäft zu akquirieren.  Umgekehrt würde man aber auch das gänzliche Ausbleiben aller Zusatzgeschäfte z.B. in den nächsten 3 Jahren nicht zu Unrecht als Risiko bezeichnen. Hier wird dann Möglichkeit, dass sich Risiken nicht realisieren, als Chance bezeichnet. Umgekehrt würde man die Nicht-Realisierung  relativ wahrscheinlicher Risiken als Chance bezeichnen. Je nach Länge des betrachteten Zeitraumes, der Höhe der Ereigniswahrscheinlichkeiten und dem Clustern der Risiken tendiert  man eher zu der einen oder der anderen Ausdrucksweise.

Manche sprechen von Risiken, die mittels eines Risikomaßes bemessen werden können, andere bezeichnen dagegen das Maß selbst als Risiko und sprechen von der Risikoeinschätzung einer identifizierten Gefährdung. Besonders in technischen Kontexten (etwa DIN-Norm VDE 31000 ) wird Risiko als Produkt der ungewollten Konsequenzen eines Ereignisses und der Wahrscheinlichkeit des Auftretens verstanden, also mit einer bestimmten Form der Quantifizierung identiofiziert.

In den meisten Fällen ergibt sich aus dem Kontext, was jeweils gemeint ist. Ein gewisses Problembewusstsein der Unklarheiten der verwendeten Begrifflichkeiten, wird aber hilfreich sein, Mißverständnisse z.B. in der Kommunikation zwischen verschiedenen Risk Ownern oder auch in der Kommunikation mit der Unternehmensleitung zu vermeiden.

Gefahr und Risiko

Aus der soziologischen Literatur stammt ein interessanter Präzisierungsansatz für den Risikobegriff. Dieser läuft darauf hinaus, Gefahr und Risiko streng zu unterscheiden. Mit dieser Thematik befasste sich insbesondere der mit seiner Systemtheorie einflussreiche Bielefelder Soziologe Niklas Luhmann 8

Laut Luhmann soll immer dann von Risiko die Rede sein, “wenn eine Entscheidung ausgemacht werden kann, ohne die es nicht zu dem Schaden kommen könnte” und “dass der kontingente Schaden selbst kontingent, also vermeidbar, verursacht wird.” (Luhmann 1991, S. 25)

Niclas Luhmann (1927-1998)

Sowohl Gefahr als auch Risiko beinhalten ein Moment der Unsicherheit. Anders als das Risiko ist aber die Gefahr nicht durch Entscheidungen der Person oder des betrachteten Systems beeinflussbar. Im Falle einer Gefahr werden Schäden extern verursacht und dem System ist nicht bekannt, durch welche Maßnahmen es diese Schäden vermeiden bzw. reduzieren könnte.

In Zeiten, in denen das relevante Wissen über Infektionskrankheiten nicht vorhanden war, waren solche Krankheiten ein Beispiel für Gefahren. Mit dem Fortschritt der medizinischen Wissenschaften werden Ansteckungsgefahren aber immer mehr auch als  durch Entscheidungen  beeinflussbare Ansteckungsrisiken gesehen.

Dieses Unterscheidungsmerkmal zwischen Gefahr und Risiko stimmt auch recht gut mit dem Befund überein, wie man ihn durch eine einfache statistische Auswertung des Wortgebrauchs der beiden Wörter „Risiko” und „Gefahr” erhält. Wir haben uns dazu die von der Universität Leipzig zur Verfügung gestellte Webseite 9 zunutze gemacht. Die Ergebnisse dazu haben wir im Anhang aufgeführt.

Einen ausführlichen und interessanten Rekurs auf die Luhmannsche Theorie des Risikos findet man z.B. in der Dissertation von Juergen Weichselgartner 10.

Daneben gibt aber auch gänzlich andere semantische Grenzziehungen zwischen Gefahr und Risiko. So spricht man z.B. in der Toxikologie von Gefahr dann, wenn ein Produkt durch Exposition ein Risiko generiert. Das Risiko wird dann im Wesentlichen als Produkt aus  Gefährdungspotential und Exposition quantifiziert. Statt von Gefahr wird hier oft auch von Gefährdungspotential gesprochen. Das Wort Gefährdungspotential ist streng genommen allerdings ein Pleonasmus, das bereits im Begriff Gefahr auf ein Potential und nicht auf eine aktuell wirksame Entität verwiesen wird11. Wie auch z.B. in einer Mitteilung des Bundesinstituts für Risikobewertung hervorgehoben wird ist die Unschärfe und die Mehrdeutigkeit des Risikobegriffs besonders bei der Teilnahme an der öffentlichen Risikokommunikation zu beachten, vgl. BfR: „Risiko” oder „Gefahr”?  Experten trennen nicht einheitlich12.

Ähnlich auch die juristische Definition: “Unter einer Gefahr versteht man einen Zustand, bei dem auf Grund tatsächlicher Umstände die Wahrscheinlichkeit des Eintritts eines schädigenden Ergebnisses besteht.”

Irritierend hierbei ist, dass zwischen der Gefahr und dem Schaden sprachlich noch ein Ergebnis zwischengeschaltet wird, welches seinerseits den Schaden generiert. Offen bleibt zudem, welche weitere Bedingung durch den Zusatz „auf Grund tatsächlicher Umstände” hinzugefügt wird. Weiterhin muß gesagt werden, dass zumindest in jedem System, welches einer gewissen Dynamik unterliegt, immer eine positive Wahrscheinlichkeit für Schädigungen besteht. Dies wäre nur dann nicht der Fall, wenn das betrachtete System gänzlich neutral gegenüber einem wie auch immer angesetzten Schadenmaß ist.

Insgesamt zeigt sich, dass die Trennlinie zwischen Gefahr und Risiko gänzlich unterschiedlich gezogen wird. Die von Niklas Luhmann gezogene Grenzlinie erscheint hinreichend präzise und hat in praktischer Hinsicht einen besonderen Charme.

Vom Umgang mit Wahrscheinlichkeiten

Wahrscheinlichkeiten sind intuitiv nur schwer zu greifen und beim Operieren mit Wahrscheinlichkeiten muss man sich besonders vor Fehlschlüssen hüten. Zu den typischen logischen Fehlschlüssen, die auch ohne einen Rekurs auf Wahrscheinlichkeiten häufig vorkommen, birgt der Umgang mit Wahrscheinlichkeiten zusätzliches Potential für Fehlschlüsse.

Solche Fehlschlüsse können häufig dadurch vermieden werden, dass man die Prämissen einer Schlußfolgerung dezidiert präzise formuliert. Übersetzt man die Prämissen in eine formalisierte Sprache (insbesondere eine Programmiersprache), so wird man gezwungen, alles exakt zu beschreiben. Allerdings ist darauf zu achten, dass bei diesem Übersetzungsprozess keine wichtige Information verloren geht, sonst erhält man zwar präzise formulierte Ausagen, diese geben dann aber nicht das eigentlich Gemeinte vollständig wider. Dieser Übersetzungsprozess kann mühsam sein.

Gerade wenn es um bedingte Wahrscheinlichkeiten geht, neigen wir alle zu Denkfehlern. Dies gilt sogar für einschlägig geschulte Personen.

Bekannt ist das sogenannte Monty Hall Problem. Einerseits widersetzt es sich hartnäckig einem intuitiven Zugriff, andererseits wirkt es (hat man es einmal verstanden) gerade zu trivial.

Monty Hall moderierte bereits in den 60er Jahren die Show “Let’s make a deal”. In dieser Show hatte der Kandidat die Möglichkeit zwischen drei dooren zu wählen. Hinter einem door befindet sich der Hauptgewinn, hinter den anderen beiden Türen jeweils eine Niete: Die Ziege. Der Kandidat wählt in diesem Glücksspiel eine Tür aus.Nachdem eine Tür ausgewählt wurde,öffnet der Moderator eine der beiden anderen Türen mit einer Ziege dahinter und fragt den Kandidaten, ob er die Tür wechseln möchte. Dabei wird angenommen, dass der Showmaster immer eine nicht gewählte Tür mit einer Zige dahinter öffnet und er den Wechsel als Option anbietzen muss.

Die meisten Menschen meinen, ein Wechsel der Tür habe keinen Einfluß auf die Erfolgswahrscheinlichkeit. Tatsächlich erhöht der Wechsel aber die Gewinnaussichten von 1/3 auf 2/3.

Die Behauptung, dass es richtig ist, die Türen zu wechseln, scheint selbst für Personen mit umfassender statistischer Ausbildung kontraintuitiv zu sein13. Die sogenannte Erdös-Zahl ist eine über die Koautorenschaft bestimmte Maßzahl des kooperativen Abstandes eines Mathematikers zum Mathematiker Paul Erdös. Dies wirft ein Licht auf die Bedeutung des Mathematikers Erdös. Eben dieser Erdös hatte ernstfhafte Schwierigkeiten die Probabilistik des Monty Hall Spieles zu verstehen. Erst eine Monte-Carlo Simulation konnte ihn überzeugen. Erdös war mit Ulam, einem der Entwickler der Monte-Carlo Methodik befreundet und schrieb einen biographischen Text zu Ulam.

Simulation von 500 Monty Hall Spielen:

Code zeigen
# Setze einen Keim für den Zufallsgenerator
set.seed(14)

# Anzahl der Spiele
n_games=500

# Definiere die Simulationsfiunktion
simulate_game = function(make_switch = FALSE, n_doors = 3L, seed = NULL) {
 
  if (!is.null(seed)) set.seed(seed)
   doors = seq_len(n_doors)
  
  isClosed = rep(TRUE, length = n_doors)
 
  prize_index = sample(doors, size = 1)

  choice_index = sample(doors, size = 1)
  

  if (prize_index == choice_index) {
     isClosed[sample(doors[-prize_index], size = n_doors - 2)] = FALSE
  } else {
    
    isClosed[-c(prize_index, choice_index)] = FALSE
  }
 
  if (make_switch) {

    choice_index = doors[isClosed][doors[isClosed] != choice_index]
  }
  

  return(choice_index == prize_index)
}

simulate_n_games = function(n, seed = NULL, make_switch = FALSE, ...) {

  return(vapply(rep(make_switch, n), simulate_game, logical(1), ...))
}

library(ggplot2)


linesize = .6 
x_breaks = y_breaks = seq(from = 0, to = n_games, length.out = 10 + 1) 
y_limits = c(0, n_games) # limits of the y axis - makes y limits 
w = 8 
h = 5 
palette = setNames(c('darkblue', 'darkred'), nm = c('mit Wechsel der Tür', 'ohne Wechsel der Tür')) 

results_without_switching = simulate_n_games(n = n_games, seed = seed, make_switch = FALSE)
results_with_switching = simulate_n_games(n = n_games, seed = seed, make_switch = TRUE)


results = data.frame(
  game = seq_len(n_games),
  cumulative_wins_without_switching = cumsum(results_without_switching),
  cumulative_wins_with_switching = cumsum(results_with_switching)
)


format_percentage = function(values, digits = 1) {
  return(paste0(formatC(values * 100, digits = digits, format = 'f'), '%'))
}


title = paste("")

# Generiere einen Plot der simulierten Spielverläufe
ggplot(data = results) +
  geom_line(aes(x = game, y = cumulative_wins_with_switching / game, col = names(palette[1])), linewidth = linesize) +
  geom_line(aes(x = game, y = cumulative_wins_without_switching / game, col = names(palette[2])), linewidth = linesize) +
  scale_x_continuous(breaks = x_breaks) +
  scale_y_continuous(labels = function(x) format_percentage(x, digits = 0)) +
  scale_color_manual(values = palette) +
  theme_minimal() +
  theme(legend.position = c(1, 1), legend.justification = c(1, 1), legend.background = element_rect(fill = 'white', color = 'transparent')) +
  labs(x = 'Anzahl der Simulationen') +
  labs(y = 'Gewinne %') +
  labs(col = NULL) +
    labs(title = title)

Modelle sind ein wesentliches Werkzeug des Risikomanagements. Wir werden später etwas näher auf den Modellbegriff eingehen. Ein risikotheoretisches Unternehmensmodell zeichnet sich dadurch aus, dass es alle oder aber wenigsten die wichtigsten Erfolgsgrößen (KPIS) stochastisch und eben nicht deterministisch modelliert. Streng genommen ist der Risikobegriff nicht konstitutiv für ein solches Modell und ist insofern verzichtbar.

Modellsegmente mit signifikantem negativem Einflusspotential auf die jeweilig betrachtete  Zielgröße lassen sich als Risiko für diese Zielgröße  beschreiben. Und entsprechend umgekehrt: Modellsegmente mit signifikantem positivem Einflusspotential auf  die jeweilige Zielgröße lassen sich als Chance für diese Zielgröße  beschreiben

Die so verwendeten Begriffe Risiko & Chance sind nunmehr lediglich einfache praktische  Begriffe, um das u.U. komplexe System von Modellsegmenten heuristisch zu strukturieren und zu prüfen, ob das Modell wesentliche Adäquatheitsbedingungen erfüllt. ZU beachten ist aber, dass die Einteilung in Risiken und Chancen nicht immer so eindeutig festgelegt werden kann, wie es auf den ersten Blick scheinen mag.

Für unsere Zwecke wollen wir folgende Definitionen nutzen:

In Anlehnung an Kaplan, S. & Garrick, B.J. nennen wir ein mögliches Ereignis 14 ein Risiko , wenn es im Realisierungsfall einen Schaden verursacht/ beinhaltet und sein Eintritt oder /und das Ausmaß des Schadens unsicher ist15 .

Ein Risiko ist quantifiziert, wenn sowohl seine Eintrittswahrscheinlichkeit als auch das Schadenausmaß im Eintrittsfall quantifiziert wurden. Ist die Eintrittswahrscheinlichkeit 1 und das Schadenausmaß des möglichen Ereignisses ein fixer Wert, so bezeichnen wir dieses mögliche Ereignis nicht als Risiko, sondern als einen (noch nicht realisierten) aber unvermeidbaren Schaden. Das Schadenausmaß kann verschieden bemessen werden, es kann sich beispielsweise um Personenschäden oder lediglich um monetäre Schäden handeln. Im Weiteren werden wir durchgehend annehmen, dass der Schaden immer ein monetär messbarer Schaden ist und dass das Schadenausmaß durch das monetäre Maß jeweils vollständig beschrieben ist . dass dies besonders auch aus ethischen Gründen nicht immer ausreichend ist, soll natürlich damit keineswegs bestritten werden. Die Beschränkung auf rein monetäre Maße dient allein der Themenfokussierung und dem Versuch, das ohnehin sehr vielfältige Thema an dieser Stelle ein wenig einzugrenzen. Im diskreten Fall besteht die Quantifizierung eines Risikos aus einer Liste von Wahrscheinlichkeiten pi  mit zugehörigen Schadenwerten Si

pi Si
0.750 0
0.100 1000
0.075 2500
0.050 5000
0.025 7500

Im einfachsten Fall („Risiko-Atom”) haben wir nur eine Wahrscheinlichkeit p mit 0<p<1 und einen Schadenwert S, das liefert die Liste:

pi Si
1-p 0
p S

Die Bedingung 0<p<1 besagt gerade, dass das Ereignis kontingent ist. Wir können das durch Tabelle 1 quantifizierte Risiko auch so in zwei Komponenten darstellen: (i) Tabelle der Wahrscheinlichkeiten p’i für den Schaden Si unter der Bedingung, dass das infrage stehende Ereignis eingetreten ist:

pi Si
1-p 0
p S
  1. Angabe zur Wahrscheinlichkeit  P des Eintretens des Ereignisses                                     P = 0.25 = 1 - 0.75. 
    Die p’i ergeben sich dabei wie folgt: p’i = pi / P

Die Tabellen 2 und 3 stellen einfache diskrete Wahrscheinlichkeitsverteilungen (W-Verteilungen) dar. Allgemeine W-Verteilungen lassen sich als Verallgemeinerung solcher einfachen Verteilungen verstehen. Weiter unten werden wir näher auf die allgemeine Definition von W-Verteilungen eingehen, eine Liste verschiedener Verteilungstypen aufführen, welche in der Quantifizierung von Risiken eine wichtige Rolle spielen sowie ihre Verwendung mittels der Software R erläutern. Die mittels Tabelle 1 bzw. Tabelle 3 & P gegebenen Quantifizierungen sind gleichwertig. Aus praktischen Gründen ist aber häufig die Form: Tabelle vom Typ Tabelle 3 plus Angabe einer Eintrittswahrscheinlichkeit vorzuziehen. Zudem wird hier offensichtlich, dass dies tatsächlich eine Quantifizierung im Sinne der obigen Definition der Quantifizierung eines Risikos ist. Anmerkung Wir haben hier implizit angenommen, dass wenn sich ein Ereignis eines fraglichen Typs realisiert hat, immer auch ein Schaden eingetreten ist. Diese Form der Modellierung ist nicht zwingend. Das Risikoereignis kann auch so definiert sein, dass bei seiner Realisierung nur mit einer bestimmten positiven Wahrscheinlichkeit ein Schaden eintritt. Die Trennlinie zwischen Ereignis und Schaden folgt häufig einer Konvention und ist in diesem Sinne nicht zwingend. Wir wollen jetzt etwas genauer sagen, dass ein Risiko durch die Angabe einer Eintrittswahrscheinlichkeit und einer Schadenhöhenverteilung quantifiziert wird. Kann das mögliche Ereignis auch mehrmals eintreten, so wird auch die Ereignisfrequenz durch eine Wahrscheinlichkeitsverteilung dargestellt. Der oben behandelte spezielle Fall, bei dem das Ereignis höchsten einmal (mit Wahrscheinlichkeit p) eintritt ist ein Spezialfall hiervon: Die Verteilung ist eine Bernoulli-Verteilung.

(1G. Box (1979), Robustness is the Strategy of Scientific Model Building, in Robustness in Statistics, R. L. Launer and G. N. Wilkinson, eds., Academic Press, pp. 201-236 : ) Jedes Modell ist eine vereinfachte Darstellung der Wirklichkeit. So arbeitet die Physik oft mit Modellen, in welchen von Reibungseffekten abgesehen wird. Bei der Verwendung solcher Modelle muss die Adäquatheit der Vereinfachungen im Hinblick auf die mit dem Modell verfolgten Ziele gesichert sein. Es muß angenommen werden können, dass „Reibungseffekte” die Modellergebnisse nicht zu weit von der Realität entfernt sein lassen. Typische Vereinfachungen von denen Modelle Gebrauch machen: - Annahme, dass bestimmte Aspekte unbedeutend sind und nicht beachtet werden müssen - Annahme, dass eine Größe über den Zeitverlauf, der im Modell analysiert wird, konstant bleibt. - Annahme, dass die stochastische Verteilung einer Größe bekannt ist. - Annahme, dass einige Teile des Modells von anderen unabhängig sind.

Welche heuristischen Regeln gelten bei der Erstellung eines Modelles? Wir möchten dazu hier folgende Postulate aufstellen: Konkrete Aufgabenstellung Wie oben erwähnt, ist ein Modell ein vereinfachtes Abbild der Realität. Deswegen sollte immer am Anfang ein konkretes Phänomen vor Augen sein, das Gegenstand der Modellierung ist. Dazu sollte eine Zielsetzung klar definiert sein: Welche Aspekte des Phänomens soll das Modell abbilden?

Andreas Kopp: REISE UND HEIMKEHR

Jedes Modell reduziert reale Phänomene auf Abstrakta, welche eine Vielfalt von Aspekten ausblenden oder strukturieren und damit oft stark vereinfacht wiedergeben. Nur so werden reale Phänomene intellektuell greifbar. Hat man geschickt abstrahiert, so findet man sich in der Welt besser zurecht und kann mitunter Ziele effektiver und effizienter erreichen. Ein Modell ist nicht falsch oder richtig, sondern gut oder weniger gut anwendbar. Die Güte eines Modells bemisst sich damit insbesondere auch nach den damit verfolgten Zielen, die wiederum selbst nur in abstrakter Form formulierbar sind. Auch wer ohne ein ausformuliertes Modell („ohne Modell“) arbeitet, nutzt vereinfachende Sichtweisen auf die Phänomene, nur tut er dies weniger bewusst und die Grenzen der Abstraktionen werden noch weniger reflektiert. Gerade im Risikomanagement haben wir es meist mit hochkomplexen, multidimensionalen Zusammenhängen zu tun. Daher ist es gerade hier wichtig, bewusst zu modellieren. Die vergleichende Bewertung der Güte alternativer Modelle kann entscheidend dazu beitragen, die Modellgüte zu steigern. So lässt sich auch herausarbeiten, ob die Reduktion auf ein kleines Bündel von Rechtecken ein geeignetes Modell sein kann, oder ob doch einige Rundungen genauer bemessen werden sollten.

Zur genauen Abgrenzung des Modellumfangs ist es oft hilfreich eine hermeneutische Spirale zu durchlaufen: Vor Erstellung des Modells wird der Gegenstand des Modells bereits möglichst genau umrissen. Ein erster Modellentwurf und dessen Anwendung kann dann Anlass geben, den Modellumfang einzugrenzen oder auszuweiten. Dies führt zu weiteren Modellentwürfen mit denen unter Umständen ähnlich zu verfahren ist.

Analyse der Daten

Im Rahmen der statistischen Inferenz ist ein erster (manchmal sogar der erste) Schritt Daten zu sammeln, zu bereinigen und sie zu analysieren. Dabei ist gerade die Datenbereinigung oft sehr zeitaufwendig. Die Idee ist, Muster in den Daten zu erkennen und sie zu benutzen, um einen geeigneten theoretischen Rahmen zu wählen. Neben den klassischen statistischen Methoden können hier insbesondere bei einem multidimensionalen Datenraum auch Methoden des Data Minings bzw. Machine Learnings zum Einsatz kommen. Wir werden in einem späteren Abschnitt auf solche erweiterten Analysemethoden näher eingehen. Wobei hier vorab schon gesagt sei, dass es sich hierbei lediglich um eine ersten grob en Überblick zu den schier immensen Möglichkeiten sein kann.

Entwurf und Kalibrierung des Modells

Der Modellentwurf basiert wesentlich auf dem vorgängigen Verständnis kausaler Abhängigkeiten. Die Berechtigung zu der Annahme der Abhängigkeiten, muß jeweils auch anhand vorliegender Daten geprüft werden. Ein erstes Modell wird entworfen und die darin enthaltenen Parameter werden aus den Daten geschätzt.

Test des Modells

Das kalibrierte Modell wird gegen die Realität getestet. Mögliche Methoden sind z. B.:

  • Back Testing: Das kalibrierte Modell soll in der Lage sein, punktuell die Historie aus den Daten zu reproduzieren.
  • Out-of-Sample Test: Das Modell kann Daten, die nicht in die Kalibrierung eingeflossen sind, reproduzieren.
  • Projektionen: Das Modell wird verwendet, um die Entwicklung der modellierten Größen in der Zukunft zu berechnen. Diese Entwicklung wird auf Plausibilität untersucht und die Trends mit den historischen Daten verglichen.

Verfeinerung des Modells:

Die Testergebnisse werden benutzt, um das Modell zu korrigieren und weiterzuentwickeln. Das korrigierte Modell wird neu kalibriert und getestet. Insgesamt lässt sich der Zyklus der Modellentwicklung und Modellverwendung auch wie folgt zusammenfassen:

  • Analyse und Identifikation der Problemstellung

  • Auswahl und Kalibrierung des Modells

  • Validierung der Modellparameter

  • Berechnungen mit dem Modell

  • Plausibilisierung der erhaltenen Ergebnisse

  • Kommunikation der Ergebnisse und Etablierung des Modells im Unternehmen

Ansätze für die Modellierung:

  • Deterministisch, stochastisch, szenariobasiert

  • Stetig oder diskret – in der Zeit oder im Ergebnisraum In der Praxis sind die meisten Modelle gemischt, d.h. sie enthalten deterministische und stochastische Anteile und sind teilweise diskret, aber teilweise auch stetig strukturiert.

  • Einsatzgebiete von Modellen

  • Verständnis der Risiken und Chancen der Unternehmung

  • Stochastische Prognosen

  • Unterscheidung zwischen Bewertungs- und Risikomodellen

  • Unterscheidung zwischen risikoneutralen und Real World Pfaden

  • Einfluss von externen Faktoren auf die Modellauswahl: Daten, Ressourcen,

  • Antwort auf Regulierungsanforderungen

Zusätzliche Faktoren können außerdem die Modellauswahl einschränken, nämlich

  • der Kostenaufwand des Modellbetriebs, insbesondere:

  • Kosten, um Daten zu sammeln und zu überprüfen

  • Kosten, um die Modellparameter zu schätzen

  • Kosten, um das Modell zu testen und zu validieren

  • Hardware- und Softwarekosten

  • Kosten, die mit der Kommunikation und der Etablierung des Modells im Unternehmen verbunden sind

  • Kosten, der Erfüllung von Aufsichtsvorgaben

Kerninhalte

  • Kenngrößenbasierte Datenanalyse und einfache Schätzer

  • Bilanzgrößen (Prämie, Reserve, Marktpreis)

  • Momente (insbesondere Erwartungswert und Varianz)

  • Quantile (inbesondere Median und Quartile)

  • Ausreißer

  • Maximum Likelihood Schätzer

  • Statistische Datenanalyse und Anpassung an Verteilungen: Verteilungstests

  • Abhängigkeiten: Korrelationen und Copulae

Es wird ein ganzheitlicher Ansatz verfolgt. Risiken werden nicht isoliert betrachtet und gesteuert. Vielmehr kommen der Berücksichtigung von Abhängigkeiten zwischen den einzelnen Risikokategorien und den Interaktionen der betroffenen Einheiten eine wesentliche Bedeutung zu.

Die Funktionen des Risikomanagements sind in die Aufbau- und Ablauforganisation des Unternehmens eingebettet.

  • Die Betrachtung von Risiken erfolgt zweiseitig, das heißt es wird zwischen den Gefahren aus negativen Entwicklungen und den Chancen aus positiven Entwicklungen abgewogen.

  • Risiken werden möglichst gemessen und zwar auch und gerade unter Berücksichtigung der Abhangigkeiten zwischen den Risiken.

- Auch nicht quantifizierbare Risiken werden berücksichtigt und dabei nach Möglichkeit komparativ bewertet.

- Aufbau- und Ablauforganisation werden in das Risikomanagement einbezogen.

ISO 31000 wurde von der International Organization for Standardization 2009 veröffentlicht mit dem Anspruch Prinzipien und Leitlinien zu formulieren für das Risikomanagent in Organisationen jeglicher Größe und jeglichen (Wirtschafts-)sektors.

Ergänzt wird dieser durch den Standard ISO/IEC 31010 - Risk management – Risk assessment techniques und die Richtlinie ISO Guide 73:2009 Risk management - Vocabulary.

Die privatwirtschaftliche Organisation COSO hat im Jahr 2004 ihren Standard für ein internes Kontrollsystem erweitert und dabei den Begriff des Enterprise Risk Management verwendet. Die Ratingagentur Standard & Poor’s hat seit dem Jahr 2005 in ihrem FinanzstärkeRating eine eigene Kategorie ERM eingeführt. Der Risikoappetit einer Organisation ist die Beschreibung von Risikozielen und Risikogrenzen auf Ebene der Gesamtorganisation. Er wird auf Ebene der Geschäftsleitung üblicherweise in einer oder weniger zentraler Grössen oder abstrakter Vorgaben formliert.

Beispiele hierfür können sein

  • Ein Zielrating

  • eine Solvenzquote

  • eine risikoadjustierte Ertragsgröße

Der Risikoappetit wird dann regelmäßig auf der Ebene von Risikokategorien oder Geschäftseinheiten quantitativ oder qualitativ ausformuliert. Die resultierende Gesamtheit von Größen und Vorgaben ergibt die Risikotoleranz. Auf dieser Abstraktionsebene steuert üblicherweise das Management des entsprechenden Geschäftsbereichs und werden oft auch die Einschätzungen durch Regulatoren, Wirtschaftsprüfern, Ratingagenturen und Verbraucherschützern vorgenommen.

Aus den komplexen Risikobewertungsmodellen ergeben sich dabei zunächst einmal Vorgaben formuliert als Eigenschaften einer Wahrscheinlichkeitsverteilung. Beispielsweise könnte vorgegeben sein, dass die Wahrscheinlichkeit für eine Belastung von mehr als 100 Mio EUR durch eine Naturkatastrophe kleiner als 0,5 Prozent sein soll. Um eine Steuerung effizient zu ermöglichen ist es dann notwendig Risikoindikatoren oder Risikometriken zu bestimmen. Das könnte im genannten Beispiel die maximale Versicherungssumme in eingeteilten Risikozonen sein. Für die operative Steuerung der Risiken auf Ebene der risikonehmenden Einheiten und deren Mitarbeiter müssen konkrete Risikolimiten vorgegeben werden, deren Einhalten unmittelbar überprüft werden kann. Dabei muss sichergestellt sein, dass bei Einhalten der Risikolimiten auch die vorgegebene Risikotoleranz erfüllt ist. Finanzielle Risiken: Finanzielle Risiken haben ihren Ursprung im Finanzbereich und betreffen unmittelbar die Finanzlage des Unternehmens. Dazu zählen Marktrisiko (gemeint ist der Finanzmarkt): ergibt sich aus Schwankungen in der Höhe und in der Volatilität der Marktpreise für Vermögenswerte, Verbindlichkeiten und Finanzinstrumente. Das Marktrisiko schließt das Währungskursrisiko und Zinsänderungsrisiko ein. Kreditrisiko: Risiko, das sich aufgrund eines Ausfalls oder aufgrund einer Veränderung der Bonität oder der Bewertung der Bonität von Wertpapieremittenten, Gegenparteien und anderen Schuldnern ergibt, gegenüber denen das Unternehmen Forderungen hat. Liquiditätsrisiko: bezeichnet das Risiko, dass ein Unternehmen auf Grund mangelnder Fungibilität nicht in der Lage ist, seinen finanziellen Verpflichtungen bei Fälligkeit nachzukommen.

Operationale Risiken: Operationales Risiko ist das Verlustrisiko, das sich aus der Unangemessenheit oder dem Versagen von internen Prozessen, Mitarbeitern oder Systemen oder durch externe Ereignisse ergibt. Versagen von internen Prozessen schließt Managementrisiken, Betrug, kriminelle Handlungen und fehlerhafte Systeme oder Prozesse ein. Unter Systemen sind neben der IT alle weiteren technischen Systeme gemeint (z. B. Poststraße, Zugangssysteme). Rechtsrisiken zählen ebenfalls zu den operationalen Risiken. Man unterscheidet zwischen externen Rechtsrisiken (unklare oder nachteilige Rechtsprechung oder Gesetzeslage) und internen Rechtsrisiken (unzureichende Beachtung der aktuellen Rechtslage). Beispiele: -IT-Risiken: Ausfall von IT-Systemen, Datenverlust, Datendiebstahl absichtliches Fehlverhalten: nicht autorisiertes Verhalten (Abweichung von Richtlinien, Datenschutzverstöße), dolose Handlungen (Diebstahl, Betrug) - Betriebsunterbrechungen: Standortausfall (Brand, Erdbeben), Streik, Personalausfall (durch Epidemien)

Managementrisiken:

  • mangelnde fachliche Qualifikation der Mitarbeiter
  • Schwächen in Aufbau- und Ablauforganisation

Strategische Risiken: Unter dem strategischen Risiko versteht man das Risiko einer nachteiligen Entwicklung des Unternehmens aufgrund strategischer Geschäftsentscheidungen oder deren Umsetzung. Ein strategisches Risiko entsteht beispielsweise, wenn  die Geschäftsstrategie unzureichend auf das politische, ökonomische oder technologische Umfeld ausgerichtet ist oder  Geschäftsentscheidungen einem geänderten Wirtschaftsumfeld nicht angepasst werden (unbewusste oder bewusste „Unterlassungsentscheidung”).

Systemische und spezifische Risiken

Systemische Risiken beeinträchtigen die Funktion oder das Fortbestehen eines ganzen Systems. Sie sind zu unterscheiden von spezifischen Risiken, von denen immer nur einzelne Spieler betroffen sind, ohne dass dadurch das System als Ganzes gefährdet ist. Systemische Risiken werden in der Regel von einem unerwarteten Initialereignis ausgelöst. Beispiele für systemische Risiken: ˆ Störungen der Funktionsfähigkeit des gesamten Finanzsystems (z. B. Spekulationsblasen, Kettenreaktionen im Finanzsektor, Zahlungsunfähigkeit großer Finanzinstitute oder von Staaten) ˆ Kriege ˆ Pandemien ˆ Naturkatastrophen ˆ Externe Rechtsrisiken (nachteilige Veränderungen der Gesetzeslage oder der Rechtsprechung) ˆ Politischer Kurswechsel Im Gegensatz dazu stehen die unternehmensspezifischen Risiken, die sich aus unternehmensspezifischen Besonderheiten und Entscheidungen ergeben. Sie betreffen unmittelbar nur das eigene Unternehmen. Solche Risiken sind beispielsweise ˆ Strategische Risiken ˆ Operationale Risiken (insbesondere interne Rechtsrisiken, IT-Risiken und Managementrisiken) ˆ Produktrisiken ˆ Projektrisiken

Ein- und zweiseitige Risiken

Viele Risiken sind gleichzeitig Chancen, d. h. die mögliche Abweichung von der Erwartung kann sowohl negativ als auch positiv sein. Beispiel Aktienanlage: Die Schwankung des Aktienkurses ist das Risiko. Dabei können sowohl Verluste als auch Gewinne entstehen. Je nach konkreter Anwendung wird auch bei solchen zweiseitigen Risiken unter Umständen nur die negative Seite (das „Downside”) betrachtet und bewertet, etwa in der Versicherungsaufsicht (Solvency II). Es gibt aber auch Risiken, die von sich aus nur eine negative Ausprägung haben können (also kein „Upside”), zum Beispiel operative Risiken. Operationelle Risiken unter Basel III. Es gibt keine genaue Unterscheidung zwischen Risiken auf einen und Chancen auf der anderen Seite. Eine effektive Vermeidung oder Verringerung von Risiken kann als Ergreifen einer Chance gewertet werden. Umgekehrt ist das Verpassen zu vieler Chancen selbst ein Risiko.

So kann es zu einer Frage der Perspektive werden, ob etwas als Chance oder als Risiko kategorisiert wird.

Worum geht es also? Es geht darum, die Tatsache zu akzeptieren, dass jedes Unternehmertum allumfassend Unsicherheiten ausgesetzt ist. Es geht außerdem darum, die Konsequenzen dieser Einsicht zu akzeptieren. Die offensichtlichste Konsequenz lässt sich wie folgt zusammenfassen: Entscheidungsprozesse sollten die Unsicherheiten aller in Frage kommenden Optionen widerspiegeln. Das wiederum bedeutet, dass die Entscheidungen durch eine explizite Berücksichtigung der stochastischen Natur der jeweiligen Angelegenheit untermauert werden müssen. Daher müssen statistische Methoden, Szenarioberechnungen und Simulationen als Instrumente für eine effektive Entscheidungsfindung eingesetzt werden. Und dies in einer ganzheitlichen Weise, denn Unsicherheit ist allumfassend und nicht auf bestimmte wenige Aspekte des unternehmerischen Handelns beschränkt. Es mag wie ein Widerspruch in sich klingen, aber beim Risikomanagement geht es nicht (einfach) um Risiken, sondern darum, auf die Tatsache zu reagieren, dass es im wirklichen Leben nichts oder zumindest fast nichts gibt, was streng deterministisch ist.

Das operationelle Risiko wird unter Basel III als dasjenige Risiko bezeichnet, welches zu Schäden aufgrund nicht adäquater interner Prozesse, nicht unzureichender Systeme oder fehlerhaften Handelns von Personen führt. Entscheidet sich die Bank im Rahmen des sogenannten Advanced Measurement Approach (AMA) für den Verlustverteilungsansatz (Loss Distributed Approach (LDA)), so ist R eine geeignete Basis für die durchzuführenden Analysen und Simulationen. Von dieser Möglichkeit R einzusetzen haben auch bereits viele Banken Gebrauch gemacht. Für AMA gibt es keine detaillierten Durchführungsvorschriften. In der Wahl der eingesetzten statistischen Werkzeuge beim LDA ist eine Bank daher relativ frei. So können die vielfältigen Möglichkeiten, die R bietet, genutzt werden, um eine realistische Einschätzung des operationellen Risikos zu modellieren. Für einen Überblick zu den regulatorischen Anforderungen vgl. .
Die wesentlichen Schritte einer LDA lassen sich wie folgt aufführen, vgl.
 Abschätzung der Schadenhöhen  Abschätzung der Schadenfrequenz  Kalkulation der Kapitalkosten  Konfidenzintervalle   ….. ausführen……

Unternehmen als offene Systeme

Ein Unternehmen ist kein geschlossenes System, sondern ist in vielfältiger Weise von seiner Umgebung abhängig und kann umgekehrt auch Einfluss auf diese Umgebung ausüben. Die hierbei auftretende Dynamik kann sehr komplex sein und Versuche diese darzustellen, sind auf Vereinfachungen angewiesen. Es ist notwendig, Modelle zu entwickeln, die einerseits nicht zu detailliert sind und andererseits alle wesentlichen Aspekte einbeziehen.

Nick von der Borch:Baumhaus

Der Prozess der Modellentwicklung und Modellpflege muss selbst dynamisch sein, um den sich ständig ändernden Bedingungen gerecht zu werden. Eine Vernachlässigung der externen Einflüsse ist in den allermeisten Fällen keine empfehlenswerte Option adäquater Komplexitätsreduzierung. Gerade bei der Berücksichtigung externer Einflüsse wird sehr deutlich, dass eine deterministische Betrachtung unzulänglich ist. Ein Vergleich der gegenwärtigen wirtschaftlichen Daten in Deutschland mit den Verhältnissen von z.B. 2018 unterstreicht diese Binsenweisheit. Dennoch orientieren sich viele Unternehmen vornehmlich an starren Szenarien, ohne zu versuchen, den Raum möglicher Entwicklungen möglichst ganz auszuloten. Auch dann, wenn probabilistisch gearbeitet wird, unterbleibt oft die explizite und umfängliche Berücksichtigung externer Faktoren.

Externe Faktoren lassen sich wie folgt gruppieren:

  • Political
  • Economic
  • Social
  • Technological
  • Environmental
  • Legal

Eine Analyse des Einflusses dieser Faktoren auf ein Unternehmen wird häufig PESTEL Analyse genannt.

Eine probabilistisch gefasste PESTEL Analyse als integraler Bestandteil der Risikomodellierung eines Unternehmens erscheint geboten.

Taxonomie der Risiken

Es gibt keinen zwingenden Grund sich an eine bestimmte vorgefertigte Risikotaxonomie zu klammern, stattdessen sollte jede Unternehmung eine spezifische maßgeschneiderte Taxonomie entwickeln, welche den Unternehmensspezifika gerecht wird und dabei im Laufe der Zeit natürlich auch gewissen Wandlungen unterworfen sein kann. natürlich muß eine Risikotaxonomie ggf. gewisse rechtliche Mindestanforderungen erfüllen und es gibt auch gewisse Einteilungskriterien, die sich in der Praxis in ihrer Grundstruktur als effizient erwiesen haben. Die Festlegung einer Risikotaxonomie ist ein wichtiger Schritt bei der Erstellung eines Risikomodelles und unterliegt damit den schon bei der Erläuterung des Modellbegriffes genannten Maßgaben:

  • Die Taxonomie ist zweckgeleitet
  • Die Taxonomie abstrahiert von Details, welche für den Modellzweck nicht wesentlich sind.

Wir werden im Weiteren solche allgemein anwendbaren taxonomischen Einteilungen aufzeigen. Grundsätzlich ist dabei zu beachten, dass eine Risikotaxonomie ein geeignetes heuristisches Hilfsmittel bei der Risikoidentifikation sein kann, indem sie dem Risikomanager in systematischer Weise auf bislang evtl. übersehene potentielle Risikoquellen hinweisen kann. Umgekehrt wird aber ein bereits erstelltes Risikoregister auch Hinweise auf eine notwendige Restrukturierung der Risikotaxonomie geben können. In dieser Weise lässt sich das Zusammenspiel von Risikotaxonomie und Risikoregister als ein hermeneutischer Prozess verstehen:

{mermaid} flowchart LR A[ Taxonomie] --> B(RiskRegister) B --> A[ Taxonomie]}

Wird diese Wechselwirkung von taxonomischem System und Erstellung von Risikoregistern nicht beachtet, so kann dies dazu führen, dass gewisse Risikoquellen permanent übersehen werden. Immanuel Kant: „Begriffe ohne Anschauungen sind leer, Anschauungen ohne Begriffe sind blind.”

Immmanuel Kant (1724 -1804)
  • Begriffe ohne Anschauungen ~ ein rein theoretische Taxonomie.
  • Anschauungen ohne Begriffe ~ Risikoregister welches sich nur aus der unmittelbaren Praxis herleitet.

Bei der Erstellung des Risikoregisters stellt sich grundsätzlich die Frage der Granularität: Wie fein ziseliert sollte die Einteilung der Risiken sein? Eine zu hohe Granularität unterschlägt leicht wichtige Informationen, so dass die Risikolandschaft nicht in ihrer wünschenswerten Genauigkeit dargestellt wird. Umgekehrt führt eine zu feine Einteilung schnell zu dem Problem, dass die Modellierung der Abhängigkeiten zwischen den Risiken äußerst schwierig werden kann und für einzelne Risiken ggf. weder Schadendaten noch belastbare Expertenschätzungen zur Verfügung stehen. Bei der Bestimmung einer angemessenen Granularität kann grundsätzlich wie folgt mit einer bei stufenweisen Verfeinerung vorgegangen werden. Zunächst sind zumindest 3 (sich überlappende) pragmatische Granularitätsanforderungen zu erfüllen

  • Mindestgranularität gemäß gesetzlicher Bestimmungen

  • Mindestgranularität gemäß der zu betrachtenden Organisationseinheiten (OE)

  • Mindestgranularität gemäß eines Zielgrößenkatalogs

Aus pragmatischer Sicht ist also eine Granularität zu wählen, welche gleichzeitig den gesetzlichen Mindestanforderungen entspricht und der Einteilung in OEs gerecht wird: Zudem sollte die Risikogranularität die Werte des Zielgrößenkataloges in der Weise berücksichtigen, dass eine Risikoquantifizierung auf Basis dieser Granularitätsstufe die Modellierung der Zielgrößen erlaubt. Neben den hier kurz skizzierten pragmatischen Richtlinien zur Bestimmung der Granularität, ist die Granularität grundsätzlich danach auszurichten, ob sie geeignet ist, eine -relativ zu anderen Granularitäten- präzise Quantifizierung der Risiken auf den verschiedenen Aggregationsniveaus liefert. Dabei ist insbesondere zu beachten, dass eine Verfeinerung der Granularität, also eine Betrachtung von mehr Einzelrisiken nicht immer zu einer Erhöhung der Präzision führt. Zum einen kann es sein, dass keine für die dann gewählte Granularitätsstufe benötigten spezifischen Daten oder Expertenschätzungen zur Verfügung stehen, zum anderen sind bei der Risikoaggregation eine erhöhte Zahl von Risikodependenzen zu beachten. Die hinreichend präzise Modellierung der Dependenzen erweist sich aber häufig als besonders schwierig, so dass man in diesem Modellierungsschritt oft mehr zerstört als man zuvor bei der Modellierung der Einzelrisiken vermeintlich hinzugewonnen hat.

Simulationen

Monte-Carlo Simulation

Monte Carlo Simulation (MCS) ist eine Alternative zu analytischen Methoden (also den im engeren Sinne mathematischen Methoden) zur Lösung komplexer praktischer mathematischer Fragestellungen. MCS lässt sich als ein approximatives Integrationsverfahren auffassen. Integration ist in ihren Anfängen nichts andere als eine Methode zur Berechnung von Flächen und Volumina.

MCS wurde im größeren Umfang zum ersten Mal von Stanislav Ulam und John von Neumann beim Los Alomos Prokekt eigestzt.Zuvor hat bereits Enrico Fermi über den einsatz dieser Simulationsmethode nachgedacht.

Enrico Fermi(1901-1954)

Stanislav Ulam (1909 - 1984)

John von Neumann (1903 -1957)

Das bereits der Schulmathematik bekannte Riemannsche Integral wurde immer weiter verallgemeinert und fand schließlich eine sehr weite Generalisierung in dem maßtheoretischen Integralbegriff. Wahrscheinlichkeitsraum (Ω,Σ,P) Ω : Ereignismenge Σ : Menge der messbaren Teilmengen P : Wahrscheinlichkeitsfunktion P: Σ => [0,1] Zufallsvariable X: Ω => IR ; messbar, d.h. für alle x aus IR: p{a aus Ω | X(a) < x} ist aus Σ Verteilungsfunktion F(X) : IR => [0,1] F(X): x |=> p{a aus Ω | X(a) < x}

Beispiel: Berechnung der Zahl Pi mittels Monte Carlo Simulation
Wir betrachten das Quadrat [-1,1] x [-1,1] mit der Fläche 2x2 = 4. In dieses Quadrat zeichnen wir einen Kreis mit dem Radius 1 und dem Mittelpunt in (0,0). Wir Werfen Pfeile auf das Quadrat in einer Weise alle Teilquadrate gleicher Größe jeweils die selbe Wahrscheinlichkeit haben getroffen zu werden. Wir werfen z.B. 10.000 Pfeile und zählen dann aus wie viele Pfeile innerhalb des Kreises liegen. Der Kreis hat die Fläche pi * 2^2 = pi. pi lässt sich somit wie folgt abschätzen Punkte im Kreis /10.000~ pi / 4 also pi ~ 4* Punkte im Kreis /10.000 In R lässt sich dass z.B. wie folgt programmieren:

Code zeigen
 set.seed(2023)   # setze Keim für Zufallsgenerator  
   nn<-20000      # Anzahl der Simulationen 
   x<-runif(nn,-1,1)       # erzeuge nn Zufallszahlen im Intervall [-1,1] 
   y<-runif(nn,-1,1) 
   xy<-matrix(c(x,y),ncol=2)  # erzeuge Matrix 
   im.Kreis<-xy[,1]^2+xy[,2]^2<1         
   # definiere Punkte im Kreis
   my.col<-1+1*im.Kreis                                 # Farbgebung der Punkte für Plot    
   Anteil.im.Kreis<-sum(1*im.Kreis)/nn            # Anteil der Punkte im Kreis 
   pi.schätzer<-Anteil.im.Kreis*4    
   # Schätzung von Pi
   prozentuale.abweichung<-round(100*((pi.schätzer-pi)/pi),3)      
   # definiere Abweichung in % 
   plot(xy,col=my.col,pch=".",xlab="x",ylab="y")                     # Erzeuge Plot 
   title(main=paste(" Pi mittels Simulation, n =",nn),     
         # Erzeuge Plot Über-/Unterschriften
         sub=paste("Abweichung in % = ",prozentuale.abweichung, "%"))  

Unter Verwendung des Paketes gganimate erstellen wir eine Animation, welche die Simulation von Pi als Approximationsprozess widergibt. Auf die Verwendung des Animationspaketes gehen wir an anderer Stelle noch etwas ausführlicher ein.

Die grauen Pfade zeigen den Approximationsprozess wie er sich unter Verwendung unterschiedlicher anfänglicher Keime zur Erzeugung der Zufallszahlen darstellt.

Der rote Pfad zeigt einen Approximationsprozess unter Verwendung eines bestimmten Typs der sogenannte Quasi-Monte-Carlo Simulation. Hier wird der Prozess so gestaltet, dass die “Zufallszahlen” keine Pseudo-Zufallzahlen sind , sondern systematisch so gewählt werden, dass der Zufallsraum möglichst gleichmäßig anbgedeckt wird. Das führtr dazu, dass die Approxmaition schon bei relativ niedrigen Schrittzahlen recht genaue Ergebnisse liefert.

Die Methoden der Quasi-Monte-Carlo Sumulation lassen sich beispielsweise unter Nutzung des R Paketes qrng ((Randomized) Quasi-Random Number Generators) in Anwendung bringen.

Code zeigen
 options(warn=-1)  
 library(qrng) 
 library(ggplot2) 
 library(cowplot) 
 iterations=1000 
 # Generiere Quasi-Zufallszahlen 
 G <- ghalton(iterations,2) 
 G<-data.frame( Qx<-G[,1],Qy <- G[,2]) 
 # Generiere Pseudo-Zufallszahlen   
 Px<-runif(iterations)     
 Py<-runif(iterations) 
 P<-data.frame(Px,Py)      
 par(mfrow=c(1,2)) 
 plot(Px,Py,xlab="",ylab="",main="Pseudo-Zufallszahlen",pch=15,cex=0.25,col="darkred") 
 plot(Qx,Qy,xlab="",ylab="",main="Quasi-Zufallszahlen",pch=15,cex=0.25,col="darkred") 

Die linke Abbildung zeigt Pseudo-Zufallszahlen welche unter der Annahme der auf [0,1] gleichverteilten und stochastisch unabhängigen Koordinaten erzeugt wurden. Die rechte Abbildung benutzt dagegen eine Quasi-Random Methode (hier Generalized Halton16). Man erkennt, dass bei Verwendung der Quasi-Random Methodik eine signifikant gleichmäßigere Verteilung der Punkte gegeben ist. Bei der Verwendung von Pseudo-Zufallszahlen werden deutlich höhere Simulationsschrittzahlen benötigt, um denselben Grad der Gleichmäßigkeit zu erreichen.

Dies führt zu einem teils deutlich besseren Konvergenzverhalten der Generalized Halton Methodik. Gerade bei multidimensionalen Betrachtungen kann es daher sinnvoll sein, neben der Monte-Carlo-Simulation auch Quasi-Monte- Carlo Methoden als mögliche Alternative zu testen.

Risikoaggregation

Im Risikonanagementist die Monte-Carlo Simulation (bzw. verwandte Simulationsmethoden) insbesondere für die Aggregation quantifizierter Einzelrisiken unabdingbar. Nachstehndes Video zeigt eine von der Instat GmbH erstellte Simulationsmaschine auf der Basis von R Shiny . Mittels dieses Werkzeuges kann direkt auf ein in MS Excel erstelltes Risikoregister zugreifen, in welchem die Einzelrisiken samt ihrer Quantifizierung aufgeführt werden.

Risikoaggregation mit R Shiny

Doppelte Monte-Carlo Simulation

Eine datenbasierte Monte-Carlo Simulation ist immer auch mit einer gewissen Parameterunsicherheit verbunden: Endlich viele Daten führen automatisch zu einer Unsicherheit der durch Fitting bestimmten Parameter. Die Parameterunsicherheit wird häufig nicht berücksichtigt, was zu einer starken Unterschätzung der Volatilität der Ergebnisse führen kann.
Eine zweidimensionale (oder Monte-Carlo-Simulation zweiter Ordnung) (kurz 2d-MS) kann die Unsicherheit der simulierten Werte (bei als fix angenommenen Parametern) mit der Unsicherheit bei der Bestimmung der Parameter in einem Simulationsprozess berücksichtigen. Eine 2d-MS lässt sich wie folgt beschreiben

  1. Die Parameter einer 2d-MS sollten in vier Kategorien unterteilt werden:
  • Fixe Parameter.
  • Variabilitäts-Parameter: Fixe Parameter für Verteilungen die nur die Variabilität abbilden.
  • Unsicherheits-Parameter: Parameter für die Verteilungen der Parameterunsicherheit (Verteilungen spiegeln nur die Unsicherheit wider)
  • Variabilitäts & Unsicherheitsparameter: Parameter, deren Verteilungen sowohl die Unsicherheit als auch die Variabilität widerspiegeln
  1. Ein Set von Unsicherheitsparametern wird simuliert.

  2. Das Modell wird unter Verwendung einer klassischen (eindimensionalen) Monte-Carlo-Simulation der Größe nv ausgewertet, wobei die unsicheren Parameter durch Schritt II fixiert wurden. Diese Simulation berücksichtigt die Variabilität in allen variablen Parametern, und führt zu einer pseudo-empirischen Dichtefunktion, die die Variabilität in der Population widerspiegelt, bedingt durch die unsicheren Parameter. Verschiedene Statistiken (z.B. der Mittelwert, die Standardabweichung,Perzentile) der resultierenden empirischen Dichtefunktion ausgewertet und gespeichert.

  3. Schritt II und III werden n mal wiederholt, wobei n die Simulationsschrittzahl zur Berücksichtigung der Parameterunsicherheit ist. Es wird jeweils das 50. Perzentil (Median) jeder Statistik als Punktschätzung dieser Statistik verwendet; die 2.5th und 97,5 Perzentile jeder Statistik werden verwendet, um ein 95% glaubwürdiges Intervall dieser Statistik zu bilden. Der Median der nu -Schätzwerte für jedes der geschätzten 101 Perzentile erlaubt uns eine kumulative Verteilung der Variabilität über ein Diagramm anzeigen. Diese Kurve ist umgeben von der 2,5. und 97,5. Perzentile, die aus den nu -Schätzungen für jedes der 101 Perzentile erhalten wurden.

Das R Paket mc2d enthält eine Reihe von Funktionen zur Implementierung und Durchführung von 2 dimensionalen Monte-Carlo Simulationen. Die nachstehende Abbildung ist direkt der Dokumentation zu diesem Paket entnommen und zeigt schematisch das Vorgehen einer 2 dimensionalen Simulation mit dem mc2d Paket:

[d-dimensionale Simulation]

DES (Discrete Event Simulation)

Discrete-Event Methoden sind besonders geeignet, wenn das Verhalten des untersuchten Systems beschrieben werden kann als eine Menge stochastisch beeinflusster, verbundener Komponenten , die ihre Zustände zu diskreten Zeitpunkten ändern. Ein ereignisdiskretes Simulationsmodell repräsentiert ein solches System als eine Menge verbundener, attributierter Entitäten, die Ereignisse und Aktivitäten ausführen und gegenseitig Informationen tauschen. Die typischen Anwendungen reichen von der Kommunikation bis hin zum Verkehrswesen und umfassen insbesondere die Simulation von technischer Systeme im weiteren Sinne. Im Risikonanagementfindet sich u.a. eine interessante Anwendung bei der Modellierung von Lieferketten.

Das R Paket simmer ermöglicht die relativ einfache Durchführung von Simulationen diskreter Ereignisse.

Code zeigen
options(warn=-1)
suppressMessages(library(simmer))
t0 <- trajectory() %>%
  seize("res0", 1) %>%
  branch(function() 1, c(TRUE, FALSE),
         trajectory() %>%
           clone(2,
                 trajectory() %>%
                   seize("res1", 1) %>%
                   timeout(1) %>%
                   release("res1", 1),
                 trajectory() %>%
                   trap("signal",
                        handler=trajectory() %>%
                          timeout(1)) %>%
                   timeout(1)),
         trajectory() %>%
           set_attribute("dummy", 1) %>%
           seize("res2", function() 1) %>%
           timeout(function() rnorm(1, 20)) %>%
           release("res2", function() 1) %>%
           release("res0", 1) %>%
           rollback(11)) %>%
  synchronize() %>%
  rollback(2) %>%
  release("res0", 1)

suppressMessages( library(simmer.plot))

get_palette <- scales::brewer_pal(type = "qual", palette = 1)
plot(t0, fill = get_palette)
Code zeigen
suppressMessages(library(simmer))
suppressMessages(library(parallel))

patient <- trajectory("patients' path") %>%
  ## add an intake activity 
  seize("nurse", 1) %>%
  timeout(function() rnorm(1, 15)) %>%
  release("nurse", 1) %>%
  ## add a consultation activity
  seize("doctor", 1) %>%
  timeout(function() rnorm(1, 20)) %>%
  release("doctor", 1) %>%
  ## add a planning activity
  seize("administration", 1) %>%
  timeout(function() rnorm(1, 5)) %>%
  release("administration", 1)

envs <- mclapply(1:100, function(i) {
  simmer("SuperDuperSim") %>%
    add_resource("nurse", 1) %>%
    add_resource("doctor", 2) %>%
    add_resource("administration", 1) %>%
    add_generator("patient", patient, function() rnorm(1, 10, 2)) %>%
    run(80) %>%
    wrap()
})


resources <- get_mon_resources(envs)
plot(resources, metric ="utilization")

Simulation diskreter Markov Ketten

Diskrete Markov Ketten können vielseitig im Risikomanagement verwendet werden. So haben sie beispielsweise einen festen Platz bei der Simulation von Ratingklassen eines Anlageportfolios. Hier können z.B. die von den Ratingagenturen veröffentlichten Credit Transistion Matrices genutzt werden, um die Entwicklung des Portfolios nach Ratingklassen zu simulieren.

Daneben können aber diskrete Markov Ketten in allen Bereichen angewendet werden, in welchen diskrete Zustandsveränderungen betrachtet werde und die Markov Eigenschaft also die Eigenschaft dass die Wechselwahrscheinlichkeiten nur von den jeweils letzten Zuständen abhängen.

Wir beschreiben den Umgang mit Markov Ketten an einem einfachen Beispiel. Angenommen wir haben nur drei möfgliche Zustände eines betrachteten Systems. Dann lassen sie die Übergangswahrscheinlichkeiten in ener 3x3 Matrix zusammenfassen , deren Zeilensummen jeweils 1 sind.

Code zeigen
M <- matrix(c( 0.6, 0.3, 0.1, 
                 0.2, 0.4,   0.4, 
                   0,   0.1,   0.9  ), nrow=3, ncol=3,byrow=T)
rownames(M)<-colnames(M)<-c("A","B","C")
suppressMessages(library(markovchain))
MC<-new("markovchain", states = rownames(M),
byrow = TRUE, transitionMatrix = M,
name = "RiskTypes")
MC
RiskTypes 
 A  3 - dimensional discrete Markov Chain defined by the following states: 
 A, B, C 
 The transition matrix  (by rows)  is defined as follows: 
    A   B   C
A 0.6 0.3 0.1
B 0.2 0.4 0.4
C 0.0 0.1 0.9
Code zeigen
#Diese Matrix liest sich so, dass z.B. der Zustand A mit einer Wahrscheinlichkeit 0.6 bei A verharrt, und mit einer Wahscheinlichkeit 0.3 in den Zustand B übergehen.

plot(MC, main="RiskTypes")

Code zeigen
initialState <- c(0, 1, 0)

after5periods <- initialState * (MC ^ 5)
after5periods 
           A      B       C
[1,] 0.12804 0.1893 0.68266
Code zeigen
# Simuliere 8 Transitionen

DEV<-matrix(initialState,ncol=3)
k <-1
while(k < 8){
   DEV<-rbind(DEV,matrix(initialState * (MC ^ k),ncol=3))
  k=k+1
}

# Plotte die Abfolge der Zustandswahrscheinlichkeiten

matplot(DEV,t="l",ylab="Wahrscheinlichkeiten",xlab="Step",col=2:4,lty=1,main= "MC Simulation",xlim=c(0,10))
legend(9, 0.95, legend=c("A", "B","C"),
       col=2:4,lty=1, cex=0.8,
        text.font=4)

Projektrisiken

Projektrisiken stellen häufig einen wichtigen Teil der Gesamtrisikolandschaft eines Unternehmens. Wie auch bei anderen komplexen Risiken sind Projektrisiken immer mindestens in dreieerlei Hinsicht zu betrachten:

  • Interne Risiken: Analyse der projektinternen Risiken und der Chanchen.

  • Analyse der Auswirkungen des Projektverlaufes auf die Gesamtrisikolandschaft.

  • Interdependenzen zwischen den Projekten

Natürlich lässt sich der letzte Punkt auch als Subkatekorie des zweiten Punktes auffsassen. Wegen der hervorstechenden Bedeutung der zeitlichen Risiken bei Projekten, kann es aber sinnvoll sein, die gegenseitigen Abhängigkeiten gesondert zu fassen.

Ein Projekt ist ein einmaliges Vorhaben mit einem möglichst genau definierten Ziel. Ein solches Vorhaben hat einen datierten Beginn und ein geplantes Enddatum.Um das Ziel zu in dem gesetzten Zeitrahmen zu erreichen, müssen Handlungen geplant und in einer bestimmten Reihenfolge umgesetzt werden.

Das Projektrisiko ist daher so zu modellieren, dass es die verschiedenen Interdependenzen und die zeitliche Abfolge der verschiedenen Projektaktivitäten berücksichtigt. Dies erfordert besondere Techniken.

Tabellarisch lassen sich die Fragen an das Projektmangement so zusammenfassen:

  1. Mögliche Abweichung der prognostizierten Projektkosten je Projekt:
  • Abschätzung der Abweichung in Höhe & Eintritts-Wahrscheinlichkeit

z.B. Abweichung + 25% oder mehr mit eine W. von 30% Abweichung + 50% oder mehr mit einer W. von 10% - Aufteilung möglicher Zusatzkosten / Einsparungen auf die geschätzte Projektlaufzeit Ggf. muss diese Aufteilung mit einer Fallunterscheidung vorgenommen werden. (B) Projektverzögerungen

  • Abschätzung der Verzögerung in Länge & Eintritts-Wahrscheinlichkeit Abweichung + 25% oder mehr mit eine W. von 30% Abweichung + 50% oder mehr mit einer W. von 10% Projektverzögerungen wirken sich im Projektportfolio aus: Mögliche Steigerung der Projektkosten, sowie auch Verzögerung anderer Projekte. Dies wird direkt oder indirekt in (A) abgeschätzt.

Projektverzögerungen haben Auswirkungen außerhalb des Projekt-Portfolios.

  1. Mangelnde Qualität der Projektergebnisse Projektverzögerungen haben Auswirkungen außerhalb des Projekt-Portfolios.

  2. Interdependenzen zwischen den Projekten

  • Überschwappen von Verzögerungen , Kostensteigerungen und Qualitätsmängeln

Projetinterne Risiken eines Typs lassen sich häufig zu Lasten anderer Projektrisiken mitigieren. So lässt sich z.B. das Qualitätsrisiko bzw. das Risiko des nicht vollständig erreichten Leistungsumfangs zu Lasten des Verzögerungsrisikos mitigieren.

Die Erfolgsgößen / Ziele

  • Qualität / Leistungsumfang
  • Projektdauer
  • Projektkosten

werden oft auch als magisches Dreieck des Projektmanagements bezeichnet.

Es gibt mehrerer R Pakete zum Thema Projektrisiken. So lassen sich beispielsweise sehr einfach Abhängigkeitsstrukturen darstellen:

Code zeigen
library(ProjectManagement)
prec1and2<-matrix(c(0,1,0,2,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0),nrow=5,ncol=5,byrow=TRUE)
prec3and4<-matrix(0,nrow=5,ncol=5)
prec3and4[3,1]<-3
dag.plot(prec1and2,prec3and4)

und Gant-Charts erzeugen:

Code zeigen
library(PlotPrjNetworks)
project1=data.frame(
task=c("Market Research","Concept Development","Viability Test",
"Preliminary Design","Process Design","Prototyping","Market Testing","Final Design",
"Launching"),
start=c("2015-07-05","2015-07-05","2015-08-05","2015-10-05","2015-10-05","2016-02-18",
"2016-03-18","2016-05-18","2016-07-18"),
end=c("2015-08-05","2015-08-05","2015-10-05","2016-01-05","2016-02-18","2016-03-18",
"2016-05-18","2016-07-18","2016-09-18"))
project2=data.frame(
from=c(1,2,3,4,5,6,7,8),
to=c(2,3,4,5,6,7,8,9),
type=c("SS","FS","FS","SS","FS","FS","FS","FS"),
delay=c(7,7,7,8,10,10,10,10))
GanttChart(project1,project2)

Die Verwendung R bietet sich insbesondere bei der stochastischen Simulation von Projektreisiken an. Stochastische Warteprozesse können z.B. mit der oben kurz umrissenen DES siumuliert werden.

Kritischer Pfad

Der kritische Pfad ist die längste Abfolge von Aufgaben, die zur Durchführung eines Projekts abgeschlossen werden müssen. Die Aufgaben auf dem kritischen Pfad werden als kritische Aktivitäten bezeichnet, denn wenn sie sich verzögern, verzögert sich der Abschluss des gesamten Projekts.

Die Ermittlung des kritischen Pfades wesentlich, da so folgende Aufgaben bgelöst werden:

  • Genaue Schätzung der Gesamtdauer des Projekts.

  • Identifikation kritischer Vorgänge zu identifizieren, die rechtzeitig abgeschlossen werden müssen und eine somit genaue Überwachung erfordern.

  • Bestimmung solcher Projektaufgaben verzögert werden können, ohne den Projektzeitplan zu beeinträchtigen, indem für jede Aufgabe ein Puffer berechnet wird.

  • Identifizierung von Aufgabenabhängigkeiten.

  • Ressourcenbeschränkungen und Projektrisiken.

  • Priorisierung von Aufgaben und Erstellung realistischer Projektzeitpläne.

  from to label time
1    1  2     A    3
2    1  3     B    2
3    1  4     C    5
4    2  4     D    1
5    3  4     E    1
6    4  5     F    3
Completion time:  8 
$graphAOA
DiagrammeR Graph // 5 nodes / 6 edges
  -- directed / connected / DAG / simple

  NODES / type: 5 vals - complete / label: 5 vals - complete & unique
    -- 2 additional node attributes (ES, LF)
  EDGES / rel: <unused>                                    info: `get_edge_df()`
    -- 3 additional edge attributes (label, time, TS)
  SELECTION / <none>
  CACHE / <none>
  GLOBAL ATTRS / 17 are set                 info: `get_global_graph_attr_info()`
  GRAPH ACTIONS / <none>
  GRAPH LOG / <49 actions> -> () -> () -> set_edge_attrs()

$schedule
  Name Time ESij LSij EFij LFij TSij Crit
1    A    3    0    1    3    4    1     
2    B    2    0    2    2    4    2     
3    C    5    0    0    5    5    0    *
4    D    1    3    4    4    5    1     
5    E    1    2    4    3    5    2     
6    F    3    5    5    8    8    0    *

$ComplTi
[1] 8

$CritAct
[1] "C" "F"

$AddSlacks
  Name FST CST
1    A   0   1
2    B   0   2
3    C   0   0
4    D   1   0
5    E   2   0
6    F   0   0

Stochastische Projekte - PERT Analyse

Unter Verwendung des Paketes critpath lassen sich stochastische Analysen zum Zeitablauf von Projekten erstellen.

Im folgenden Beispiel werden diese Projektdaten genutzt:

Code zeigen
library(critpath)
rmarkdown::paged_table(pertexample1)
library(critpath)
y <- solve_pathAOA(pertexample1, deterministic = FALSE)
Expected compl. time distribution: N( 31 , 1.490712 )
y
$graphAOA
DiagrammeR Graph // 8 nodes / 9 edges
  -- directed / connected / DAG / simple

  NODES / type: 8 vals - complete / label: 8 vals - complete & unique
    -- 2 additional node attributes (ES, LF)
  EDGES / rel: <unused>                                    info: `get_edge_df()`
    -- 4 additional edge attributes (label, time, timevar + 1 more)
  SELECTION / <none>
  CACHE / <none>
  GLOBAL ATTRS / 17 are set                 info: `get_global_graph_attr_info()`
  GRAPH ACTIONS / <none>
  GRAPH LOG / <73 actions> -> () -> () -> set_edge_attrs()

$schedule
  Name Time       Var ESij LSij EFij LFij TSij Crit
1    A  5.0 0.4444444  0.0  0.0  5.0  5.0  0.0    *
2    B  7.0 0.4444444  5.0  5.0 12.0 12.0  0.0    *
3    C  5.5 0.2500000 12.0 14.0 17.5 19.5  2.0     
4    D  5.5 1.3611111 12.0 13.5 17.5 19.0  1.5     
5    E  8.0 0.4444444 12.0 12.0 20.0 20.0  0.0    *
6    F  5.5 0.6944444 17.5 19.5 23.0 25.0  2.0     
7    G  6.0 0.1111111 17.5 19.0 23.5 25.0  1.5     
8    H  5.0 0.4444444 20.0 20.0 25.0 25.0  0.0    *
9    I  6.0 0.4444444 25.0 25.0 31.0 31.0  0.0    *

$ComplTi
[1] 31

$SDevTi
[1] 1.490712

$CritAct
[1] "A" "B" "E" "H" "I"

$AddSlacks
  Name FST CST
1    A 0.0 0.0
2    B 0.0 0.0
3    C 0.0 2.0
4    D 0.0 1.5
5    E 0.0 0.0
6    F 2.0 0.0
7    G 1.5 0.0
8    H 0.0 0.0
9    I 0.0 0.0
plot_graphAOA(solved = y)
plot_gantt(y)

plot_asap(y)

plot_alap(y)

plot_norm(y)

PERT_newprob(new_DT = 30, y)
Prob. of completion:  0.2511675 
$newDT
[1] 30

$prob_compl
[1] 0.2511675

Lieferketten- & Lagermanagement

Zum Thema Lagermangement unter Verwendung von R findet sich hier eine ausfühliche Darstellung:Inventory-calculations-using R

Eine einfache normalverteilte stochastische Vorhersage des Lagerbestandes lässt sich unter Verwendung des Paketes InvControl erstellen. Dabei werden folgende Inputvariablen genutzt:

  • m Erwatungswert der Nachfrage (u/time)

  • s Standardabweichung der Nachfrage (u/time).

  • k Orderkosten (fix)

  • c Verkaufspreis je Einheit (fix)

  • h Lagerhaltungskosten je Einheit

  • p Shortageksoten je Einheit

  • t Lead Time

  • b boolean - TRUE wenn das System Backorders zulässt

Code zeigen
library(InvControl) 
qrNormal(10,2.83,32,5,4,10,0.5,TRUE)
[1] "Optimal Order Quantity - Q* = 14.52"
[1] "Reorder Point - R = 4.59"
[1] "Total Average Cost (per time unit) - G(Q) = $ 106.46"

[1] 14.524893  4.590991

Das Paket ScPerf erlaubt es, die bekannten Modelle Economic Order Quantity model, Economic Production Quantity model , Newsboy und Wagner-Whitin. Es erlaubt auch den Bullwhip Effekt zu kalkulieren.

Das nachstehende Beispiel haben wir von Ralph Asher übernommen.

Das Beispiel zeigt den Aufbau eines Lieferketten-Netzwerkmodells, das Kunden auf Distributionszentren (DC) ausrichtet.

Code zeigen
options(warn=-1)

suppressMessages(library(tidyverse))
suppressMessages(library(magrittr))
suppressMessages(library(leaflet))
suppressMessages(library(ompr))
suppressMessages(library(ompr.roi))
suppressMessages(library(ROI.plugin.glpk))
suppressMessages(library(geosphere))
suppressMessages(library(measurements))
suppressMessages(library(maps))

# customer set are the largest cities in Texas
tx_cities <- maps::us.cities %>% dplyr::filter(country.etc=='TX') %>%
  #demand is proportional to population
  dplyr::mutate(demand = ceiling(pop/10))
#real quick leaflet of the cities
leaflet(tx_cities) %>% addTiles() %>% addMarkers()
Assuming "long" and "lat" are longitude and latitude, respectively
Code zeigen
#potential DC sets are Dallas, Amarillo, Houston, El Paso, San Antonio, Beaumont
tx_dc <- tx_cities %>% dplyr::filter(
  name %in% c('Dallas TX','Amarillo TX','Houston TX','El Paso TX','San Antonio TX', 'Beaumont TX'))

#create a distance matrix between the demand points and DCs
customer_dc_distmat <- geosphere::distm(
  x=cbind(tx_cities$long,tx_cities$lat),
  y=cbind(tx_dc$long,tx_dc$lat)) %>% 
  #convert from meters (default) to miles
  measurements::conv_unit('m','mi')
row.names(customer_dc_distmat) = paste0('Customer_',tx_cities$name)
colnames(customer_dc_distmat) = paste0('DC_',tx_dc$name)
#create a matrix that is the metric you wish to minimize or maximize.
#in this example, the metric is unit-miles
#just multiply the demand by city, into the distance from that city to each DC
unitmiles_customer_dc_matrix <- 
  tx_cities$demand * customer_dc_distmat
#define scalars for the number of Customers and DC options
customer_count <- nrow(tx_cities)
dc_option_count <- nrow(tx_dc)

#now make optimization model
dc_location_model <- ompr::MIPModel() %>%
  #binary decision variables: for each customer, which DC to align to?  Yes/no decisions, align Customer A to DC B yes, or no?
  add_variable(customer_dc_align[customerindex,dcindex],
               customerindex=1:customer_count,
               dcindex=1:dc_option_count,type='binary') %>%
  #binary decision variable: open a DC or no?
  add_variable(open_dc_binary[dcindex],dcindex=1:dc_option_count,type='binary') %>%
  #first constraint: each customer aligned to 1 and only 1 DC
  add_constraint(sum_expr(customer_dc_align[customerindex,dcindex],
                          dcindex=1:dc_option_count)==1,
                 customerindex=1:customer_count) %>%
  #add in "Big M" constraints that activate open_dc_binary when
  #any customers are aligned to a DC
  add_constraint(sum_expr(customer_dc_align[customerindex,dcindex],
                          customerindex=1:customer_count)<=
                   99999*open_dc_binary[dcindex],dcindex=1:dc_option_count) %>%
  
  #limit the number of opened DCs to EXACTLY 2
  add_constraint(sum_expr(open_dc_binary[dcindex],dcindex=1:dc_option_count)==2) %>%
  #set objective function, the sumproduct
  #of the customer/DC alignment integer variables,
  #and the matrix of the unit-miles for each customer/DC pair
  #sense is either "min" or "max", minimize or maximize the values?
  set_objective(sum_expr(customer_dc_align[customerindex,dcindex]*
                           unitmiles_customer_dc_matrix[customerindex,dcindex],
                         customerindex=1:customer_count,
                         dcindex=1:dc_option_count),sense='min')

solution <- ompr::solve_model(dc_location_model,with_ROI(solver = "glpk"))

customer_dc_alignment_df <- get_solution(solution,customer_dc_align[customerindex,dcindex]) %>%
  dplyr::filter(value==1) %>%
  dplyr::select(customerindex,dcindex) %>%
  #add in customer and DC names and lat/long
  dplyr::mutate(Customer_City = tx_cities$name[customerindex],
                Customer_Lat = tx_cities$lat[customerindex],
                Customer_Lng = tx_cities$long[customerindex],
                DC_City = tx_dc$name[dcindex],
                DC_Lat = tx_dc$lat[dcindex],
                DC_Lng = tx_dc$long[dcindex]) %>%
  dplyr::select(Customer_City,Customer_Lat,Customer_Lng,
                DC_City,DC_Lat,DC_Lng)


dc_cities_selected <- unique(customer_dc_alignment_df$DC_City)
dc_cities_selected
[1] "Dallas TX"  "Houston TX"
Code zeigen
#leaflet: color customer city by aligned DC.
customer_dc_alignment_df %<>% dplyr::mutate(
  leaflet_dc_color = dplyr::if_else(DC_City==dc_cities_selected[1],'red','blue'))
leaflet(customer_dc_alignment_df) %>% addTiles() %>%
  addCircleMarkers(lat=~Customer_Lat,lng=~Customer_Lng,
                   color=~leaflet_dc_color,radius=3)

Expertenschätzungen

Eingrenzung des Themas Unter Risikoanalyse verstehen wir die stochastische Quantifizierung bereits identifizierter Risiken durch Wahrscheinlichkeitsverteilungen (W-Verteilungen) sowie die Aggregation quantifizierter Einzelrisiken zu einem Gesamtrisiko mittels Monte-Carlo-Simulation (MCS). Anders als für viele Finanzmarkt- und Versicherungsrisiken stehen insbesondere für operationale Risiken meist zu wenig oder keinerlei relevante historische Daten zur Verfügung, um W-Verteilungen mit einem hinreichenden Signifikanzniveau anzupassen. Ein Ignorieren solcher Risiken mit dem Verweis auf ihre Nicht-Quantifizierbarkeit führt unweigerlich zu einer systematischen und unter Umständen dramatischen Unterschätzung des Gesamtrisikos und verbietet sich damit von selbst. Deshalb werden in solchen Fällen Expertenschätzungen benötigt. Expertenschätzungen können im Verbund mit historischen Daten zur Bildung einer Bayes-Risikofunktion verwendet werden. Ein solches Verfahren ist insbesondere dann sinnvoll, wenn es zwar gewisse relevante historische Daten gibt, diese aber nicht ausreichen, eine Verteilung mit hinreichender Güte anzupassen. Zudem lassen sich häufig Marktschäden als Quantifizierungsbasis nutzen. Diese Marktschäden müssen allerdings so skaliert werden, dass sie den spezifischen Verhältnissen des jeweiligen Unternehmens gerecht werden. Für diese Skalierung sind wiederum häufig Expertenschätzungen notwendig. Expertenschätzungen unterliegen unweigerlich den üblichen Verzerrungen wie sie etwa durch den Ankereffekt oder dem Rückschaufehler verursacht werden . Diesen Verzerrungen kann zum Bespiel mit der Delphi-Methode teilweise erfolgreich begegnet werden. Ziel der Delphi-Methode ist es, während mehrerer Experten-Befragungsrunden eine Konvergenz der Einzelprognosen zu erreichen, ohne dass sich die Experten in gemeinsamen Diskussionen gegenseitig beeinflussen. Um das Thema einzugrenzen, betrachten wir hier keine Einbeziehung von Marktschäden und keine Bildung von Bayes-Risikofunktionen. Ebenso bleiben auch weitere Methoden zur Überlagerung differierender Expertenmeinungen unberücksichtigt. Wir wollen uns dagegen auf folgende Analyseschritte beschränken:  Wahl des Verteilungstyps für ein Einzelrisiko  Parametrisierung der Verteilung eines Einzelrisikos  Modellierung der Abhängigkeiten bei der Risikoaggregation   Expertenschätzungen weisen vor allem folgende Schwachstellen auf:  Der einzelne Experte ist sich meist unsicher mit der jeweiligen Einschätzung und verschiedene Experten können zu deutlich abweichenden Schätzungen gelangen.  Selbst wenn der Experte aus jahrelanger Erfahrung ein sicheres „Gefühl” zu dem jeweiligen Risiko besitzt, fällt es ihm oft schwer, dies in eine mathematische Sprache zu übersetzen.  Experten schätzen meist unbewusst nur auf Grund der eigenen Erfahrungswerte und verfügbaren Informationen (Verfügbarkeitsheuristik)

Zudem lassen sich diese Probleme in der Praxis selten präzise voneinander trennen. Die für die Risikoaggregation notwendige Einschätzung der Abhängigkeiten ist dabei noch schwieriger als die Expertenschätzungen für Einzelrisiken. Für die Praxis ist es notwendig, die sachgerechte (Teil-)Kalibrierung von Einzelrisiken und der Abhängigkeiten mittels Expertenwissens zu ermöglichen, ohne dass dabei spezielle Stochastik-Kenntnisse notwendig sind. Hierzu sollen nachfolgend einige Anregungen geben werden. 2 Wahl eines Verteilungstyps Zur Modellierung von Risiken steht eine große Auswahl von Verteilungstypen zur Verfügung. Es ist es sinnvoll, in der Modellierungssoftware einen speziellen Katalog von Verteilungen für Expertenschätzungen vorzuhalten. Prinzipiell lässt sich jede Verteilung, welche sich zur Risikomodellierung nutzen lässt, auch durch eine Expertenschätzung kalibrieren. Praktisch sind dem allerdings enge Grenzen gesetzt. Die Parametrisierung der Verteilung muss über die Schätzung von Werten erfolgen, welche dem Experten intuitiv zugänglich sind und die Verteilung unmittelbar nachvollziehbar beeinflussen. Die Schätzung des EW sowie der Varianz erweisen sich oft als besonders schwierig und wenig intuitiv. Der EW wird oft unbemerkt mit dem häufigsten Wert verwechselt und kann durch seltene Extremereignisse stark beeinflusst sein. Dieses Phänomen wird insbesondere bei den Schadenhöhenverteilungen deutlich. Die Varianz ist per se intuitiv schwierig zugänglich. Wir betrachten hier die Verteilungen für die Schadenfrequenzen sowie für die Einzelschadenhöhen getrennt. 2.1 Frequenzverteilungen Ideale Frequenzverteilungen im Rahmen von Expertenbefragungen sind die Poissonverteilung und die Binomialverteilung. Beide Verteilungen sind einfach zu interpretieren. Meist ist es hinreichend, sich der Poissonverteilung zu bedienen, die nur einen Parameter benötigt, für die lediglich die zu erwartende Frequenz zu schätzen ist. Nur wenn der Experte eine deutlich kleinere oder deutlich größere Varianz als bei der Poissonverteilung – bei der die Varianz gleich dem Erwartungswert (EW) ist – vermutet, sollte die Binomialverteilung (Varianz < EW) bzw. die Negative Binomialverteilung (Varianz <> EW) genutzt werden. Oft sieht man ein im Vergleich zu den genannten Frequenzverteilungen gehäuftes Ausbleiben von Ereignissen (Frequenz =0). In solchen Fällen kann die Verwendung sogenannter zero-inflated Verteilungen sinnvoll sein. Hier sind vom Experten der EW sowie die Wahrscheinlichkeit der Frequenz 0 abzuschätzen. Die Abbildung zeigt Histogramme einer Poissonverteilung und einer zero-inflated Poissonverteilung mit einem EW von jeweils 3.

Code zeigen
rzipois<-
function(n,mean,pz){
  rpois(n, lambda = mean/(1-pz)) * rbinom(n, prob = 1 - pz, size = 1)}
  
par(mfrow=c(1,2))
  hist(rzipois(5000,mean=3,0.1),breaks=50,col="darkred",main="")
 hist(rpois(5000,lambda = 3),breaks=50,col="darkred",main="")

Eine kleine (unvollständige) Taxononomie der für das Risikonanagementwichtigen Verteilungen ist in den folgenden Abbildungen gegeben.

[Frequenzverteilungen]

[Schadenhöhenverteilungen]

Kann sich das fragliche Risiko in dem betrachteten Zeithorizont maximal einmal realisieren, ist lediglich eine Eintrittswahrscheinlichkeit (Bernoulli-Schema) zu schätzen. So schwierig es im Einzelfall sein mag, die Frequenzen bzw. Wahrscheinlichkeiten richtig einzuschätzen, so ist zumindest die Parametrisierung dieser Frequenzverteilungen vergleichsweise einfach zu verstehen. Das ist bei den Schadenhöhenverteilungen anders, weshalb man sich dort bei Expertenschätzungen häufig hierfür besonders ausgesuchter Verteilungen bedient. 2.2 Schadenhöhenverteilungen Intuitiv besonders leicht zu greifende Verteilungen sind die Gleichverteilung sowie die Dreiecksverteilungen. Sind nur Minimum und Maximum abschätzbar und sonst keinerlei Einschätzung der W-Verteilung möglich, so kann es sinnvoll sein, die Gleichverteilung zu nutzen. Lässt sich neben Minimum und Maximum auch der wahrscheinlichste Wert (Modus) einschätzen, so bietet sich die Dreieckverteilung an. Als Alternative zur Dreieckverteilung kann in diesen Fällen auch die Pertverteilung genutzt werden. Die Dreieckverteilung läuft beim Modalwert spitzer zu und an den Rändern flacher aus. Am Beispiel (Min=20, Modus=50, Max=80) ergibt sich ein Vergleich der Dichten dieser beiden Verteilungen wie hier abgebildet. Wobei wir die Pertverteilung mit zwei verschiednen Shapeparametern (2 & 4) darstellen.

Code zeigen
suppressMessages(library(mc2d))
curve(dpert(x,20,50,80), 0, 100, xname = "x",col="darkblue",lwd=3,ylim=c(0,0.035),ylab="")
par(new=TRUE)
curve(dpert(x,20,50,80,shape=2), 0, 100, xname = "x",col="lightblue",lwd=3,ylim=c(0,0.035),ylab="")
par(new=TRUE)
curve(dtriang(x,20,50,80), 0, 100, xname = "x",col="darkred",lwd=3,ylim=c(0,0.035),ylab="Density",main="Vergleich von Pert & Dreieckverteilung")
legend('topright', c("Pert (4)","Pert (2)","Dreieck") , 
       lty=1, col=c('darkblue','lightblue', 'darkred'), bty='n', cex=1,lwd=3)

Obwohl R bereits ohne Nutzung besonderer Packages eine breite Vielfalt von Plotmöglichkeiten bietet, so lässt sich diese besonders durch die Nutzung des ggplot2 Pakets noch erheblich ausweiten. Nachstehend wenden wir das ggplot2 Paket in Verbindung mit dem Paket ggridges an, um einen sogenannten Ridgeplot der Dichten dieser drei Verteilungen zu erstellen. Jetzt für die Verteilungen mit min=10, mode=20 und max=80.

Die Parameter der Dreiecksverteilung und der Pertverteilung können ihrerseits als Gleichverteilung, Dreiecksverteilung oder Pertverteilung modelliert werden, um so z.B. die Unsicherheit der Parameterschätzung wiederzugeben. Die Abbildung vergleicht die Histogramme einer Dreiecksverteilung (Min =100, Mode=200, Max=500) mit einer Simulation, bei der das Maximum als Gleichverteilung zwischen 500 und 600 modelliert wurde.

Neben den genannten Verteilungen ist es aber auch bei Expertenschätzungen oft notwendig, weitere Verteilungstypen in Betracht zu ziehen. Hierzu gehören typischerweise die Gamma-, die Lognormal-, die Weibull- und Extremwertverteilungen. Der Verteilungstyp kann sich dabei im Einzelfall aus bestimmten heuristischen Prinzipien oder durch Vergleich mit ähnlich gelagerten und bereits quantifizierten Risiken ergeben. So ist z.B. eine (verschobene) Lognormalverteilung nur dann ein geeigneter Kandidat, wenn ein Minimum existiert und eine rechtsschiefe Verteilung ohne Maximum bzw. ein sehr hohes theoretisches Maximum möglich ist, welches um ein Vielfaches größer ist als das 95% Quantil.

Setzt sich ein Risiko aus vielen ähnlich großen unabhängigen Einzelrisiken zusammen, so ist die Normalverteilung ein guter Kandidat.

Verteilungen mit maximaler Entropie

Eine wichtige Methode der Verteilungswahl besteht darin, diejenige Verteilung zu wählen, welche die durch die Expertenschätzungen vorgegebenen Bedingungen erfüllt und dabei ein Minimum an Information enthält. Die Verteilung soll somit lediglich die in der Schätzung enthaltende Information enthalten und keinerlei weitere implizite Annahmen wiederspiegeln. Ein Minimum an Information bzw. ein Maximum von Unsicherheit wird mathematisch durch das Entropiemaß beschrieben. Der Entropiebegriff stammt ursprünglich aus der Thermodynamik und wurde von Ludwig Boltzmann eingeführt. Seitdem fand er in verschiedenen Abwandlungen Anwendungen in der Informationstheorie, der Statistik aber auch in der reinen Mathematik. Die hier angesprochene Entropie von W-Verteilungen geht auf  E.T. Jaynes zurück und wurde in 1957 eingeführt. Allerdings kann nicht für alle Klassen von Verteilungen ein Vertreter mit maximaler Entropie gefunden werden. Die nachstehende Tabelle gibt eine Auswahl verschiedener, relevanter Szenarien:

Variable(n) der Expertenschätzung Verteilungstyp
Erwartungswert Exponentialverteilung
Minimum = 0  & Quantil Exponentialverteilung
Minimum > 0  & Quantil Verschobene Exponential- sowie Gammaverteilung
Minimum & Maximum Gleichverteilung
Minimum, EW, Maximum Allgemeine Betaverteilung
EW & Standardabweichung Normalverteilung
Minimum, EW, Maximum, Standardabweichung Allgemeine Betaverteilung
EW der Frequenz Poissonverteilung

Diese Tabelle ist wie folgt zu verwenden:

Schätzt der Experte z.B. ein Risiko mit einem Minimum, welches größer als Null ist und einen Quantilswert hat, so sind eine verschobene Exponentialverteilung und eine Gammaverteilung diejenigen Verteilungen, welche bei Erfüllung der durch die Schätzung gegebenen Bedingung ein Maximum an Entropie besitzen, also keine weitere Information enthalten. Hält man sich also an das Prinzip der maximalen Entropie, so ist eine solche Verteilung zu Modellierung zu nutzen.

Das Prinzip unter Berücksichtigung von Beschränkungen eine Verteilung mit maximaler Entropie zu wählen, lässt sich als Verallgemeinerung des von Pierre-Simon Laplace in 1812 eingeführten Indifferenzprinzips interpretieren. Das Indifferenzprinzip besagt, dass bei k=2,3,4… unterscheidbaren und sich gegenseitig ausschließenden möglichen Ereignissen die Eintrittswahrscheinlichkeit jedes Ereignisses ohne Vorliegen weiterer Informationen genau jeweils 1/k beträgt. Auch lässt sich dieses Prinzip als ein Spezialfall von Ockhams Rasiermesser[1] interpretieren.

Für den Fall, dass der Experte sich eine genauere Bestimmung der Verteilung zutraut, kann es auch angemessen sein, die Verteilung als Histogrammverteilung zu bestimmen. Dazu verteilt der Experte die Wahrscheinlichkeitsdichte auf die Klassen eines Histogramms. Hierdurch können dann auch ungewöhnliche  z.B. multimodale Verteilungsformen in Anwendung kommen. Die Abbildung zeigt ein Beispiel einer solchen durch den Experten maßgeschneiderten Verteilung.

SHELF R-Shiny GUI: “Roulette”

Hierzu wurde das Paket SHELF genutzt, welches auch den Zugang zu einer R Shiny Anwendung bietet.

Nachfolgende Abbildung zeigt die Nutzung dieser Anwendung zum Fitten einer stückweise linearen Verteilungsfunktion, unter Vorgabe einer kleinen Liste geschätzter Quantile:

SHELF R-Shiny GUI: General

Durch einfaches Klicken auf die Abbildungen kommt man direkt zu dieser Anwendung auf der Webseite der Sheffield Elicitation Framework (SHELF), Copyright © 2022 .

** Parametrisierung der W-Verteilungen von Einzelrisiken

Während die typischen Schaden-Frequenzverteilungen -wie oben schon kurz beschrieben- intuitiv relativ einfach zu fassen sind und insoweit auch gut durch Experten kalibriert werden können, ist die Situation bei den Schadenhöhenverteilungen komplexer.

Die Konzepte Minimum, Modus und Maximum sind leicht zu verstehen und ihre Schätzung ist im Regelfall einfacher als beispielsweise die Schätzung des EW`es und der Standardabweichung (STABWN). Daher eignen sich die Dreieckverteilung und die Pertverteilung besonders gut zur Modellierung mittels Expertenschätzungen. Allerdings sind diese Verteilungen nicht für alle Risiken geeignet. Stattdessen braucht man zusätzliche Verteilungsfunktionen, wie z.B. eine Lognormal-, Weibull- oder eine Pareto-Verteilung.

Solche Verteilungen können mittels Expertenschätzungen am besten über ihre Quantile parametrisiert werden. Hierbei sollte über einen Liste typischer W-Verteilungen  ein Quantil-Fitting ausgeführt werden.  Mit einer Schätzung von zwei oder drei Quantilwerten lassen sich meist gleich mehrere W-Verteilungen mittels der Methode der (gewichteten) kleinsten Quadrate gut anpassen. Typische Quantile für solche Schätzungen sind etwa der Median (50%), 75% („4-jähriges Ereignis”) und 90% („10-jähriges Ereignis”).

Die Verteilung mit der besten Anpassung an die geschätzten Quantile ist dann typischerweise ein guter Kandidat zur Modellierung des betrachteten Risikos. Zumindest bei den größeren Risiken sollte der Experte sich aber die von ihm kalibrierten Verteilungen auch in Plots anschauen, um dann ggf. auf eine andere Verteilung auszuweichen.

Für sehr spezielle Risiken sind gesplittete Verteilungsfunktionen notwendig. Gesplittete Verteilungen sind solche Verteilungen, bei denen bis zu einer bestimmten Schadenhöhe z.B. mittels einer Erlang-Verteilung modelliert wird, um dann ab einem bestimmten Exzesspunkt in eine Extremwertverteilung, wie z.B. in die Pareto-Verteilung überzugehen.

Expertenschätzungen von Risikoabhängigkeiten

Die adäquate Aggregation von Risiken ist ein wesentlicher Baustein der analytischen Tätigkeit im Enterprise Risk Management (ERM). Nachdem man den Katalog der zu quantifizierenden Einzelrisiken festgelegt und die Risiken mittels Frequenz- und Schadenhöhenverteilungen modelliert hat, verbleibt die Frage der sachgerechten Aggregation dieser Risiken[1].

Die Aggregation der Risiken wird in der Praxis meist mittels Monte-Carlo-Simulation oder verwandter Verfahren wie beispielsweise Latin-Hypercube oder Sobol Simulationen bestimmt. Nachstehend werden wir vereinfachend immer von der Monte-Carlo-Simulation (MCS) sprechen.

Ziel der Aggregation ist es, für die jeweils betrachtete Aggregationsebene eine W-Verteilung des Gesamtrisikos auf dieser Ebene zu schätzen. Eine solche Ebene kann z.B. ein wohldefinierter separierbarer Teil der unternehmerischen Tätigkeit sein. Das jeweilige Gesamtrisiko setzt sich im Regelfall aus einem Katalog von Einzelrisiken (Risikoregister) zusammen, welche zumeist weder voneinander unabhängig sind, noch in deterministischer Weise zusammenhängen. Bevor eine MCS durchgeführt werden kann, ist der Zusammenhang zwischen den Risiken möglichst genau zu erfassen und quantitativ zu bemessen.

Kausalabhängigkeiten und Korrelationen

Gibt es einen klaren und identifizierbaren funktionalen Zusammenhang, so sollte dieser als solcher auch in der MCS berücksichtigt werden. Hierzu können z.B. auch sogenannte Treiber in das MCS Modell aufgenommen werden. Treiber sind stochastische Einflussfaktoren, welche in die Modellierung verschiedener Risiken mit einfließen. Die Treiber selbst sind dagegen keine Risiken im Sinne des MCS Modelles.

So kann etwa Inflation in der expliziten Form des BIP-Deflators ein Treiber sowohl für das Risiko steigender Rohstoffpreise als auch für das Risiko fallender Umsätze sein. Der Einfluss des BIP-Deflators auf diese beiden Risiken kann typischerweise über entsprechende Historien abgeschätzt werden. Im Allgemeinen hat ein Treiber keinen deterministischen, sondern lediglich einen stochastischen Einfluss auf das Risiko. So wird der BIP-Deflator mit den relevanten Rohstoffpreisen korrelieren, sie aber nicht vollständig bestimmen.

Am Beispiel zweier Risiken mit einem gemeinsamen Treiber lässt sich die Modellierung solcher treiberbasierten Risiken wie hier

schematisch darstellen. Neben dem mittels der Funktionen F1, F2 modellierten Einfluss des Treibers auf diese Risiken, können die Risiken natürlich weiteren Einflussfaktoren ausgesetzt sein.

Ist allerdings der Einfluss des Treibers hinreichend dominant, so wird man diesen im Allgemeinen gut mittels eines Scatterplots der simulierten Risiken erkennen können.

[1] Es wird angenommen, daß mit einer ausgearbeiteten Risikotaxonomie gearbeitet wird und die Granularität der Risikomodelle vorgegeben ist. In der Praxis kann es aber sinnvoll sein, die gewählte Risikotaxonomie auch vor dem Hintergrund der Simulationsergebnisse neu zu definieren.

Neben dem mittels der Funktionen F1, F2 modellierten Einfluss des Treibers auf diese Risiken, können die Risiken natürlich weiteren Einflussfaktoren ausgesetzt sein.

Ist allerdings der Einfluss des Treibers hinreichend dominant, so wird man diesen im Allgemeinen gut mittels eines Scatterplots der simulierten Risiken erkennen können.

Auf diese Weise können Expertenschätzungen gewisser Variablen der Funktionen F1, F2 die Risikoabhängigkeit modellieren, ohne dass dabei Korrelationen direkt geschätzt werden.

Eine solche (quasi-) kausale Modellierung ist im Allgemeinen einer Modellierung unter Verwendung von Korrelationen vorzuziehen. Dies gilt auch deshalb, weil selbst enge kausale Zusammenhänge nicht notwendig zu hohen Korrelationen führen müssen. So ergibt sich für die Fehleranfälligkeit komplexer technischer Anlagen (z.B. Kraftwerke) häufig ein U-förmiger Zusammenhang zum Alter der Anlage (auch bekannt als Badewannenkurve): Eine relativ hohe Anfälligkeit bei sehr jungen und bei älteren Anlagen sowie eine reduzierte Anfälligkeit für mittelalte Anlagen. Trotz eines klaren Zusammenhangs zwischen Alter und Fehleranfälligkeit kann der Korrelationskoeffizient (lineare Korrelation oder Rangkorrelation) wegen der U-Form des Zusammenhanges sehr klein sein.

Umgekehrt gilt natürlich, dass eine hohe Korrelation zwischen zwei Größen nicht notwendig auf einen direkten Kausalnexus hinweist. Dennoch erleben wir alle fast täglich (z.B. auch in der politischen Diskussion) den Fehlschluss von Korrelationen auf einen direkten Kausalzusammenhang zwischen den betrachteten Größen. Es gilt auch umgekehrt, dass nicht jeder Kausalzusammenhang zu einer hohen Korrelation der betrachteten Größen führt. Gleichwohl ist aber festzuhalten: Korrelationen sind ein Indiz dafür, dass die betrachteten Größen sich gegenseitig beeinflussen oder gemeinsam von anderen Größen beeinflusst werden. Der Wissenschaftstheoretiker Hans Reichenbach war der erste, der versuchte die Zusammenhänge zwischen Kausalität und Korrelation präzise zu formulieren.17 Nach ihm ist das „Common Cause” Prinzip benannt, welches den Schluss von korrelierten Variablen auf gemeinsame Ursachen postuliert. Eine intensive Auseinandersetzung mit diesem Themenkomplex findet der theoretisch interessierte Leser insbesondere bei P. Suppes18 und aus jüngerer Zeit auch bei J. Pearl und C. Hitchcock19 .

In Ermangelung vorliegender Analysen zu gemeinsamen Risikotreibern wird aber häufig ein rein statistischer Zusammenhang z.B. in Form einer Korrelationsannahme genutzt. In diesen Fällen wird die bivariate Verteilung also nicht erst durch die MCS approximiert, sondern wird stattdessen als Teil des MCS Modelles z.B. in Form einer mathematisch beschriebenen Copula[3] bestimmt. Diese Copula kann durch ein mathematisches Anpassungsverfahren aus historischen Daten gewonnen werden, oder aber als Expertenschätzung in das MCS Modell einfließen.

Analoges gilt natürlich auch für den mehrdimensionalen Fall (mehr als nur 2 interdependierende Variablen). Hier werden die Standard Copulas unflexibler, aber die Verwendung von Vine Copulas kann hilfreich sein.[4] Für den bivariaten Fall lässt sich das Vorgehen schematisch wie folgt darstellen:

Hier wird also eine bivariate Verteilung, welche z.B. durch zwei Randverteilungen für die Einzelrisiken und eine bivariate Copula beschrieben wird als Eingabe für das MCS Modell genutzt.

Werden die Interdependenzen signifikant falsch eingeschätzt, so kann es zu groben Fehleinschätzungen der Gesamtrisikoverteilung kommen. Insbesondere können dadurch eklatante Fehlschätzungen der hohen Risikoquantile (z.B. > 95%) des aggregierten Risikos generiert werden. Dies kann den Wert der zuvor erarbeiten Einzelanalysen für das Gesamtrisikomanagement völlig zerstören zumindest aber stark einschränken.

Schon bei der Quantifizierung der Einzelrisiken ist es eine Standardsituation, dass nicht genügend relevante historische Daten vorliegen, um W-Verteilungen zu fitten. Dies gilt im erhöhten Maße für Risikoabhängigkeiten bzw. multidimensionale W-Verteilungen.

Abhängigkeiten werden in  vielen Risikomodellen nur wenig differenziert betrachtet.  Zumeist werden lineare Korrelationen bzw. Rangkorrelationen geschätzt und dann in der MCS genutzt.

Dies ist oft unzureichend und die Modellqualität kann durch Verwendung von Copulae oder auch Bayes’scher Netze (BN) verbessert werden.

Bereits zu einer validen Bestimmung eines Korrelationskoeffizienten braucht man allerdings umfangreiches relevantes Datenmaterial, um die Schätzungenauigkeit nicht zu groß werden zu lassen. Deshalb wird man meist Expertenschätzung vornehmen müssen.

Bei der Wahl der Copula durch den Experten kann ein Blick auf die Scatterplots der verschiedenen Copulatypen helfen. Sehr viel deutlicher lässt sich allerdings der Einfluss einer Copula mit der 11 sogenannten „Tail Concentration Function” darstellen: Im Einheitsquadrat [0,1]x[0,1] setzen wir für jedes t mit 0<= t <=0.5 : L(t)=p(U<z,V<z) = Wahrscheinlichkeit, dass die W-Verteilungen U und Z gleichzeitig kleiner als ihr zQuantil sind. Entsprechend für jedes 0.5< t <=1: L(t)=1-p(U>z,V>z) = Wahrscheinlichkeit, daß U und Z gleichzeitig größer als ihr z-Quantil sind.

Code zeigen
#Paket laden
suppressMessages( library(copula))
# Copula definieren: 2 dimensionale Normal-Copula mit einer Korrelation von 0.7
cl=normalCopula(c(-0.7), dim = 2, dispstr = "un")

# Simulation 
X <- rCopula(50000, cl)

# Definition der Verhältniszahlen ( Links / Rechts)
U=rank(X[,1])/(nrow(X)+1)
V=rank(X[,2])/(nrow(X)+1)
Lemp=function(z) sum((U<=z)&(V<=z))/sum(U<=z)
Remp=function(z) sum((U>=1-z)&(V>=1-z))/sum(U>=1-z)
u=seq(.001,.5,by=.001)
L=Vectorize(Lemp)(u)
R=Vectorize(Remp)(rev(u))
plot(c(u,u+.5-u[1]),c(L,R),type="l",ylim=0:1, col="red",lwd=2,ylab="",xlab="LOWER TAIL               UPPER TAIL")
abline(v=0.5)

Setzt man die Korrelation auf +0.7 bzw. 0, so erhält man entsprechend folgende Plots:

Code zeigen
suppressMessages(library(mc2d))
curve(dpert(x,20,50,80), 0, 100, xname = "x",col="darkblue",lwd=3,ylim=c(0,0.035),ylab="")
par(new=TRUE)
curve(dpert(x,20,50,80,shape=2), 0, 100, xname = "x",col="lightblue",lwd=3,ylim=c(0,0.035),ylab="")
par(new=TRUE)
curve(dtriang(x,20,50,80), 0, 100, xname = "x",col="darkred",lwd=3,ylim=c(0,0.035),ylab="Density",main="Vergleich von Pert & Dreieckverteilung")
legend('topright', c("Pert (4)","Pert (2)","Dreieck") , 
       lty=1, col=c('darkblue','lightblue', 'darkred'), bty='n', cex=1,lwd=3)

Hier der Plot für eine Clayton Copula:

Simpsons Paradoxon

Wir betrachten das Simpson Paradoxon anhand eines einfachen Datenbeispiels von 2 Variablen. Das Streudiagramm dieser Variablen möge wie folgt aussehen:

Code zeigen
#Paket laden
library(copula)
# Copula definieren: 2 dimensionale Clayton-Copula mit einer Korrelation von 0.7
cl=claytonCopula(0.7, dim = 2)

# Simulation 
X <- rCopula(50000, cl)

# Definition der Verhältniszahlen ( Links / Rechts)
U=rank(X[,1])/(nrow(X)+1)
V=rank(X[,2])/(nrow(X)+1)
Lemp=function(z) sum((U<=z)&(V<=z))/sum(U<=z)
Remp=function(z) sum((U>=1-z)&(V>=1-z))/sum(U>=1-z)
u=seq(.001,.5,by=.001)
L=Vectorize(Lemp)(u)
R=Vectorize(Remp)(rev(u))
plot(c(u,u+.5-u[1]),c(L,R),type="l",ylim=0:1, col="red",lwd=2,ylab="",xlab="LOWER TAIL               UPPER TAIL")
abline(v=0.5)

Die Daten lassen sich in offensichtlicher Weise in 3 Cluster unterteilen (die deutliche Clusterbildung ist dabei unwesentlich für das Simpson Paradox) . Jedes Cluster besitzt eine Korrelation von ca. + 0.75 während die gesamte Datenbestand eine Korrelation von ca. – 0.2 aufweist.

Hat der Experte bei seiner Schätzung immer nur Teilbereiche aber nicht den Gesamtzusammenhang vor Augen, so kann es also passieren, dass die Korrelation im gesamten Wertebereich insgesamt völlig falsch eingeschätzt wird. Solche Phänomene sind unter der Bezeichung „Simpson Paradoxon” bekannt geworden. Wie wollen den Leser mit der Nennung des Simpson Paradoxons dafür sensibilisieren, welche Fallstricke es bei der Modellierung von Korrelationen geben kann.

Expertenschätzung bivariater Copulae

Für viele bivariate Copulae lässt sich eine Parametrisierung aus der Annahme eines Korrelationskoeffizienten bestimmen, d.h. die Copula wird durch zwei Angaben festgelegt:

  • Typ der Copula

  • Korrelationskoeffizient

Im Verhältnis zur bloßen Nutzung von Korrelationskoeffizienten lässt sich bereits so eine deutlich präzisere Modellierung von Zusammenhängen beschreiben. Die Abbildung zeigt simulierte Copula Datenpunkte im Einheitsquadrat für die Gauß-, Clayton-, Flipped Clayton- und Frank-Copula mit einer Spearman-Korrelation von jeweils 0.75.

Nimmt man nur für beide Risiken jeweils eine Dreieckverteilung mit einem Minimum von 100, einem Modus von 200 und ein Maximum von 1000, so erhält man folgendes Bild der (simulierten) kumulierten Verteilungen des aggregierten Risikos (oberhalb des 80% Quantils): Kurven von links nach rechts: Clayton, Frank, Gauß.

Es wird deutlich, welch großen Einfluss die Wahl der Copula bei gleicher Verteilung der Einzelrisiken trotz gleichem Korrelationskoeffizienten hat:
Wir erhalten deutlich unterschiedliche Verteilungen des aggregierten Risikos bei gleichen Verteilungen der Einzelrisiken und gleichen Korrelationskoeffizienten.

Bei der Wahl der Copula durch den Experten kann ein Blick auf die Scatterplots der verschiedenen Copulatypen helfen. Sehr viel deutlicher lässt sich allerdings der Einfluss einer Copula mit der sogenannten „Tail Concentration Function” darstellen: Im Einheitsquadrat [0,1]x[0,1] setzen wir  für jedes t mit 0<= t <=0.5 :

L(t)=p(U<z,V<z) = Wahrscheinlichkeit, dass die W-Verteilungen U und Z gleichzeitig kleiner als ihr z-Quantil sind.  Entsprechend für jedes 0.5< t <=1:

L(t)=1-p(U>z,V>z) = Wahrscheinlichkeit, daß U und Z gleichzeitig größer als ihr z-Quantil sind.

Die Abbildungen zeigen simulierte Werte und die zugehörige Tail Concentration Function für verschiedene Copulae (von links oben nach unten rechts: Gauß, Frank, Gumbel und Clayton) jeweils mit einer Rang Korrelation von 0.75. Das gepunktete Dreieck entspricht einer Copula mit unabhängigen Variablen. Das unregelmäßige Ausfransen an den Enden ist auf die endliche Simulationsschrittzahl zurück zu führen.

Diese Abbildungen zeigen die simulierten Wertepaare einer Gauß Copula mit den unterschiedlichen Rangkorrelationen von -0.75, 0, 0.25 und 0.75. Bei negativer Korrelation verläuft die Kurve unterhalb des Dreiecks für den Fall unabhängiger Variablen, bei positver Korrelation darüber. Je weiter die Kurve sich von dem Dreieck entfernt, je höher ist die abschnittsweise Korrelation.

Höherdimensionale Abhängigkeiten

Möchte man auch höherdimensionale Abhängigkeiten durch Copulae beschreiben, ist man aus mathematischen Gründen sehr eingeschränkt. Unterstützen können sogenannte Vine –Copulae, welche die Flexibilität bivariater Copulae unter Verwendung von Bayes-Graphen in die Mehrdimensionalität hochziehen.  Aus Platzgründen können wir an dieser Stelle nicht näher auf dieses Modellierungswerkzeug eingehen.

Resümee

  • Expertenschätzungen sind ein notwendiger und wichtiger Bestandteil von Risikoanalysen.

  • Experten sollten zur Risikoschätzung die Begriffe Verfügbarkeitsheuristik, Basisrate, Ankereffekt, Rückschaufehler kennen.

  • Für Schadenfrequenzen reicht eine kleine Gruppe von geeigneten Verteilungen. Deren Parametrisierung ist intuitiv gut fassbar.

  • Für Schadenhöhen können die Dreieckverteilung, die Pertverteilung oder Verteilungen ähnlichen Typs, die über Min, Max und Modus parametrisierbar sind, in einer intuitiv nachvollziehbaren Weise genutzt werden.

  • Werden Schadenhöhenverteilungen anderen Typs benötigt, so können diese über die Schätzung von Quantilen kalibriert werden.

  • Die Schätzung von Korrelationen ist aufwändiger als die Schätzung von Einzelrisiken.

  • Korrelationen sind keine Kausalbeziehungen, weisen aber auf gemeinsame Treiber hin.

  • Auch enge Zusammenhänge zwischen Risiken müssen sich nicht in einem hohen positiven oder negativen Korrelationskoeffizienten zeigen.

  • Gibt es gemeinsame Treiber von Risiken, so ist eine Modellierung der Treiber einer bloßen Schätzung der Korrelation im Allgemeinen vorzuziehen. Nichtlineare Interdependenzen sind als solche zu modellieren.

  • Bei Modellierung bivariater Abhängigkeiten bieten Copulae deutlich mehr Gestaltungsspielraum als die bloße Verwendung von Korrelationskoeffizienten.

  • Der Experte, der Risikoabhängigkeiten einschätzt, sollte das Simpson Paradox kennen.

  • Abhängigkeiten zwischen Risiken lassen sich über vereinfachte Abschätzungen bedingter Wahrscheinlichkeiten darstellen und durch einen Bayes Baum darstellen.

Risikomodelle

Allgemein ist ein Modell ein System, welches eine zweckorientierte, abstrahierende Abbildung eines anderen Systems(Originalsystem) ist. Ein System sei dabei ein „nach außen” mehr oder weniger abgeschlossenes Ganzes, welches aus mehreren Teilen besteht, zwischen denen gewisse Interdependenzen (Vernetzung) bestehen oder aber vermutet werden. Das Originalsystem kann dabei ein geschlossenes System sein oder ein offenes System, welches in einem gewissen Austausch mit seiner Umwelt steht. Die Abgrenzung eines Systems von seiner Umwelt kann natürlich gegeben sein oder aber auch in Teilen durch Konventionen bestimmt sein. Diese Konventionen ergeben sich ihrerseits häufig aus gewissen Zwecksetzungen. Das Modell eines offenen Systems wird vereinfachende Annahmen über die Systemumgebung machen und sie nur insoweit mitberücksichtigen, als sie einen zweckrelevanten Einfluss auf das System haben. Alternativ kann das Modell eines offenen Systems das System in seiner Umgebungsbedingtheit darstellen, ohne dabei einen bestimmten Zustand der Umgebung selbst zu modellieren. Die Wirkung des Systems auf seine Umwelt sollte bei einem offenen System zumindest in Hinsicht aller Modell-Zweckrelevanten Kriterien insoweit vernachlässigbar sein, als daß der Einfluß des Systems auf seine Umwelt die Einwirkungen der Umwelt auf dieses System im Sinne des Modellzwecks nicht wesentlich ändert. Anders formuliert: Es gibt keine wesentlichen Rückkopplungseffekte zwischen System und Umwelt. Ist dies aber nicht der Fall, so müssen ggf. die System- und damit im Allgemeinen die Modellgrenzen ausgeweitet werden.
Die definierenden Attribute von Modellen lassen sich folgt etwas näher bestimmen:

*Zweckorientiert: Die Modellstruktur und insbesondere der Abstraktionsgrad des Modells ergeben sich aus einem oder mehreren Zielsetzungen, die mit Hilfe des Modelles erreicht werden sollen. Eine solche Zielsetzung ist häufig die Entwicklung des Originalsystems bzw. bestimmter Parameter dieses Systems zu prognostizieren. Dabei ist das Originalsystem oft selbst bereits ein Modell.

*Abstrakt: Das Modell abstrahiert von Details des Originalsystems, um so eine Komplexitätsreduktion zu erreichen, welches ein Verständnis des Modells erst ermöglicht /erleichtert und durch einen Rückbezug (Abbildung) auf das Originalsystem auch ein Teilverständnis des Originalsystems generiert.

*Abbildung: Es gibt einen Homomorphismus (eindeutige strukturerhaltende Abbildung) vom Originalsystem auf das Modell. Da das Modell von gewissen Merkmalen des Originals abstrahiert, handelt es sich dabei um einen Homomorphismus, der kein Isomorphismus (ein-eindeutige strukturerhaltende Abbildung) ist. Abbildung hier einfügen

Ist das verfolgte Ziel die Erklärung bzw. die Prognose bestimmter Aspekte bzw. Zielgrößen des Originalsystems, so sprechen wir entsprechend von einem Erklärungs- bzw. Prognosemodell. Ein Prognosemodell setzt voraus, daß sowohl das Original- als auch das Modell mit einem diskreten oder stetigen Zeitparameter ausgestattet sind. Handelt es sich bei dem Modell um ein zumindest teilweise mathematisiertes Modell, so sprechen wir von einem mathematischen Modell. Sind die mit dem Modell erzeugten Prognosen keine deterministischen sondern stochastische Prognosen, so sprechen wir von einem stochastischen Modell. Ein stochastisches Modell eines wirtschaftlichen Systems, zum Zwecke der Prognose erfolgswirksamer KPIs , nennen wir ein Risikomodell des Systems.

Häufig verwendete vereinfachende Modellannahmen sind vor allem:

  • Bestimmte Aspekte werden als unbedeutend betrachtet und fortgelassen.

  • Gewisse Größen werden vereinfachend als im Zeitverlauf konstant angenommen.

  • Die Parameterunsicherheit bleibt unberücksichtigt

  • Die Annahme stochastischer Unabhängigkeit gewisser Parameter

  • Der jeweils gewählte Abstraktionsgrad bzw. die jeweils veränderten Vereinfachungen werden im Wesentlichen von folgenden im Allgemeinen miteinander dependierenden Faktoren beeinflusst sein:

    • Der Verwendungszweck /die Verwendungszwecke des Modelles

    • Die benötigte Präzision

    • Die verfügbaren Daten zur Kalibrierung des Modelles

    • Der Modellierungsaufwand

Kalibrierung eines Risikomodelles.

Ein wichtiger Schritt bei der Finalisierung eines Modelles ist dessen Kalibrierung. Die Kalibrierung quantitativer Risikomodelle besteht wesentlich in der Auswahl und der Parametrisierung der verwendeten Wahrscheinlichkeitsverteilungen.

Für diese Kalibrierung gibt es verschiedene Techniken. Einen Überblick hierzu gibt eine R Shiny Anwendung, die in demVideo kurz vorgestellt wird und über diesen Link abgerufen werden kann und zur Parameterbestimmung einsetzbar ist.

Natrurkatastrophenmodelle

Naturkatastrophen können einen unmittelbaren Einfluss auf ein Unternehmen haben, indem sie beispielsweise Gebäude und Maschinen zerstören oder anderweitig Prozesse durch direkte physische Einwirkung verhindern oder verzögern. Die indirekten Einflüsse sind für viele Unternehmen aber oft viel wichtiger. So können Naturkatastrophen beispielsweise Lieferketten unterbrechen oder zu einem Nachfrageeinbruch führen. ….. Missing Data  

Risikomaße

Standardabweichung Die Standardabweichung ist ein symmetrisches Risikomaß, d.h. es bemisst positive (Chancen) und negative Abweichungen (Risiken) gleichermaßen. Die Standardabweichung (auch Volatilität) genannt ist daher nur bedingt als Risikomaß geeignet. Value at Risk (VaR) Anders dagegen VaR, welcher die durch ein hohes (z.B. 95%) Quantil möglicher Schadenwerte definiert wird. Aber auch der VaR ist unter Kritik geraten, da er nicht strikt subadditiv ist und daher kein kohärentes Risikomaß (s. weiter u.)darstellt. Allerdings zeigt sich, daß der VaR sich in den meisten praktischen Anwendungen durchaus subadditiv verhält. Der VaR lässt die Risikoverteilung oberhalb des gewählten Quantils gänzlich unberücksichtigt. Expected Shortfall (ES) Dagegen ist der ES durch den bedingten Erwartungswert aller Schäden oberhalb eines gewählten Quantils (z.B. 95%) definiert und berücksichtigt damit den gesamten Schadenbereich über diesem Quantil. Beim ES wiederum kann es – je nach Verwendungsfall – ein Nachteil sein, daß sehr seltene mögliche Ereignisse mit extremen Werten das Risikomaß zu weit nach oben hieven. Um dem zu begegnen, kann es sinnvoll sein, den bedingten Erwartungswert in einem Intervall von z.B. 95% bis 99,5% zu kalkulieren.

Kohärente Risikomaße Numerische Risikomaße stellen eine starke Vereinfachung der Bemessung des in einer Verteilung zum Ausdruck kommenden Risikos. Aber erst mittels einer Metrik der Risiken lassen sich diese in einfacher Weise vergleichen. Risikomaße stellen somit einen unverzichtbaren Bestandteil in der Kommunikation über Risiken dar. Es bleibt aber wichtig dabei zu beachten, daß bei der Verwendung solcher Risikometriken viel Information – auch quantitative Information – verloren geht. Es gibt viele unterschiedliche Risikomaße, welche je nach Verwendungszweck ihre spezifischen Nach- und Vorteile haben. Zu den bekanntesten und am häufigsten verwendeten Risikomaßen gehören die Varianz & Standardabweichung sowie der Value at Rick (VaR). Bereits diese beiden Risikomaße besitzen sehr unterschiedliche Eigenschaften. Während die Standardabweichung als sogenanntes zweiseitiges Risikomaß durch den gesamten Verlauf einer Verteilung beeinflußt wird der VaR nur durch mögliche „downsides” bestimmt. Wir betrachten hier nur sogenannte verteilungsinvariante Risikomaße, das sind solche Risikomaße bei denen das jeweilige Risikomaß durch die Verteilung des Risikos bereits vollständig definiert wird.
Es stellt sich daher die Frage, was ein Risikomaß auszeichnet. Zunächst ordnet ein (verteilungsinvariantes) Risikomaß einer Verteilungsfunktion einen reellen Wert zu. Es ist allerdings sofort klar, daß man nicht eine jede solche Funktion als Risikomaß bezeichnen wird. Gewünscht ist, daß ein Risikomaß die Unsicherheit welche durch eine Verteilung beschrieben wird in „geeigneter Weise” durch eine reelle Zahl abbildet. Es wurde versucht dies durch folgende Axiome zu präzisieren: Monotonie X>=Y  q(X)>=q(Y) Dominiert eine Verteilungsfunktion eine zweite , hat sie also durchgehend größere Werte, so ist das Risikomaß dieser Verteilungsfunktion größer als das Risikomaß der anderen Verteilungsfunktion.
Translationsinvarianz q(X+c) =q(X) wobei c konstant ist Wird eine Verteilungsfunktion um einen konstanten Wert c verschoben , so verändert sich das Risikomaß nicht. Positive Homogenität q(cX) = cq(X) falls c>=0 Wird eine Verteilungsfunktion um einen konstanten Wert c multipliziert , so verändert sich das Risikomaß genau um diesen Faktor. Subadditivität q(X+Y) <= q(X) +q(Y) Das Risikomaß der Summe zweier Verteilungen ist maximal so groß wie die Summe der Risikomaße der beiden Verteilungen. Risikomaße welche diese Axiome erfüllen, nennt man auch kohärente Risikomaße. Alle genannten präzisieren naheliegende Erwartungen an ein Risikomaß. Insofern lässt sich ein kohärentes Risikomaß als eine Explikation m Sinne Carnaps des vorwissenschaftlichen Begriffes eines Risikomaßes verstehen. Obwohl der Value at Risk (VaR) das häufigste gebrauchte Risikomaß ist, ist es nicht kohärent, weil daß Axiom der Subadditivität nicht erfüllt. Hier ein einfaches Gegenbeispiel.: R1 und R2 seien beide wie folgt verteilt: 0 mit Wahrscheinlichkeit 0.991, 1000 mit Wahrscheinlichkeit 0.009 und unabhängig voneinander. Dann erhalten wir

99% VaR(R1) = 99%

VaR(R2) = 0,

da für beide Risiken gilt daß sie mit 99,1% Wahrscheinlichkeit keinen Schaden verursachen, also

VaR(R1) + VaR(R2) =0

Andererseits bekommt man aber:

p(R1+R2 > 0) = p(R1) > 0 + p(R2) > 0 - p(R1>0 & R2>0) = 0.009 + 0.009 – 0.009^2 = 0.017919 > 1 – 0.99

also

99% VaR(R1+R2) > 0

nämlich


99% VaR(R1+R2) = 1000, da p(R1+R2) = 0.009^2 = 0.000081

Also

95% VaR(R1+R2) =1000 > VaR(R1) + VaR(R2) = 0

Unter Verwendung des VaR erhält man also nicht immer den erwarteten Diversifikationseffekt. Der Effekt lässt sich einfach dadurch erklären, daß der VaR den Verlauf der Verteilungen oberhalb des VaR – Quantils nicht berücksichtigt. Allerdings zeigt eine eingehendere Untersuchung, daß dieses Phänomen lediglich bei extremen Verteilungen auftritt und deshalb in der Praxis nicht so relevant ist, wie dies zunächst erscheinen mag .

Conditional Value at Risk (CVaR) Während der VaR den Maximalverlust darstellt, der mit einer bestimmten Wahrscheinlichkeit von z.B. 99% nicht überschritten wird, impliziert der CVaR den durchschnittlichen Verlust oberhalb dieser Schwelle. Anders als der VaR ist der CVaR kohärent und erfüllt insbesondere das Subadditivitätsxiom.

Conditional Value at Risk Expected Shortfall Tail Conditional Expectation Average Value at Risk Volatilität (Standardabweichung)

In der Literatur werden zudem auch viele weitere Risikomaße betrachtet. Seit einigen Jahren vermehrt auch eine Klasse von Risikomaßen, welche sowohl die Köhärenzbedingungen erfüllen und als Alternative zu VaR und Expected Shortfall vorgeschlagen werden[^kompendium-risikomanagement-20]. Diesbezügliche Diskussionen bewegen sich allerdings vorwiegend im Bereich der Finanzrisiken und nicht im Bereich operationaler Risiken.

Anders als z.B. bei versicherungstechnischen Risiken fehlt es bei operationellen Risiken und ganz allgemein in der verarbeitenden Industrie zumeist an ausreichend Datenmaterial für valide rein datengetützte Analysen. Andererseits stehen zunehmend große Datenmengen zur Verfügung, deren Relevanz für risikoanalysen oft nicht unmittelbar einsehbar ist. In diesen Fällen kann die Verwendung erweiterter Analysemethoden (Data Mining, Machine Learning, KI) hilfreich sein.

Falls andererseits bereits bestimmte Datenquellen bereits als relevant angesehen werden und zudem auch ein gewisses Datenmaterial vorhanden ist, aber manche Datenpunkte doch fehlen, kann eine geschickte Dateimputation von Nutzen sein. Das einfache Unberücksichtigtlassen der fehlenden Werte kann zu deutlichen Verzerrungen führen, da das fehlen von Daten nicht immer als völlig zufällig angesehen werden kann (informative missingness). Zudem verzichtet man auf Informationen, wenn man ganze Datensätze unberücksichtigt lässt, weil einzelne Werte fehlen.

Es existieren viele Methoden, mit denen fehlende Werte vervollständigt werden können. Man kann dabei zunächst zwischen den singulären und der multiplen Imputationsmethoden unterscheiden. Bei der singulären Methoe wird jeweils ein fehlender Wert durch einen bestimmten Schätzwert ersetzt. Bei der multiplen Imputation werden für jeden nicht vorhandenen oder unvollständigen Datensatz gleich mehrere Werte geschätzt. Dies geschieht z.B. mittels einer Simulation unter Annahme passener Verteilungsmodelle.

Mögliche einfache Optionen sind die Verwendung des Mittelwerts oder Medians anstelle des fehlenden Werts. Dazu wird der Mittelwert oder Medianwert in einer bestimmten Spalte berechnet und dann die fehlenden Daten durch diesen Wert ersetzt. Ein ähnlicher Ansatz für kategoriale Daten besteht darin, Fehler durch den häufigsten Wert (Modus) zu ersetzen. Dies kann entweder für den gesamten Datensatz oder für eine Teilmenge durchgeführt werden. Diese Methode hat den Vorteil der Einfachheit und verändert den Mittelwert nicht. Ein wesentlicher Nachteil besteht allerdings darin, dass die Varianz des Datensatzes reduziert wird und die Kovarianz zwischen den verbleibenden Variablen verzerrt wird.Die Reduktion der Varianz führt ihrerseits zu einer Unterschätzung von Risiken.

Daher ist es für die Risikoanalyse zumeist ratsam auch nach anderen Methoden Umschau zu halten.

Auch Bayesche Netze lassen sich erfolgreich für die Datenimputation nutzen.

Footnotes

  1. Wir greifen hier die übliche Einteilung unsicherer Entwicklungen in Chancen und Risiken auf, obwohl wir später diese Form der Sprachregelung einer Kritik unterziehen werden. Wir nutzen diese Sprachregelung nur um in einer informellen Weise auf den umfassenden Ansatz, eines  nicht lediglich auf Risiken fixierten Risikomanagements hinzuweisen.↩︎

  2. vgl.:  Heiko Frings : R statt Spreadsheets https://www.risknet.de/themen/risknews/r-statt-spreadsheets/↩︎

  3. vgl. hierzu z.B. auch: Jonen, Andreas: Semantische Analyse des Risikobegriffs ↩︎

  4. Carnap, Rudolf (1959), Induktive Logik und Wahrscheinlichkeit, Wien 1959↩︎

  5. Boris W Gnedenko (1997), Lehrbuch der Wahrscheinlichkeitstheorie, Harri Deutsch; Auflage: 10., korr. Aufl., Frankfurt a.M.↩︎

  6. Deutsches Institut für Normung e.V. : DIN EN 1050 - Leitsätze zur Risikobeurteilung, 1997,Berlin↩︎

  7. Boris W Gnedenko, Lehrbuch der Wahrscheinlichkeitstheorie, Harri Deutsch; Auflage: 10., korr. Aufl. 1997, Frankfurt a.M.↩︎

  8. Luhmann, N. (1991): Soziologie des Risikos, New York 1991↩︎

  9. http://wortschatz.uni-leipzig.de/↩︎

  10. Juergen Weichselgartner, Naturgefahren als soziale Konstruktion, Dissertation Universität Bonn, Shaker Verlag, Aachen 2002.↩︎

  11. Evaluierung der Kommunikation über die  Unterschiede zwischen „risk” und „hazard”, Berlin 2009 (BfR-Wissenschaft 02/2009), Herausgegeben von Ellen Ulbig, Rolf F. Hertel, Gaby-Fleur Böl, Projektdurchführung: Peter M. Wiedemann, Holger Schütz, Albena Spangenberg  (Forschungszentrum Jülich GmbH, Programmgruppe Mensch, Umwelt, Technik, Jülich)↩︎

  12. https://www.bfr.bund.de/de/presseinformation/2010/04/_risiko__oder__gefahr___experten_trennen_nicht_einheitlich-48560.html↩︎

  13. vgl. The Monty Hall Dilemma Revisited: Understanding the Interaction of Problem Definition and Decision Making, Peter R. Mueser und Donald Granberg, 1999 https://web.archive.org/web/20120722023727/http://129.3.20.41/eps/exp/papers/9906/9906001.html↩︎

  14. Ein mögliches Ereignis ist dabei im Regelfall ein Ereignis, welches sich möglicherweise in der Zukunft ereignen wird. Dies ist aber nicht notwendig so, es kann sich auch um ein mögliches vergangenes Ereignis handeln, zu dessen etwaigen Eintritt noch keine Informationen vorliegen.↩︎

  15. Kaplan, S. & Garrick, B.J. (1981): On the quantitative definition of risk. Risk Analysis, 1, 1127.↩︎

  16. Zum theoretischen Hintergrund: H. Niederreiter, “Point sets and sequences with small discrepancy,” Monatshefte für Mathematik, vol. 104,no. 4, Dec. J. H. Halton, “On the efficiency of certain quasi-random sequences of points in evaluating multi-dimensional integrals,” Numerische Mathematik, vol. 2, no. 1, Dec.↩︎

  17. Reichenbach, H. 1956. The direction of time. Berkeley, I dependency-based causality seems to clash with the direc- CA: University of California Press↩︎

  18. Suppes, P. 1970. A probabilistic theory of causality. AmArtificial Intelligence 35(2):259-71. sterdam: North Holland.↩︎

  19. Pearl, J. (1988). Embracing causality in default reasoning. Artificial Intelligence, 35(2), 259-271.↩︎