Stochastik-Praktikum - Institut für Mathematik

Transcrição

Stochastik-Praktikum - Institut für Mathematik
Begleitendes Skript zum
Stochastik-Praktikum
mit Beispielen in
Stochastik-Praktikum an der Humboldt–Universität zu Berlin
Institut für Mathematik
WS 2009/2010
28.09.2009-07.10.2009
Dipl. –Math. Markus Bibinger, Prof. Dr. Markus Reiß
Inhaltsverzeichnis
Erste Schritte in R
Download und Installation .
Aufruf der R–Hilfe . . . . .
Console und Workspace . . .
Einfache Rechenoperationen
Objekte . . . . . . . . . . .
Dateien ein- und auslesen . .
Grundlegende Funktionen . .
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Pseudozufallszahlen und Monte Carlo Methoden
1.1 Generierung uniformer Pseudozufallszahlen . . . . . .
1.1.1 Der lineare Kongruenzgenerator . . . . . . . .
1.1.2 Der Mersenne–Twister . . . . . . . . . . . . .
1.2 Pseudo– und Quasi–Zufallszahlen . . . . . . . . . . .
1.3 Transformation uniformer Zufallszahlen . . . . . . . .
1.3.1 Erzeugung normalverteilter Zufallszahlen . . .
1.3.2 Die Inversionsmethode . . . . . . . . . . . . .
1.3.3 Erzeugung Poisson–verteilter Zufallszahlen . .
1.4 Qualitätskontrolle von Pseudozufallszahlengeneratoren
1.5 Monte Carlo Methoden . . . . . . . . . . . . . . . . .
1.5.1 Monte Carlo Integration . . . . . . . . . . . .
1.5.2 Monte Carlo–Bänder . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
4
5
5
6
6
.
.
.
.
.
.
.
.
.
.
.
.
7
8
8
9
10
14
14
16
18
20
21
21
23
Literatur
2
24
Uni– und Multivariate Datenanalyse
2.1 Univariate Daten . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Umgang mit Datendateien in R . . . . . . . . . . .
2.1.2 Statistische Kenngrößen . . . . . . . . . . . . . .
2.1.3 Darstellung und Analyse empirischer Verteilungen
2.1.4 Laufzeitanalysen in R . . . . . . . . . . . . . . .
2.2 Multivariate Daten . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Literatur
3
25
25
25
26
28
32
32
36
Nichtparametrische Dichteschätzung
3.1 Gewichteter Histogramm–Schätzer und empirische Verteilungsfunktion
3.2 Gleitender Histogramm–Schätzer . . . . . . . . . . . . . . . . . . . . .
3.3 univariate Kerndichteschätzung . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Konstruktion des univariaten Kerndichteschätzers . . . . . . . .
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
37
37
38
39
39
3.4
3.5
3.3.2 Bias–Varianz–Dilemma . . . . . . .
3.3.3 Effizienz von Kernen . . . . . . . . .
Methoden zur Wahl der Bandweite . . . . . .
3.4.1 Silvermans rule of thumb . . . . . . .
3.4.2 Kleinste–Quadrate–Kreuzvalidierung
Multivariate Kerndichteschätzung . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
42
43
43
43
44
Literatur
48
4
49
50
51
51
53
55
55
56
58
60
60
61
61
Testtheorie
4.1 Binomialtest . . . . . . . . . . . . . . . . . . . . . .
4.2 t–Test . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1 Der Einstichproben–Fall . . . . . . . . . . .
4.2.2 Fallzahlabschätzung . . . . . . . . . . . . .
4.2.3 Der Zweistichproben–Fall . . . . . . . . . .
4.2.4 Behrens–Fisher–Problem und der Welch–Test
4.3 Der F–Test . . . . . . . . . . . . . . . . . . . . . .
4.4 Anwendungsbeispiel: Pygmalioneffekt . . . . . . . .
4.5 Nichtparametrische Tests . . . . . . . . . . . . . . .
4.5.1 χ2 –Anpassungstest . . . . . . . . . . . . . .
4.5.2 Wilcoxon–Vorzeichen–Rangsummentest . .
4.5.3 Mann–Whitney–Test . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Literatur
5
62
Simulation stochastischer Prozesse
5.1 Brownsche Bewegung und Diffusionsprozesse . . . . . . . . . . . .
5.1.1 Random Walk und Brownsche Bewegung . . . . . . . . . .
5.1.2 Simulation einer zweidimensionalen Brownschen Bewegung
5.1.3 Konstruktion nach Paul Lévy . . . . . . . . . . . . . . . . .
5.1.4 Diffusionen . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Brownsche Brücke . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Ornstein-Uhlenbeck Prozess . . . . . . . . . . . . . . . . . . . . .
5.4 Zusammengesetzter Poisson–Prozess und Sprungdiffusionen . . . .
5.5 Eintrittszeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
63
63
63
67
68
69
72
75
76
79
Literatur
82
6
83
83
87
88
88
91
Lineare Modelle
6.1 Einfache lineare Regression . . . . . . .
6.2 Multiple lineare Regression . . . . . . .
6.3 Varianzanalyse . . . . . . . . . . . . .
6.3.1 Einfaktorielle Varianzanalyse .
6.3.2 Zweifaktorielle Varianzanalyse .
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6.4
6.5
6.6
Allgemeine Regressionsmodelle . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Lebenszeitanalysen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Schwierigkeiten der statistischen Analyse: Die KiKK–Studie . . . . . . . . . . . 99
Literatur
100
7
101
101
102
104
108
Markov Chain Monte Carlo Methoden
7.1 Grundlegendes über Markov–Ketten . .
7.2 Der Metropolis–Hastings–Algorithmus .
7.3 Anwendung auf das Logit–Modell . . .
7.4 Der Gibbs–Sampler . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Literatur
8
Zeitreihenanalyse
8.1 Zeitreihen in R . . . . . . . .
8.2 Trend und lineare Filter . . . .
8.3 Saisonale Analyse mit LOESS
8.4 Spektralanalyse . . . . . . . .
8.5 ARIMA–Modelle . . . . . . .
110
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
111
111
115
116
118
121
Literatur
127
Literaturverzeichnis
128
2
Erste Schritte in R
R ist eine Programmierumgebung und Programmiersprache, welche v. a. zur statistischen Datenanalyse und deren grafischer Aufbereitung, sowie zur stochastischen Simulation entwickelt wurde. R ist eine Open Source Software (GNU-Lizenz) und ging aus dem Vorgänger S (die Sprache
wird häufig immer noch mit S bezeichnet, die Implementierung mit R) hervor. S wurde bereits
1976 entwickelt und ist seit 1988 in einer kommerziellen Version S-PLUS erhältlich. Mit R wurde später eine freie Implementierung weiterentwickelt, die zunächst für Lehrzwecke, inzwischen
aber auch in einem breiten Spektrum wissenschaftlicher Anwendungen eingesetzt wird. Da der
Quellcode einsehbar ist, wird dieser ständig weiterentwickelt und zusätzliche Funktionen werden häufig von Anwendern als Packages auch für andere Nutzer bereitgestellt. Der Kern des
Programmes wird inzwischen vom R Development Core Team entwickelt.
Download und Installation
Man kann die aktuelle Version von R (im Moment 2.9.1) auf der CRAN ( Comprehensive R
”
Archive Network“) Homepage für Windows, Linux oder MacOS X herunterladen.
http://www.cran.r-project.org/
Nach der Auswahl des Betriebssystems wählt man die Subdirectory base“ und startet dann
”
den Download (ca. 36 MB). Auf der CRAN Homepage findet sich auch eine Übersicht über
weitere Packages. Um zusätzliche Packages zu installieren kann man auch nach dem Start von R
(z .Bsp. unter Windows die Datei C:\Programme\R\R-2.9.1\bin\Rgui.exe) im Menü den Punkt
Pakete-Installiere Paket(e) wählen und anschließend einen Mirror auswählen, z. Bsp. Germany(Berlin). Gibt man in der R Console
> library()
ein, erhält man eine Übersicht der aktuell installierten und zur Verfügung stehenden Pakete. Ein
Paket, z. Bsp. lattice, wird durch die Eingabe
> library(lattice)
aufgerufen und durch
> library(help=lattice)
lassen sich Informationen zu dem Paket aufrufen.
Beim R Download über die Seite muss vor dem Download ebenfalls zunächst ein CRAN Mirror
http://www.r-project.org/
gewählt werden.
Aufruf der R–Hilfe
Auf der CRAN Seite finden sich viele nützliche Hinweise in den bereitgestellten FAQ und Manuals. In der R Console ruft man durch
> help()
3
die Hilfe auf, die zu jeder Funktion eine Anleitung enthält. Mit der Anweisung
> help.start()
wird die HTML-Hilfe im Browser geöffnet. Zu bestimmten Funktionen, z. Bsp. read.table, ruft
man die zugehörige Hilfedatei einfach mit
> ?read.table
auf. Wenn man nach bestimmten Themen in der Hilfe suchen will, kann dies durch
> help.search(“table”)
direkt getan werden.
Inzwischen gibt es auch eine im Programm integrierte Demo zu verschiedenen Funktionen/Paketen. Mit
> demo()
lässt sich eine Übersicht öffnen. Die Demo zu einem bestimmten Paket, z. Bsp. lattice, kann dann
mit
> demo(lattice)
aufgerufen werden.
Console und Workspace
Öffnet man die R Console erscheint der aktuelle Workspace. Vor der Eingabemöglichkeit steht
der sogenannte prompt, standardmäßig als >“. Auch in den Unterlagen werden wir beim R–
”
Code diesen immer dazuschreiben. Mit
> options(prompt=“R-Code:”)
kann dieser prompt auch beliebig geändert werden. Es bietet sich an nach der Installation einen
Ordner anzulegen, in dem man alle Dateien zum Kurs speichert. Da R eine interpretierte und
nicht kompilierte Programmiersprache ist, bietet es sich auch an für komplexere Funktionen
zunächst einen Texteditor zu verwenden. Die Code-Beispiele werden dann als Textdateien gespeichert. Der aktuelle Workspace kann mit
> save.image(“filedirectory/file”)
gespeichert und mit
> load(“filedirectory/file”)
wieder geladen werden. Dabei stehen dann alle zuvor eingegebenen Daten und eigenen Funktionen wieder zur Verfügung und können direkt aufgerufen werden. Beendet man R
> q()
kann immer der aktuelle Workspace gesichert werden. Dieser wird automatisch dann beim Öffnen wieder geladen. In welches Verzeichnis der Workspace gesichert wird lässt sich mit
> getwd()
nachschauen, mit
> setwd(“C:/verzeichnis”)
lässt sich dieses ändern.
4
Einfache Rechenoperationen
Die grundlegenden Operatoren werden durch folgende Eingaben bezeichnet:
Addition
Subtraktion
Multiplikation
Division
Potenzieren
+
−
∗
/
ˆ
Bei Zahleneingaben ist der Dezimaltrenner ein Punkt. Zahlen können in exponentieller Form
eingegeben werden, der Exponentialteil wird mit einem E eingeleitet. Bei komplexen Zahlen
schreibt man ein i vor den Imaginärteil. Die Eingabe einer Formel
> 7*(11+2i)/3
[1] 25.66667+4.66667i
erzeugt die Berechnung als Ausgabe.
Objekte
Zuweisungen in R erfolgen über <−“ , z. Bsp. wird durch
”
> n<−10000
der Variablen n der Wert 10000 zugewiesen. Die wichtigsten Objekte in R sind Vektoren, die mit
der combine(c)-Anweisung eingegeben werden.
> x<−c(1,2,3,4,5,6,7,8,9,10)
erzeugt einen Vektor mit 10 Komponenten, den wir in diesem Fall auch durch
> x<−c(1:10)
erzeugen können. Die einzelnen Komponenten lassen sich durch x[j], j = 1, . . . , 10 aufrufen.
Wichtig ist, dass Rechenoperationen auf Vektoren angewendet immer komponentenweise ausgeführt werden. So erzeugt z. Bsp. xˆ2 den Vektor (1,4,9,16,25,36,49,64,81,100).
Eine Matrix kann folgendermaßen eingegeben werden:
> A<−matrix(c(1,2,3,4,5,6,7,8,9,10,1,4,9,16,25,36,49,64,81,100),ncol=2)
Dies erzeugt eine 10x2-Matrix, die über Eingabe der Werte und der Spaltenzahl definiert wurde.
Diese Matrix hätten wir auch aus den beiden Vektoren durch
> A<−cbind(x, x2 )
erzeugen können. Durch
> A<−rbind(x, x2 )
dementsprechend die transponierte Matrix. Durch die Eingabe t(A) kann man eine Matrix transponieren. Bei quadratischen Matrizen lassen sich mit den Funktionen det(), solve() und eigen()
Determinante, Inverse und Eigenwerte und –Vektoren ausgeben. Durch A[,j] bzw. A[i,] kann man
den j-ten Spaltenvektor bzw. den i-ten Zeilenvektor aufrufen.
Weitere wichtige Objekte in R sind Arrays und Listen. Listen haben eine sehr allgemeine Struktur
und können unterschiedliche Objekttypen enthalten (Vektoren, Matrizen,. . .). Arrays sind eine
5
höherdimensionale Verallgemeinerung von Vektoren und Matrizen. Die zugehörigen Funtionen
sind list() und array(). Missing values werden in R mit NA bezeichnet.
Dateien ein- und auslesen
Daten aus Dateien kann man mit Hilfe der Funtionen read.table(“file”) und read.csv(“file”)
einlesen. Analog können mit write.table(“file”) Daten ausgelesen werden. Wichtige Optionen
der Funktion read.table() sind header=TRUE, was angibt, dass in der einzulesenden Datei in der
ersten Zeile die Spaltennamen stehen und sep=“,”, was bedeutet Spalten sind durch Kommata
getrennt. Weitere Optionen und Möglichkeiten sind in der zugehörigen Hilfe-Datei angeführt.
Grundlegende Funktionen
Die grundlegendsten Funktionen von R sind wohl die summary() und die plot() Funktion. Erstere kann auf Objekte oder auch Ausgaben anderer Funktionen angewendet werden und fasst
wichtige Eigenschaften in einer Übersicht zusammen. Die plot Funktion wird zur Erstellung von
Grafiken benutzt. Diese sind nicht interaktiv. Auch die Funktion plot() kann auf Objekte und
andere Ausgaben angewandt werden und wird über ihre Optionen genauer gesteuert.
Wichtig wird für uns die Generierung von Zufallszahlen sein. Mit der einfachen Eingabe
> x<−runif(100)
erzeugt man einen Vektor x von 100 unabhängigen, auf [0, 1] uniform verteilten (Pseudo)–
Zufallszahlen. Die möglichen Optionen können der Hilfe entnommen werden.
Hier eine kurze Übersicht über die wichtigsten Verteilungen und zugehörigen Funktionen:
Verteilung
Binomial
Hypergeometrisch
Poisson
Normal
Exponential
Cauchy
Zufallszahlen
rbinom
rhyper
rpois
rnorm
rexp
rcauchy
Dichte
dbinom
dhyper
dpois
dnorm
dexp
dcauchy
Verteilungsfunktion
pbinom
phyper
ppois
pnorm
pexp
pcauchy
Quantile
qbinom
qhyper
qpois
qnorm
qexp
qcauchy
Um die Dichte-, Verteilungs- oder Quantilfunktion aufzurufen muss also jeweils nur der der
Verteilungsbezeichnung vorangehende Buchstabe geändert werden. Mit dem vorangestellten “r”
werden immer Zufallszahlen der entsprechenden Verteilung erzeugt.
6
1
Pseudozufallszahlen und Monte Carlo Methoden
Die Generierung von Pseudozufallszahlen an einem PC bildet die Grundlage für die stochastische
Simulation. Pseudozufallszahlen sind, wie der Name schon sagt, keine echten Zufallszahlen,
sondern werden durch Generatoren erzeugt.
Definition 1.1. Ein Generator (uniformer) Pseudozufallszahlen ist ein Algorithmus, der von einem Startwert u0 (seed) und einer Transformation T ausgehend, eine rekursive deterministische
Zahlenfolge ui = T i u0 ([0,1]–wertiger) Folgeglieder erzeugt, die sich wie eine zufällige i. i. d.
Folge von echten (uniformen) Zufallszahlen verhalten soll.
Das Kriterium für ein Verhalten wie echte Zufallszahlen liefern dabei gängige Test– und
Analysemethoden. Echte Zufallszahlen können höchstens von physikalischen Generatoren, zum
Beispiel durch die Beobachtung radioaktiver Zerfälle, erzeugt werden. Es werden aber zumeist
Pseudozufallszahlen vorgezogen, da sie sich jederzeit neu erzeugen lassen und vor allem replizierbar sind. Bei Vorgabe eines festen Startwertes erzeugt der Generator jedesmal wieder dieselben Pseudozufallszahlen. Pseudozufallszahlen werden zur stochastischen bzw. Monte Carlo
Simulation genutzt, daneben aber auch in der Kryptographie und beispielsweise bei der Erzeugung von TAN-Listen zum online–Banking.
Definition 1.2. Monte Carlo Methoden basieren auf der häufigen Wiederholung eines Zufallsexperimentes bzw. Erzeugung von Pseudozufallszahlen um (zumeist komplexe) analytische Probleme näherungsweise zu lösen, wobei das Gesetz der großen Zahlen die Grundlage hierfür bildet.
Anwendungen finden Monte Carlo Methoden vor allem in der Numerik zur Monte Carlo
Integration oder Lösung partieller Differentialgleichungen, in der Finanzmarktanalyse (Shock–
Szenarien etc. ), der Meteorologie, Transportproblemen im Operations Research und vielen weiteren Anwendungsbereichen. In Kapitel 7 werden wir speziell Monte Carlo Methoden zur Erzeugung ergodischer Markovketten betrachten.
Wir werden nun zunächst Pseudozufallszahlen in R erzeugen und deren Replizierbarkeit nachvollziehen. Durch set . seed wird der Startwert des verwendeten Pseudozufallszahlengenerators
(standardmäßig der Mersenne–Twister) festgelegt. Mit dem Befehl runif (n) erzeugen wir ein
Sample von n unabhängigen auf dem Einheitsintervall uniform verteilten Pseudozufallszahlen.
> set . seed (4711)
> runif (10)
[ 1 ] 0.96560033 0.56061066
[ 7 ] 0.34204836 0.16194603
> runif (10)
[ 1 ] 0.06566063 0.65541747
[ 7 ] 0.48224412 0.81889601
> set . seed (4711)
> runif (10)
[ 1 ] 0.96560033 0.56061066
[ 7 ] 0.34204836 0.16194603
0.91472513 0.18295641 0.88421380 0.61809459
0.27060681 0.07892783
0.79319274 0.23423804 0.16735559 0.13614287
0.68237652 0.98294101
0.91472513 0.18295641 0.88421380 0.61809459
0.27060681 0.07892783
7
> s e t . s e e d ( 4 7 1 1 , k i n d =” Wichmann−H i l l ” )
> runif (10)
[ 1 ] 0.2352532 0.3178765 0.6508297 0.3306231 0.6041524 0.5420896 0.3464831
[ 8 ] 0.8995322 0.1182666 0.0614466
Im nächsten Unterkapitel werden wir bestimmte Generatoren zur Erzeugung solcher Zufallszahlen näher kennen lernen.
Die in R zur Verfügung stehenden Pseudozufallszahlengeneratoren kann man der Hilfe zu set . seed
entnehmen. Es lassen sich auch neue eigene Algorithmen einbinden.
1.1
Generierung uniformer Pseudozufallszahlen
1.1.1 Der lineare Kongruenzgenerator
Der in Lehmer (1951), erstmals 1948 vorgestellte, lineare Kongruenzgenerator ist einer der ersten und einfachsten Algorithmen zur Erzeugung auf dem Einheitsintervall uniform verteilter
Pseudozufallszahlen. Ausgehend von der rekursiven Gleichung
xi = axi−1
mod m
(multiplikativer linearer Kongruenzgenerator)
oder der verallgemeinerten Form
xi = (axi−1 + c)
mod m
(gemischter linearer Kongruenzgenerator)
lässt sich die Pseudozufallszahlenfolge ui = xi /m, also
ui = (aui−1 + c/m)
mod 1 0 < ui < 1 ,
erzeugen.
Der lineare Kongruenzgenerator hat zwei offensichtliche Beschränkungen, die auch für komplexere Algorithmen typisch sind.
1. Es können höchstens m unterschiedliche Werte erzeugt werden und in der Folge auftreten.
2. Der Algorithmus erzeugt periodische Folgen.
Im einfachen Fall des multiplikativen linearen Kongruenzgenerators beginnt für ein k ∈ N mit
ak = 1 mod m die Periode von vorne. Nach dem kleinen Fermat’schen Satz ist aφ(m) = 1
mod m, damit ist die Länge einer Periode auf maximal (m − 1) beschränkt. Dies liefert auch
schon einen Ansatz, wie man die Werte zu wählen hat. Klarerweise sollte m wesentlich größer
als die Länge der zu erzeugenden Zufallsfolge sein. Außerdem wählt man den Faktor a meist als
Primitivwurzel. Die Vorgabe eines Startwertes x0 und die Wahl des (möglichen) Inkrementes c
sind dagegen von geringerer Bedeutung.
Es gibt zahlreiche Ansätze allgemeinerer Kongruenzgeneratoren, die Weiterentwicklungen dieser einfachen Methode darstellen.
8
1.1.2 Der Mersenne–Twister
Der Mersenne–Twister ist ein moderner Zufallszahlengenerator, der auch in R zur Erzeugung
uniform verteilter Zufallszahlen Verwendung findet.
Es sei F2 der Körper der Charakteristik 2, also F2 = {0, 1} mit der Addition ⊕ und der
Multiplikation . Für den Algorithmus werden nun ω ∈ N, n ∈ N, m ∈ {1, . . . , n} und
r ∈ {0, . . . , ω − 1} gewählt bzw. vorgegeben. Für y ∈ Fω2 = {0, 1}ω seien weiterhin
y l = (y1 , . . . , yr , 0, . . . , 0) ,
y u = (0, . . . , 0, yr+1 , . . . , yω )
die Elemente, die aus einer Verknüpfung der bei r links– und rechtsseitig abgeschnittenen Teilvektoren mit dem Nullelement entstehen. Für y, z ∈ Fω2 wird dann mit
(y l |z u ) = (y1 , . . . , yr , zr+1 , . . . , zω )
das Element bezeichnet, welches aus der Verkettung“ von y l mit z r entsteht.
”
Mit einer vorher festgelegten ω × ω Matrix A, deren Spalten– und Zeilenvektoren Elemente des
Fω2 seien und die Einträge damit Bits, und gewählten (n − 1) Startwerten x0 , . . . , xn−1 ∈ Fω2 ist
der Mersenne–Twister der folgende rekursive Algorithmus:
€
Š
xk+n = xk+m ⊕ω xlk |xuk+1 ω A
, k ∈ N0 .
⊕ω und ω bezeichnen die Addition und Multiplikation in Fω2 .
Durch die Multiplikation mit der Matrix A werden die Bits durcheinandergewirbelt“ , was dem
”
Algorithmus den zweiten Teil seines Namens einbringt. Der erste Namensteil kommt daher, dass
die Werte so gewählt werden, dass die Periode des Algorithmus eine sehr große Mersenne’sche
Primzahl ist. In der derzeitig häufigsten Implementierung werden die Werte
(ω, n, m, r) = (32, 624, 397, 31)
gewählt, was als Periode 2nω−r − 1 = 219937 − 1 ergibt.
In Softwarepaketen wie R, SAS, aber auch Matlab, Mathematica und Maple stehen heute Pseudozufallsgeneratoren zur Verfügung. C und C++ Implementierungen kann man beispielsweise in
der GNU Scientific Library“ finden.
”
http://www.gnu.org/software/gsl
Der gerade eingeführte Mersenne–Twister gehört zu den derzeit gängigsten Methoden, neben der
sehr großen Periode ist er auch schneller als andere Algorithmen, die vergleichbar gute Pseudozufallszahlen liefern. Für eine genaue Analyse sei auf Matsumoto and Nishimura (1998) verwiesen.
9
1.2
Pseudo– und Quasi–Zufallszahlen
Neben den Pseudozufallszahlen werden des Öfteren auch so genannte Quasi–Zufallszahlen zur
stochastischen Simulation (Quasi–Monte Carlo Methoden) herangezogen. Diese unterscheiden
sich jedoch in ihrer Konstruktion, also Generatoren zur Erzeugung von Quasi-Zufallszahlen, und
in ihrer Struktur grundlegend von Pseudozufallszahlen. Das Ziel bei der Generierung einer Folge
von Quasi–Zufallszahlen x1 , . . . , xN ist die Minimierung der Diskrepanz
|{xi : i = 1, . . . , N , xi ∈ [0, u)}|
− u
DN (x1 , . . . , xN ) = sup
N
u∈[0,1]
,N ∈ N .
Moderne Algorithmen, die als Quasi–Zufallszahlen–Generatoren eingesetzt werden (z. Bsp. Halton–
und Sobol–Folgen) erreichen eine Diskrepanz DN ≤ C(log N/N ) mit einer Konstanten C,
während nach dem Zentralen Grenzwertsatz für echte Zufallszahlen (und damit auch für gute
Pseudozufallszahlen) eine Asymptotik DN ' N −1/2 gilt.
Dadurch kann mit der Quasi–Monte Carlo Integration, also eine Verwendung von Quasi–Zufallszahlen zur Näherung eines Integrals durch den Erwartungswert, bei festem N ein kleinerer Fehler
erreicht werden als mit der Verwendung von Pseudozufallszahlen nach dem Gesetz der großen
Zahlen. Quasi–Monte Carlo Methoden bilden eine Schnittmenge der numerischen Analysis, Zahlentheorie und Finanzmathematik. In der Stochastik sind dagegen hauptsächlich Pseudozufallszahlen wichtig, da man in der Regel immitierten Zufall“ simulieren will.
”
Wir wollen nun die Generierung von Pseudo– und Quasizufallszahlen in R veranschaulichen und
verbinden dies mit dem Kennenlernen einiger grundlegender R–Befehle und Funktionen.
Als erstes benötigen wir zur Erzeugung von Sequenzen von Quasi–Zufallszahlen ein Paket, das
nicht automatisch geladen wird. Ist ein Paket bereits installiert wird dieses durch library geladen.
> library ( fOptions )
Lade n ö t i g e s P a k e t : t i m e D a t e
Lade n ö t i g e s P a k e t : t i m e S e r i e s
Lade n ö t i g e s P a k e t : f B a s i c s
Lade n ö t i g e s P a k e t : MASS
Rmetrics Package f O p t i o n s ( 2 9 0 . 7 5 ) loaded .
Wenn das Paket noch nicht installiert wurde, kann der Download und die Installation durch den
Befehl install .packages(package=fOptions) aufgerufen werden. Eine große Auswahl an Paketen steht auf diese Weise über einen CRAN Mirror bereit. Will man andere Pakete (z. Bsp. von
Autoren zu Büchern) laden, werden diese als zip Dateien über Menü-Pakete-Installiere Paket(e)
aus lokalen zip Dateien installiert. Haben wir das nötige Paket geladen, stehen uns nun Funktionen zur Erzeugung von Quasi–Zufallszahlen bereit.
> u1<−r u n i f . s o b o l ( n =1000 , d i m e n s i o n = 1)
> u2<−r u n i f . p s e u d o ( n =1000 , d i m e n s i o n = 1)
Neben Sobol– können durch . halton auch Halton–Sequenzen erzeugt werden. Wir haben durch
Zuweisungen nun zwei Vektoren definiert.
> s t r ( u1 )
num [ 1 : 1 0 0 0 , 1 ] 0 . 5 0 . 7 5 0 . 2 5 0 . 3 7 5 0 . 8 7 5 . . .
10
> s t r ( u2 )
num [ 1 : 1 0 0 0 , 1 ] 0 . 7 1 9 0 . 9 5 1 0 . 9 5 5 0 . 3 6 2 0 . 7 3 2 . . .
Mit der plot Funktion lassen sich diese grafisch darstellen. Zum Vergleich von Pseudo– und
Quasi–Zufallszahlen wollen wir beide nebeneinander plotten.
> par ( mfrow=c ( 1 , 2 ) )
> p l o t ( u1 , main=” Sobol −Quasi −Z u f a l l s z a h l e n ” , t y p e =” p ” , c e x = . 5 , x l a b =” ” , y l a b =” ” )
> p l o t ( u2 , main=” P s e u d o z u f a l l s z a h l e n ” , t y p e =” p ” , c e x = . 5 , x l a b =” ” , y l a b =” ” )
> dev . o f f ( )
null device
1
Durch den ersten Befehl bewirken wir die Darstellung von 2 Grafiken in einer Zeile. Der Befehl
dev. off () setzt alle geänderten Grafikparameter wieder zurück. Durch unsere hinzugefügten Optionen wird die Überschrift, sowie (keine) Betitelung der Achsen und die Größe der dargestellten
Punkte gesteuert.
Die Darstellungen der jeweils 1000 erzeugten uniform auf [0, 1] verteilten Quasi– und Pseudozufallszahlen zeigen deutliche Unterschiede auf. Während die Pseudozufallszahlen chaotisch (also
zufällig) erscheinen, weisen die Quasi–Zufallszahlen ein klares Muster auf.
Wir erzeugen analog zweidimensionale uniforme Quasi–Sobol–Zufallszahlen:
> v2<−r u n i f . s o b o l ( n =1000 , d i m e n s i o n = 2)
> p l o t ( v2 , c o l =” g r e e n ” , c e x = . 5 )
> s t r ( v2 )
num [ 1 : 1 0 0 0 , 1 : 2 ] 0 . 5 0 . 7 5 0 . 2 5 0 . 3 7 5 0 . 8 7 5 . . .
Die erzeugte Darstellung zeigt wieder das gut erkennbare Muster.
11
Wir haben jetzt eine 2 × 1000 Matrix erzeugt. Einzelne Einträge und Spaltenvektoren ruft man
wie folgt auf:
> v2 [ 1 , 1 ]
[1] 0.5
> v2 [ 1 , 2 ]
[1] 0.5
> u 2 t<−v2 [ , 1 ]
> s t r ( u2t )
num [ 1 : 1 0 0 0 ] 0 . 5 0 . 7 5 0 . 2 5 0 . 3 7 5 0 . 8 7 5 . . .
> d i f f<−u 2 t −u2
> str ( diff )
num [ 1 : 1 0 0 0 , 1 ] 0 0 0 0 0 0 0 0 0 0 . . .
Es zeigt sich, dass die generierten Werte dieselben wie oben für u2 sind, also ganz und gar nicht
zufällig.
> v1<−r u n i f . p s e u d o ( n =1000 , d i m e n s i o n = 2 )
> p o i n t s ( v1 , c o l =” b l u e ” , c e x = . 5 )
12
Dieser Befehl fügt dem bereits vorhandenen plot die Darstellung von zweidimensionalen Pseudozufallszahlen hinzu. Das nachträgliche Hinzufügen von weitern Bestandteilen zu einem plot
ist die gängige Arbeitsweise in R.
Abschließend sei noch die Konstruktion einer Halton–Folge als einfaches Beispiel zur Erzeugung
von Quasi–Zufallszahlen angefügt.
Man wähle eine Primzahl p als Basis und einen Startwert m 6= 0 und stelle m zur Basis p dar:
m=
k
X
aj p j .
j=0
Man verfährt analog mit (m + 1), . . ..
Die Haltonzahlen sind nun durch
h=
k
X
aj p−j−1
j=0
gegeben. Die folgende Tabelle enthält die ersten drei Haltonzahlen zum Startwert m = 3 für
p = 2.
13
m
3
4
5
..
.
1.3
binäre Darstellung
11.0
100.0
101.0
..
.
h
3/4
1/8
5/8
..
.
Transformation uniformer Zufallszahlen
Wie oben erwähnt ist die Erzeugung uniform verteilter Pseudozufallszahlen das (zahlentheoretische) Grundproblem zur stochastischen Simulation. Um aus uniform verteilten Zufallszahlen
Sequenzen mit anderen Verteilungen zu erhalten, gibt es eine Vielzahl von Transformationsmethoden. Wir werden hier nur wenige Beispiele näher betrachten und die wichtigste Methode, die
Inversionsmethode, vorstellen.
Auch diskret verteilte Zufallszahlen lassen sich problemlos aus der (stetigen) uniformen Verteilung auf dem Einheitsintervall gewinnen. Eine Bernoulli–Verteilung beispielsweise erhält man
sehr einfach, indem man die Abbildung
8
<
1 für U ≤ 1/2
T (U ) = :
0 für U > 1/2
anwendet. Da sich binomialverteilte Zufallsvariablen als Summe unabhängiger Bernoulli–
verteilter darstellen lassen, ist diese bekannte diskrete Verteilung damit auch einfach zu handhaben.
1.3.1 Erzeugung normalverteilter Zufallszahlen
Die Normalverteilung wird im Rahmen des Kurses die am häufigsten verwendete Verteilung sein,
auch allgemein steht sie im Mittelpunkt der Stochastik. Eine reellwertige Zufallsvariable heißt
N(µ, σ 2 )–verteilt, wenn sie die stetige Dichte
fµ,σ2 (x) = √
1
exp (−(x − µ)2 /2)
2πσ
bezüglich des Lebesguemaßes besitzt.
Ist X normalverteilt mit Parametern µ und σ 2 gilt
X = µ + σZ ,
wobei Z standardnormalverteilt ist. Dadurch beschränkt sich das Problem auf die Erzeugung
standardnormalverteilter Pseudozufallszahlen aus uniform verteilten. Eine Transformationsmethode hierzu bietet die Box–Muller–Methode: Es seien U, V unabhängig U[0, 1]–verteilt. 2πV
ist uniform auf dem Intervall [0, 2π] verteilt und unabhängig zu U . Daher sind
È
(X, Y ) =
−2 log U (cos 2πV , sin 2πV )
zwei unabhängig standardnormalverteilte Zufallsvariablen.
14
Lemma 1.3. Sind X, Y i. i. d. N(0, 1)–verteilt und
R=
√
X2 + Y 2
Φ = arctan
Y
X
,
dann sind Φ und R unabhängig und Φ ∼ U[0, 2π] und die Verteilung von R besitzt die Verteilungsfunktion
r2
FR (r) = 1 − e− /2 .
Damit ergibt sich neben der Box–Muller–Methode die Möglichkeit aus uniform auf dem
Einheitskreis verteilten (U, V ) (erhält man durch die Verwerfungsmethode) durch
s
(X, Y ) =
−2 log (U 2 + V 2 )
(U, V )
U2 + V 2
ein solches Paar unabhäniger standardnormalverteilter Zufallszahlen zu erzeugen. Da die Berechnung von Funktionswerten trigonometrischer Funktionen Zeit erfordert, ist diese Methode
vorzuziehen.
Wir werden nun in R eine zweidimensionale Normalverteilungsdichte grafisch darstellen und
dabei einige weitere Grundlagen zur Erstellung von plots in R kennenlernen. So geben wir ein
diskretes Gitter vor (grid), auf dem die Funktionswerte der stetigen Dichte berechnet werden.
Zur Berechnung der Werte der zweidimensionalen Gaußdichte auf diesem Gitter schreiben wir
eine function. Den Vektor mit den Gitterpunkten erzeugen wir mit seq und zur Darstellung zweidimensionaler Funktionen benutzt man am besten einen Perspektivplot persp.
>
>
>
>
>
>
>
>
+
+
+
+
+
+
>
+
+
+
+
+
+
+
mu1<−0
mu2<−0
s 1 1<−10
s 2 2<−10
r h o<−0 . 5
g r i d<−s e q ( −10 ,1 0 , l e n g t h = 4 1 )
f<−f u n c t i o n ( x1 , x2 ) {
t e r m 1 <− 1 / ( 2 ∗ p i ∗ s q r t ( s 1 1 ∗ s 2 2 ∗(1− r h o ˆ 2 ) ) )
t e r m 2 <− −1 / ( 2 ∗(1− r h o ˆ 2 ) )
t e r m 3 <− ( x1−mu1 ) ˆ 2 / s 1 1
t e r m 4 <− ( x2−mu2 ) ˆ 2 / s 2 2
t e r m 5 <− −2∗ r h o ∗ ( ( x1−mu1 ) ∗ ( x2−mu2 ) ) / ( s q r t ( s 1 1 ) ∗ s q r t ( s 2 2 ) )
t e r m 1 ∗ exp ( t e r m 2 ∗ ( t e r m 3 + term4 −t e r m 5 ) ) }
p e r s p ( g r i d , g r i d , o u t e r ( g r i d , g r i d , f ) , x l a b =” ” , y l a b =” ” , z l a b =” ” ,
main=” Z w e i d i m e n s i o n a l e N o r m a l v e r t e i l u n g ” ,
col =heat . c o l o r s ( 1 0 ) ,
t h e t a =30 , p h i =20 ,
r =50 ,
d =0.1 ,
expand = 0 . 5 ,
box=FALSE )
15
> mtext ( e x p r e s s i o n ( l i s t ( mu [ 1 ] = = 0 , mu [ 2 ] = = 0 , s i g m a [ 1 1 ] = = 1 0 ,
+ sigma [22]==10 , rho = = 0 ) ) , s i d e =3)
1.3.2 Die Inversionsmethode
Die Inversionsmethode (auch Quantiltransformation oder F −1 –Trick) bietet eine einfache und
effiziente Methode aus uniform verteilten Zufallszahlen andere Verteilungen zu erhalten.
Definition 1.4. Es sei F eine streng monotone Verteilungsfunktion. Die Funktion
8
<
inf {x|F (x) ≥ u}
, u ∈ (0, 1]
F −1 (u) := :
sup {x ∈ R|F (x) = 0} , u = 0
heißt Quantilfunktion der zugehörigen Verteilung.
16
Lemma 1.5. Ist U ∼ U[0, 1] ⇒ X = F −1 (U ) ∼ F für jede streng monotone Verteilungsfunktion F . Die letzte Aussage bedeutet, dass die Zufallsvariable F −1 (U ) verteilt ist nach der zu F
gehörenden Verteilung.
Beweis.
€
F (x) = P (X ≤ x) = P F −1 (U ) ≤ x
Š
= P (U ≤ F (x)) = F (x)
Mit der Inversionsmethode lassen sich somit Verteilungen mit stetiger Dichte durch Anwendung der Quantilfunktion auf eine uniform verteilte Sequenz samplen. Beispielsweise ist
1
− log U ∼ Exp(λ) .
λ
Für diskrete Verteilungen ohne streng monotone Verteilungsfunktion kann zwar nicht einfach die
Inverse gebildet werden, aber eine leichte Modifikation der Inversionsmethode lässt sich auch zur
Erzeugung diskret verteilter Pseudozufallszahlen anwenden.
Es seinen pi , i ∈ I die diskreten Gewichte der Verteilung zu den Werten mi , i ∈ I, m1 < m2 <
. . . < mI . Die rechtsstetige Treppenfunktion
X
P (x) =
pi
i|mi ≤x
ist die zugehörige Verteilungsfunktion. Wenn nun u eine auf dem Einheitsintervall uniform verteilte Pseudozufallszahl ist, kann durch
x := min {t, u ≤ P (t)}
eine Pseudozufallszahl der diskreten Verteilung erzeugt werden.
17
Die Veranschaulichung der Inversionsmethode für diskrete Verteilungen wurde mit folgendem
R–Code erzeugt:
>
>
>
>
>
>
>
library ( matlab )
p l o t ( 0 : 3 , pbinom ( 0 : 3 , 3 , . 5 )
s e g m e n t s ( 0 , pbinom ( 0 , 3 , . 5 )
s e g m e n t s ( 1 , pbinom ( 1 , 3 , . 5 )
s e g m e n t s ( 2 , pbinom ( 2 , 3 , . 5 )
arrows ( 0 , u , c e i l ( u∗ 3 ) , u )
s e g m e n t s ( c e i l ( u∗ 3 ) , u , c e i l
, x l a b =” ” , y l a b =” ” , y l i m =c ( 0 , 1 ) )
, 1 , pbinom ( 0 , 3 , . 5 ) )
, 2 , pbinom ( 1 , 3 , . 5 ) )
, 3 , pbinom ( 2 , 3 , . 5 ) )
( u∗ 3 ) , − . 0 5 , l t y = 3 )
1.3.3 Erzeugung Poisson–verteilter Zufallszahlen
Um von einer Poisson–Verteilung zu samplen, gibt es die Möglichkeit von der uniformen Verteilung aus über eine Transformation mit der Inversionsmethode zu einer Exponentialverteilung zu
gelangen und durch Summation n unabhängiger exponentialverteilter Zufallsvariablen zu einer
18
Γ(n, λ)–Verteilung:
i. i. d.
Ui ∼ U[0, 1] ⇒ −
1
i. i. d.
log Ui ∼ Exp(λ) ⇒
λ
n
X
Xi ∼ Γ(n, λ) .
1
Nun ist für λ = 1 die Anzahl der Summanden n, für die die Summe zum ersten mal den Wert
t > 0 überschreitet, Poisson–verteilt mit Parameter t (vgl. Poisson–Prozesse in Kapitel 5). Daraus kann man eine Methode zur Generierung von Poisson–verteilten (Pseudo–)Zufallszahlen
ableiten:
n
P = min {n|
X
− log Ui > t} ∼ P oiss(t) .
1
Wir werden nun die Zähldichte/Gewichte einer P oiss(3.5)–Verteilung plotten als Beispiel der
grafischen Darstellung von Gewichten diskreter Verteilungen. Wie für stetige Verteilungen die
Dichte, wird durch dpois die Zähldichte benannt. Man stellt sie am besten in einem plot mit der
Option type=”h” dar.
> p l o t ( 0 : 1 5 , d p o i s ( 0 : 1 5 , lambda = 3 . 5 ) , t y p e =” h ” , lwd =3 ,
+ main=” G e w i c h t e e i n e r P o i s s o n v e r t e i l u n g ” ,
+ xlab=expression ( k ) , ylab=expression ( ”p” [ k ] ∗”” ) )
19
1.4
Qualitätskontrolle von Pseudozufallszahlengeneratoren
Für die Überprüfung, wie gut ein Zufallszahlengenerator ist in dem Sinne, dass er Sequenzen von
Pseudozufallszahlen erzeugt die möglichst gut echte Zufallszahlen imitieren, gibt es eine ganze
Reihe von Testverfahren. Neben dieser Eigenschaft spielt natürlich auch die Geschwindigkeit
des Generators bei der Erzeugung großer Samples eine entscheidende Rolle.
Wir wollen uns hier auf eine kurze Übersicht der Analyse der erhaltenen Pseudozufallszahlen
(empirische Tests) beschränken und keine systematischen Überprüfungen der Algorithmen betrachten. Bei den empirischen Test gibt es prinzipiell zwei Klassen:
1. Tests auf Gleichverteilung der Pseudozufallszahlen.
2. Tests auf Unabhängigkeit der Pseudozufallszahlen.
Die bekanntesten nichtparametrischen Verteilungstests, die zur Überprüfung der Gleichverteilungshypothese von einem erzeugten Pseudozufallszahlen–Sample angewandt werden können,
sind der χ2 –Test und der Kolmogorov–Smirnov–Test. Ersterer wird in Kapitel 4 als Beispiel
behandelt. Der Test kann jedoch nicht direkt zur Überprüfung reeller Zufallszahlen auf eine
kontinuierliche Verteilung mit stetiger Dichte verwendet werden. Man kann hier jedoch einen
Umweg gehen, indem man beispielsweise auf Gleichverteilung der erzeugten Zufallszahlen in
äquidistanten Intervallen testet.
Ein einfacher Verteilungstest für kontinuierlich verteilte Zufallszahlen liefert der Kolmogorov–
Smirnov–Test. Es seien U1 , . . . , UN i. i. d. U[0, 1]–verteilt.
FN (u) =
1
N
N
X
1{Ui ≤u}
i=1
Das Supremum der Abweichung zwischen empirischer und wahrer Verteilungsfunktion
1
∆N = sup |FN (u) − F (u)| = sup
u∈[0,1]
u∈[0,1] N
N X
i=1
u
1{Ui ≤u} − N
hat eine von F nicht abhängige Verteilung und eignet sich daher als Teststatistik (nicht nur für
die uniforme Verteilung).
Die zweite Klasse von Tests soll nun Pseudozufallszahlen, also eine rekursive deterministische
Zahlenfolge, auf (stochastische) Unabhängigkeit testen. Das folgende Zitat von Johann von Neumann
Anyone who considers arithmetical methods of producing random digits is, of course, in a
”
state of sin.“
verdeutlicht nochmal, dass wir hier Unabhängigkeit als ein strukturelles Verhalten wie eine Folge
von echten Zufallszahlen ansehen.
20
Die für diese Unabhängigkeitstests eingesetzten Testmethoden sind fast alle so konzipiert, dass
sie nur für ganzzahlige Zahlenfolgen (zumeist Bits) direkt angewandt werden können, was wiederum die oben erwähnte Intervalleinteilungsmethode“ erforderlich macht.
”
Die Tests untersuchen Strukturen in der Sequenz der Pseudozufallszahlen um vorhandene Autokorrelationen zu entdecken. Am bekanntesten sind die Run– und Serial–Tests. Bei den Run–
Tests wird analysiert, wie viele Teilsequenzen monoton steigender oder fallender Zahlen einer
bestimmten Länge in der gesamten Sequenz vorkommen. Bei den Serial–Tests dementsprechend
wie viele bestimmte Teilsequenzen. Da man kombinatorisch die Verteilung solcher Runs oder Serien bestimmen kann, eignen sie sich als Teststatistiken. Ähnliche Ideen liegen auch dem Poker–
Test und Permutationstests zugrunde.
Weitere Testmethoden entstehen durch eine Kombination mit Kolmogorov–Smirnov–Tests, wie
der Lückentest und der Maximum–Test. Für den Lückentest (gap test) sind zwei reelle Zahlen
α < β gegeben und man betrachtet die Längen der maximalen Teilfolgen (uj , . . . , uj+r ) bis eine
Beobachtung erstmals wieder in [α, β] liegt. Man spricht dann von einer Lücke der Länge r. Die
Lückenlängen sind geometrisch verteilt mit Parameter β − α, daher lässt sich leicht der KS–Test
anwenden.
Ähnlich funktioniert auch der Maximum–Test, der die Verteilung des Maximums von Sequenzen
bestimmter Länge mit dem KS–Test kombiniert.
1.5
Monte Carlo Methoden
1.5.1 Monte Carlo Integration
In der einfachsten Form ist die Monte Carlo Integration die näherungsweise Berechnung eines
Integrals der Form
Z
Z
b
b
g(x)dx =
h(x)f (x)dx
a
a
Z
=
h(x)dPf (x) = E (h(X))
durch den Mittelwert einer Sequenz von unabhängigen Pseudozufallszahlen mit Verteilung Pf :
n
1X
h(xi ) .
n i=1
S=
i.i.d.
Speziell mit Xi ∼ U [a, b] ergibt sich der Schätzer
S=
n
1X
g(xi )(b − a) .
n i=1
Der Schätzer ist erwartungstreu
E (S) =
n
(b − a) X
E [g(Xi )]
n
1
Z
b
=
g(x)dx
a
21
und nach dem Gesetz der großen Zahlen konsistent.
Für die Varianz gilt
Var(S) =
(b − a)2
n2
n
X
Var(g(Xi ))
i=1
=
2
Z b
(b − a) Z b
g(x) −
g(t)dt
a
a
n
dx .
Wir führen die Methode einer Monte Carlo Integration und Quasi-Monte Carlo Integration in R
am Beispiel einer sehr einfachen analytisch integrierbaren Funktion durch. Natürlich finden die
Methoden in der Praxis Anwendung für analytisch nicht einfach zu berechnende Integrale.
Zunächst definieren wir die Funktion und integrieren analytisch.
> f<−f u n c t i o n ( x ) { 3 x ˆ 2 }
> print ( i n t e g r a t e ( f ,0 ,1))
Als nächstes definieren wir eine Funktion mit den Parametern Integrand, obere und untere Intervallgrenze und Länge der verwendeten Sequenz n zur Monte Carlo Integration mit uniformen
Pseudozufallszahlen, sowie dı́eselbe Funktion mit Quasi–Zufallszahlen:
>
+
+
+
>
+
+
+
m c i n t<−f u n c t i o n ( f , l , u , n ) {
r a n<−r u n i f ( n , l , u )
f r a n<−f ( r a n )
r e t u r n ( mean ( abs ( u−l ) ∗ f r a n ) ) }
m c q u a s i i n t<−f u n c t i o n ( f , l , u , n ) {
r a n<−abs ( u−l ) ∗ r u n i f . s o b o l ( n , d i m e n s i o n = 1)
f r a n<−f ( r a n )
r e t u r n ( mean ( abs ( u−l ) ∗ f r a n ) ) }
Wir berechnen nun einige Werte der Monte Carlo und Quasi–Monte Carlo Integration der obigen
Funktion.
Es zeı́gt sich, dass die Quasi–Monte Carlo Integration bei kleinerem n näher am Ergebnis 1 liegt.
> mcint ( f ,0 ,1 ,100)
[ 1 ] 1.145873
> mcquasiint ( f ,0 ,1 ,100)
[ 1 ] 0.9876508
> mcint ( f ,0 ,1 ,1000)
[ 1 ] 0.9888699
> mcquasiint ( f ,0 ,1 ,1000)
[ 1 ] 0.999303
> mcint ( f ,0 ,1 ,10000)
[ 1 ] 1.004942
> mcquasiint ( f ,0 ,1 ,10000)
[ 1 ] 0.9997876
Wir können die Monte Carlo Methode auch mehrfach hintereinander ausführen und daraus Mittelwert, Standardabweichung etc. abschätzen. Bei Quasi-Zufallszahlen hat dies jedoch keinen
Effekt.
22
> i t e r a t e<−c ( r e p l i c a t e ( 1 0 0 , m c i n t ( f , 0 , 1 , 1 0 0 0 0 ) ) )
> mean ( i t e r a t e )
[ 1 ] 1.001105
> sd ( i t e r a t e )
[ 1 ] 0.008747136
1.5.2 Monte Carlo–Bänder
Monte Carlo Verfahren werden oft auch dazu genutzt Monte Carlo–Bänder für eine auf Pseudozufallszahlen basierende Statistik zu bestimmen. Das bedeutet die Generierung der Zufallszahlen
und Berechnung der Statistik wird in mehreren Iterationen wiederholt und man interessiert sich
für die maximalen Abweichungen. Diese Monte Carlo–Bänder kann man als eine Art von Konfidenzbändern ansehen. In vielen Modellen lassen sich auch nur Monte Carlo–Konfidenzbänder
bestimmen und keine theoretischen.
>
>
>
+
>
>
>
>
>
>
u<−r u n i f ( 1 0 0 )
g<− ( 1 : l e n g t h ( u ) ) / l e n g t h ( u )
p l o t ( g , s o r t ( u ) , main=” V e r t e i l u n g s f u n k t i o n m i t MC−B ä n d e r n ” , t y p e =” s ” ,
x l a b =” ” , y l a b =” F ” )
N<−50
U<−m a t r i x ( r u n i f (N∗ l e n g t h ( u ) ) , nrow= l e n g t h ( u ) )
U<−a p p l y (U, 2 , s o r t )
MCB<−t ( a p p l y (U, 1 , range ) )
l i n e s (MCB[ , 1 ] , s o r t ( u ) , t y p e =” s ” , c o l =” r e d ” )
l i n e s (MCB[ , 2 ] , s o r t ( u ) , t y p e =” s ” , c o l =” r e d ” )
Wir haben zunächst 100 uniform verteilte Pseudozufallszahlen generiert und das Gitter g. Anschließend wiederholen wir 50 Monte Carlo–Iterationen und definieren eine zugehörige 50×100
Matrix. Eine der wichtigsten Funktionen in R ist die Funktion apply bzw. sapply für Vektoren
und lapply für Listen. Damit wird eine Funktion, z.Bsp. hier die Ordnungsstatistik zu bilden
und in der Transponierten die Rückgabe von Minimum und Maximum mit range, auf alle Komponenten angewendet. R kann solche Vektoroperationen sehr viel schneller als entsprechende
Schleifenanweisungen durchführen.
23
Literatur
Gentle, J. E. (2003). Random Number Generation and Monte Carlo Methods. Berlin: Springer.
Lehmer, D. H. (1951). Mathematical methods in large-scale digital computing units. Proceeding
of the second symposium on large-scale digital computing machinery, 141–146.
Matsumoto, M. and T. Nishimura (1998). A 623-dimensional equidistributed uniform pseudorandom number generator. ACM Transaction on Model and Computer Simulation 8(1), 3–30.
Niederreiter, H. (1992). Random Number Generation and Quasi-Monte Carlo Methods. SIAM.
24
2
Uni– und Multivariate Datenanalyse
Das Ziel dieses Abschnittes ist es, den Umgang mit Datendateien in R kennen zu lernen, sowie
die grundlegenden Funktionen zur statistischen Datenanalyse. Die statistsischen Methoden zur
Residuenanalyse, linearen Modellen, Testverfahren und Zeitreihenanalyse werden in den Kapiteln 4, 6 und 8 genauer behandelt.
2.1
Univariate Daten
2.1.1 Umgang mit Datendateien in R
Als Beispiel für einen univariaten Datensatz betrachten wir im Folgenden die gemessene Lichtgeschwindigkeit in den Experimenten von Michelson. Obwohl es sich um univariate Daten handelt
(eine gemessene Größe = Geschwindigkeit) enthält die entsprechende Datei 4 Spalten mit jeweils 100 Einträgen. Die erste Spalte enthält einfach eine Durchnummerierung, die letzte die
Aufteilung in Experimente (1-5) und die dritte eine Durchnummerierung 1-20 in den einzelnen
Messreihen. Die zweite Spalte enthält die gemessenen Geschwindigkeiten in km/s, wobei die
Konstante 299000 abgezogen wird.
Eine Möglichkeit eine Datei in R einzulesen, welche nur numerische Einträge hat, bietet die
Funktion scan, mit der wir durch folgenden Code eine Matrix erzeugen und die Geschwindigkeiten als Spaltenvektor erhalten.
> setwd ( ”C : / Markus / RKurs /UDA” )
> l<−m a t r i x ( s c a n ( ” l i g h t s p e e d . d a t ” ) , n c o l = 10 0)
Read 400 i t e m s
> str ( l )
num [ 1 : 4 , 1 : 1 0 0 ] 1 850 1 1 2 740 2 1 3 900 . . .
> s p e e d<−l [ 2 , ]
Im Allgemeinen nutzt man die Funktion read. table, oder analoge Funktionen wie read.csv oder
read. xls bei speziellen Formaten, um einen Datenframe einzulesen. Dieser wird als Liste und
nicht als Matrix erzeugt. Da die Datei keine Bezeichnungen für die einzelnen Variablen enthält
werden diese mit V1,V2,V3 und V4 benannt.
> l<−read . t a b l e ( ” l i g h t s p e e d . d a t ” )
> str ( l )
’ d a t a . frame ’ :
100 o b s . o f 4 v a r i a b l e s :
$ V1 : i n t 1 2 3 4 5 6 7 8 9 10 . . .
$ V2 : i n t 850 740 900 1070 930 850 950 980 980 880 . . .
$ V3 : i n t 1 2 3 4 5 6 7 8 9 10 . . .
$ V4 : i n t 1 1 1 1 1 1 1 1 1 1 . . .
> attributes ( l )
$names
[ 1 ] ”V1” ”V2” ”V3” ”V4”
$ class
[ 1 ] ” d a t a . frame ”
25
$row . names
[1]
1
17 18
[ 1 9 ] 19
35 36
[ 3 7 ] 37
53 54
[ 5 5 ] 55
71 72
[ 7 3 ] 73
89 90
[ 9 1 ] 91
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
92
93
94
95
96
97
98
99 100
> dim ( l )
[ 1 ] 100
4
> i s . matrix ( l )
[ 1 ] FALSE
> is . list ( l )
[ 1 ] TRUE
> mode ( l )
[1] ” l i s t ”
> s p e e d<−l $V2
Wir können die Variablen des Datenframes auch nachträglich abändern.
> names ( l )
[ 1 ] ”V1” ”V2” ”V3” ”V4”
> names ( l )<−c ( ”No” , ” Speed ” , ”ExNo” , ” Ex ” )
Durch den folgenden Befehl können die Variablen des Datenframes direkt aufgerufen werden.
> attach ( l )
The f o l l o w i n g o b j e c t ( s ) a r e masked from l ( p o s i t i o n 3 ) :
Ex ExNo No Speed
Als nächstes betrachten wir nur die Messreihe des ersten Michelson–Experimentes. Dazu verwenden wir
die subset–Funktion.
> ex1<−s u b s e t ( l , Ex ==1)
> s<−ex1 $ Speed
2.1.2 Statistische Kenngrößen
Wir berechnen nun die wichtigsten Größen zur statistischen Datenanalyse. Bezeichnen wir unP
sere beobachteten Messungen mit x = {x1 , . . . , xn }, so sind dies der Mittelwert x̄ = ni=1 xi ,
26
> mean ( s )
[ 1 ] 909
È
die Standardabweichung
(1/(N − 1))
P
i (xi
− x̄)2 ,
> sd ( s )
[ 1 ] 104.9260
der Median med = x((n+1)/2) für n ungerade bzw. med = (1/2)(x((n/2)+1) + x(n/2) ) für gerade
n, wobei x(i) die i–te geordnete Statistik sei,
> median ( s )
[ 1 ] 940
und der Median der absoluten Abweichung M AD = (1/n)
P
i
|xi − med(x)|.
> mad ( s )
[ 1 ] 88.956
Eine weitere Kenngröße einer Verteilung ist ihre Schiefe (skewness). Diese ist definiert als das
dritte standardisierte Moment:
v(X) =
E [(X − EX)3 ]
.
Var(X)3/2
Die Schiefe einer empirischen Verteilung wird durch
ve (x) =
n−1
(n−1
P
P
i (xi
i (xi
− x̄)3
− x̄)2 ) /2
3
berechnet. Dies ist ein verzerrter
Schätzer für die Schiefe der Verteilung. Oft verwendet man
È
auch als Schätzer v̂(x) = ( n(n − 1)/(n − 2))ve (x).
Wir definieren eine Funktion, die für einen Vektor von Beobachtungen die (empirische) Schiefe
berechnet und wenden diese auf unsere Daten an:
> skew<−f u n c t i o n ( x ) {
+ s k e w n e s s<−
+ ( ( s q r t ( l e n g t h ( x ) ) ∗sum ( ( x−mean ( x ) ) ˆ 3 ) ) / ( sum ( ( x−mean ( x ) ) ˆ 2 ) ) ˆ ( 3 / 2 ) )
+ return ( skewness )}
> skew ( s )
[ 1 ] −0.890699
Wenden wir die summary–Funktion auf einen Datenframe an, erhalten wir direkt eine Übersicht
über die wichtigsten Kenngrößen, nämlich Mittelwert, Minimum und Maximum, Quartile und
damit Interquartilsabstand und den Median.
> summary ( ex1 )
No
Min .
: 1.00
1 s t Qu . : 5 . 7 5
Median : 1 0 . 5 0
Speed
Min .
: 650
1 s t Qu . : 850
Median : 940
ExNo
Min .
: 1.00
1 s t Qu . : 5 . 7 5
Median : 1 0 . 5 0
27
Ex
Min .
:1
1 s t Qu . : 1
Median : 1
Mean
:10.50
3 r d Qu . : 1 5 . 2 5
Max .
:20.00
Mean
: 909
3 r d Qu . : 980
Max .
:1070
Mean
:10.50
3 r d Qu . : 1 5 . 2 5
Max .
:20.00
Mean
:1
3 r d Qu . : 1
Max .
:1
2.1.3 Darstellung und Analyse empirischer Verteilungen
Eine Veranschaulichung einer empirischen Verteilung liefert der so genannte Box–Whisker–Plot.
Er kennzeichnet den Median durch einen Strich und den Bereich zwischen erstem und drittem
Quartil durch eine Box. Außerhalb der Box sind noch die Whisker eingezeichnet, für die unterschiedliche Definitionen verwendet werden. In R sind deren Länge durch das 1.5–fache des Interquartilsabstandes begrenzt, liegen jedoch bei Beobachtungspunkten. Werte die außerhalb der
Whisker liegen werden separat dargestellt. Durch die Option notch = T RU E können desweitern Kerben bei ±1.58 IQR n−1/2 eingezeichnet werden. Diese sind so gewählt, dass wenn sich
zwei Boxplots unterschiedlicher Beobachtungen im Bereich dieser Kerben nicht überschneiden,
die Mediane zum Signifikanzniveau von 0.05 nicht gleich sind.
> boxplot ( s )
28
Neben dem gewöhnlichen Boxplot bietet R eine Reihe weiterer grafischer Methoden zur Veranschaulichung einer empirischen Verteilung. Von links nach rechts enthält die nächste Abbildung einen Dichteboxplot, der einen Boxplot für die Konzentration einer geschätzten Dichte
der Verteilung erstellt, einen Violinplot, der den Median und die Quartile kombiniert mit einer
Dichteschätzung abbildet, einen Perzentil–Boxplot, der eine genauere Aufspaltung im Vergleich
zum Standard–Boxplot nach empirischen Quantilen bietet, sowie den gewöhnlichen Standard–
Boxplot.
> require ( hdrcde )
> require ( v i o p l o t )
> r e q u i r e ( Hmisc )
> par ( mfrow=c ( 1 , 4 ) )
> hdr . boxplot ( s )
> vioplot ( s )
> bpplot ( s )
> boxplot ( s )
> dev . o f f ( )
null device
1
29
Wie wir in dem Boxplot zur Messreihe des ersten Michelson–Experimentes sehen, gab es einen
Ausreißer“, der im Vergleich zu allen anderen Werten stark nach unten abweicht. Dadurch
”
beeinflusst dieser die statistischen Kenngrößen, vor allem die Standardabweichung, stark. Daher
betrachten wir nun die Messreihe ohne diesen Ausreißer mit den neu berechneten Kenngrößen.
> s t r i m<−s [ which ( s >700) ]
> summary ( s t r i m )
Min . 1 s t Qu . Median
Mean 3 r d Qu .
740.0
865.0
950.0
922.6
980.0
Max .
1070.0
Wenn wir einen Datensatz vorliegen haben, der sich, wie in unserem Falle, in verschiedene Kategorien (5 Experimente) gliedert, kann ein Vergleich der einzelnen Experimente durch mehrere
Boxplots in einem Graph eine gute Veranschaulichung sein.
> b o x p l o t ( l $ Speed ˜ l $Ex )
Um zwei Verteilungen (bzw. empirische Verteilungen) zu vergleichen, betrachtet man einen so
genannten Quantile–Quantile(Q–Q)–Plot, in dem die Quantile der Verteilungen gegeneinander
aufgetragen werden. In R wird dieser durch qqplot aufgerufen. Interessiert man sich speziell für
einen Vergleich zu den theoretischen Quantilen der Normalverteilung wird dieser durch qqnorm
30
erstellt. Wenn die Punkte im Q–Q–Plot eine Gerade bilden bzw. nahe der eingezeichneten Gerade
liegen, deutet dies auf eine Normalverteilung der Beobachtungen hin. Mit einem t–Test wird die
Hypothese gleicher Mittelwerte der einzelnen Messungen unter der Normalverteilungsannahme
bei konstanter fester Varianz getestet. Die Prozedur t . test gibt den p–Wert, den Wert der t–
Statistik, die Freiheitsgrade und ein 0.95–Konfidenzintervall mit aus. Der t–Test wird ausführlich
in Kapitel 4 vorgestellt.
> qqnorm ( s )
> qqline ( s )
> t . test (s)
One Sample t− t e s t
data : s
t = 3 8 . 7 4 3 2 , d f = 1 9 , p−v a l u e < 2 . 2 e −16
a l t e r n a t i v e h y p o t h e s i s : t r u e mean i s n o t e q u a l t o 0
95 p e r c e n t c o n f i d e n c e i n t e r v a l :
859.8931 958.1069
sample e s t i m a t e s :
mean o f x
909
31
2.1.4 Laufzeitanalysen in R
Um die Effizienz von selbst definierten Funktionen oder einem Code in R zu analysieren und
gegebenenfalls zu verbessern, kann man mit Hilfe der Funktionen system.time, gc.time und
proc.time Laufzeitanalysen durchführen. Prinzipiell sind Vektoroperationen Schleifen vorzuziehen, da sie von R schneller durchgeführt werden.
> s<−l $ Speed
> proc . t i m e ( s c<− ( ( s + 2 9 9 0 0 0 ) / 2 9 9 7 3 4 ) ˆ 2 )
User
System v e r s t r i c h e n
1.04
0.31
72.82
> proc . t i m e ( s c<−s a p p l y ( s , f u n c t i o n ( x ) ( ( x +2 990 00) / 2 9 9 7 3 4 ) ˆ 2 ) )
User
System v e r s t r i c h e n
1.04
0.34
81.81
> s c<−f u n c t i o n ( s ) {
+ s c<−NULL
+ for ( i in 1: length ( s )){
+ s c [ i ]<− ( ( s [ i ] + 2 9 9 0 0 0 ) / 2 9 9 7 3 4 ) ˆ 2 }
+ return ( sc )}
> proc . t i m e ( s c ( s ) )
User
System v e r s t r i c h e n
1.06
0.39
121.48
detach(l )
2.2
Multivariate Daten
Als Beispiel für einen multivariaten Datensatz betrachten wir die für den Mietspiegel in München
2003 erhobenen Daten. Dazu wurden 2053 Wohnungen einbezogen und der Datensatz enthält 16
Variablen. Da in der ersten Zeile die Variablennamen stehen, fügen wir beim Einlesen nun die
Option header=TRUE hinzu. Während manche Variablen positiv reellwertig sind (z. Bsp. Gesamtkaltmiete), sind andere diskret (z. Bsp. Bezirkeinteilung) oder sogar dichotom (z. Bsp. Zentralheizung).
> m i e t e<−read . t a b l e ( f i l e =” m i e t e 0 3 . a s c ” , h e a d e r =TRUE)
> s t r ( miete )
’ d a t a . frame ’ :
2053 o b s . o f 16 v a r i a b l e s :
$ GKM
: num 741 716 528 554 698 . . .
$ QMKM : num 1 0 . 9 1 1 . 0 1 8 . 3 8 8 . 5 2 6 . 9 8 . . .
$ QM
: i n t 68 65 63 65 100 81 55 79 52 77 . . .
$ Zi
: int 2 2 3 3 4 4 2 3 1 3 . . .
$ BJ
: num 1918 1995 1918 1983 1995 . . .
$ B
: i n t 2 2 2 16 16 16 6 6 6 6 . . .
$ L
: int 1 1 1 0 1 0 0 0 0 0 . . .
$ best
: int 0 0 0 0 0 0 0 0 0 0 . . .
$ WW
: int 0 0 0 0 0 0 0 0 0 0 . . .
32
$
$
$
$
$
$
$
ZH
:
BK
:
BA
:
KUE
:
BJKL :
QMKL :
QMKMKL:
int
int
int
int
num
num
num
0
0
0
0
1
2
3
0
0
0
0
6
2
3
0
0
0
0
1
2
2
0
0
1
0
5
2
2
0
0
1
1
6
3
1
0
0
0
0
5
3
3
0
0
1
0
2
2
1
0
0
0
0
2
2
1
0
0
0
0
3
2
2
0
0
0
0
2
2
1
...
...
...
...
...
...
...
> attach ( miete )
Zur Analyse der Daten kann es manchmal nützlich sein neue Variablen hinzuzufügen und zu
berechnen. Oftmals will man eine Größe nach Klassen einteilen, wozu man geeignete Bereiche
wählt und dann die Einteilung vornimmt.
Wir werden nun die Wohnungen nach Alter/Baujahr in 6 Klassen gliedern. Wir definieren hierzu
im Datenframe miete“ eine neue Variable BJKL“. Zusätzlich teilen wir die Wohnungen nach
”
”
ihrer Größe in Quadratmeter in 3 Klassen ein und gehen hierbei analog vor.
> m i e t e $BJKL<−1∗ ( BJ <=1918)+2 ∗ ( BJ <=1948) ∗ ( BJ >1919)+3 ∗ ( BJ <=1965) ∗ ( BJ >1948)
+4∗ ( BJ <=1977) ∗ ( BJ >1965)+5 ∗ ( BJ <=1983) ∗ ( BJ >1977)+6 ∗ ( BJ >1983)
> m i e t e $QMKL<−1∗ (QM<=50)+2 ∗ (QM>50) ∗ (QM<=80)+3 ∗ (QM>80)
Der nachfolgende Code erzeugt nach und nach in Schritten die unten dargestellte Grafik. Zuerst
stellen wir in einer Punktedarstellung den Zusammenhang der Variablen Gesamtkaltmiete und
Größe in Quadratmeter dar. Es ist anzunehmen, dass die Wohnungsgröße die wichtigste Variable
zur Bestimmung der Gesamtmiete ist. Wir legen anschließend durch die entstandene Punktwolke
mit dem abline Befehl eine Gerade mit der mittleren Kaltmiete pro Quadratmeter als Steigung.
Wir zeichnen zusätzlich Geraden, bei denen wir einmal zur Steigung die Standardabweichung
addieren und einmal abziehen.
Betrachten wir nun einmal die Werte der Kaltmiete pro Quadratmeter in den einzelnen Klassen der Wohnungsgrößen, entdecken wir dass es Unterschiede zwischen den Mittelwerten gibt
und insgesamt kein rein linearer Zusammenhang zwischen der Gesamtmiete und der Wohnungsgröße besteht. Wir zeichnen Geradenstücke mit den unterschiedlichen Mittelwerten als Steigung
in den einzelnen Bereichen mit dem Befehl segment ein. Mit dem Befehl fitted (lm(GKM˜QM))
kann man die Kleinste–Quadrate–Regressionsgerade bestimmen und einzeichnen. Die Regression wird in Kapitel 6 ausführlich behandelt werden.
>
>
>
>
>
>
>
>
>
p l o t (QM,GKM)
a b l i n e ( 0 , mean (QMKM) , c o l =” b l u e ” )
a b l i n e ( 0 , mean (QMKM) + sd (QMKM) , c o l =” r e d ” , l t y = 4)
a b l i n e ( 0 , mean (QMKM)− sd (QMKM) , c o l =” r e d ” , l t y = 4)
z<−t a p p l y (QMKM,QMKL, mean )
s e g m e n t s ( 0 , 0 , 5 0 , z [ 1 ] ∗ 5 0 , c o l =” g r e e n ” , lwd =2 , l t y = 2)
s e g m e n t s ( 5 0 , 5 0 ∗ z [ 2 ] , 8 0 , z [ 2 ] ∗ 8 0 , c o l =” l i g h t g r e e n ” , lwd =3 , l t y = 2)
s e g m e n t s ( 8 0 , 8 0 ∗ z [ 3 ] , 2 0 0 , z [ 3 ] ∗ 2 0 0 , c o l =” d a r k g r e e n ” , lwd =2 , l t y = 2)
l i n e s (QM, f i t t e d ( lm (GKM˜QM) ) , c o l =” y e l l o w ” )
33
Den Zusammenhang und Korrelationen zwischen verschiedenen (diskret ausgeprägten) Merkmalen kann man mit den Funktionen mosaicplot und assocplot anschaulich darstellen. Wir werden
dies für unsere Klasseneinteilung von Baujahr und Größe der Wohnungen tuen, um daraus auf
Zusammenhänge zwischen den Variablen zu schließen.
> par ( mfrow=c ( 1 , 2 ) )
> m o s a i c p l o t ( t a b l e ( BJKL ,QMKL) , c o l =TRUE)
> a s s o c p l o t ( t a b l e ( BJKL ,QMKL) )
34
Auffällig ist der Zusammenhang, dass Wohnungen in Häusern, die sehr alt (1918 oder älter) sind,
meistens größer sind und nur ein geringer Anteil aus diesen Baujahren im Bereich der kleinsten
Wohnungen liegt.
Wir teilen nun auch noch die Kaltmiete pro Quadratmeter in Klassen und untersuchen den Zusammenhang zur Wohnlage, die hier durch eine dichotome Variable(1=gute Lage) angegeben
wird.
> m i e t e $QMKMKL<−1∗ (QMKM<=8)+2 ∗ (QMKM>8)∗ (QMKM<=10)+3 ∗ (QMKM>10) ∗ (QMKM<=12)
+4∗ (QMKM>12)
> m o s a i c p l o t ( t a b l e (QMKMKL, L ) , c o l =TRUE)
> a s s o c p l o t ( t a b l e (QMKMKL, L ) )
35
Wie nicht anders zu erwarten war sind in guter Lage mehr Wohnungen mit hoher Durchschnittsmiete und
in nicht so guter Lage mehr günstigere Wohnungen vertreten. Abschließend werden wir die diskrete Variable der Baujahr–Klassen betrachten und interessieren uns für die relativen Anteile an Wohnungen, die
in bestimmten Zeitabschnitten entstanden sind. Dazu verwenden wir die Funktion length zur Bestimmung
der Anzahl und die Funktion which zur Auswahl. Die Aufspaltung der relativen Verhältnisse kann man in
einem Kreis– oder Balkendiagramm darstellen.
>
>
+
>
+
>
>
h<−numeric ( 6 )
for ( i in 1:6){
h [ i ]<−l e n g t h ( which ( BJKL== i ) ) }
names ( h )<−c ( ” v o r 1918 ” , ” 1919 −1948 ” , ” 1948 −1965 ” , ” 1966 −1977 ” ,
” 1978 −1983 ” , ” Neubau ” )
p i e ( h , c o l =rainbow ( 6 ) )
b a r p l o t ( h , c o l = h e a t . c o l o r s ( 6 ) , d e n s i t y =1 00 )
Literatur
Faes, G. (2007). Einführung in R: Ein Kochbuch zur statistischen Datenanalyse mit R. Books on
Demand GmbH.
Maindonald, J. H. and J. Braun (2007). Data Analysis and graphics using R: an example-based
approach (2 ed.). Cambridge University Press.
Stahel, W. A. (2002). Statistische Datenanalyse (4 ed.). Vieweg.
36
3
Nichtparametrische Dichteschätzung
Nachfolgend bezeichnen X1 , . . . , Xn reellwertige i. i. d. Zufallsvariablen, deren Verteilung die
Dichte f bezüglich des Lebesgue–Maßes besitzt.
Für die nachfolgenden Datenbeispiele verwenden wir den bereits in R integrierten faithful–
Datensatz, welcher 272 beobachtete Ausbrüche des “Old Faithful”–Geysirs im Yellowstone National Park mit Eruptionsdauer in Minuten sowie der Wartezeit bis zum nächsten Ausbruch in
Minuten enthält.
3.1
Gewichteter Histogramm–Schätzer und empirische Verteilungsfunktion
Beim gewichteten Histogramm–Schätzer werden Intervalle ( bins“) Is = (as−1 , as ], s ∈ {1, . . . , d}
”
fest vorgegeben. Wenn ns := #{xi ∈ Is , i ∈ {1, . . . , n}} die Anzahl an Realisierungen im Intervall Is bezeichnet, ist der gewichtete Histogramm–Schätzer durch
ns
n
1
fˆhist (x) =
1{Is } (x) = s 1{Is } (x)
n as − as−1
nh
gegeben, wobei die letzte Gleichung nur für gleiche Intervalllängen h = as − as−1 ∀s ∈
{1, . . . , d} gilt. Der R–Code
> data ( f a i t h f u l )
> e r<− f a i t h f u l $ e r u p t i o n s
> h i s t ( e r , f r e q =FALSE , c o l =” g r e y ” )
erzeugt ein Histogramm der Eruptionsdauern der faithful–Daten.
Die empirische Verteilungsfunktion ist definiert durch
Fn (x) =
n
1
#{xi |xi ≤ x, i ∈ {1, . . . , n} X
=
1(−∞,x] (xi ) .
n
i=1 n
Nachdem starken Gesetz der großen Zahlen gilt limn→∞ Fn (x) = F (x) fast sicher. Der Satz von
Glivenko-Cantelli liefert das stärkere Resultat der fast sicheren gleichmäßigen Konvergenz:
lim sup |Fn (x) − F (x)| = 0 f.s. .
n→∞ x∈R
Die empirische Verteilungsfunktion kann in R folgendermaßen berechnet und dargestellt werden:
> ecdf ( er )
E m p i r i c a l CDF
Call : ecdf ( er )
x [1:126] =
1.6 , 1.667 ,
1.7 ,
... ,
5.067 ,
> summary ( e c d f ( e r ) )
E m p i r i c a l CDF :
126 unique v a l u e s w i t h summary
37
5.1
Min . 1 s t Qu . Median
Mean 3 r d Qu .
1.600
2.271
3.841
3.472
4.429
> p l o t ( e c d f ( e r ) , do . p o i n t s =FALSE )
Max .
5.100
Die Option do.points=FALSE bewirkt, dass nur die Treppenfunktion ohne Sprungpunkte geplottet wird.
Nachteil des gewichteten Histogramm–Schätzers:
Schätzer hängt von der Wahl der bin–Längen und des Startwertes ab!
3.2
Gleitender Histogramm–Schätzer
Durch den gleitenden Histogramm–Schätzer
n
#{xi |xi ∈ (x − h, x + h]}
Fn (x + h) − Fn (x − h)
1 X
x − xi
fˆGH (x) :=
=
=
KR
2hn
2h
nh i=1
h
mit KR (x) = (1/2)1{−1,1} (x), bei dem jede Beobachtung Mittelpunkt eines bins ist, lässt sich
das Startwertproblem lösen.
Die folgende Funktion konstruiert für einen Vektor x und eine Bandweite h den gleitenden
Histogramm–Schätzer bzw. Kerndichteschätzer mit Rechteckkern durch Summation der einzelnen bumps“:
”
>
>
+
+
+
+
+
+
+
r e c<−f u n c t i o n ( x ) { ( abs ( x ) <1) ∗ 0 . 5 }
r e c b u m p s<−f u n c t i o n ( x , h ) {
n<−l e n g t h ( x )
x g r i d<−s e q ( from =min ( x ) −1 , t o =max ( x ) + 1 , by = 0 . 0 1 )
bumps<−s a p p l y ( x , f u n c t i o n ( t ) r e c ( ( x g r i d −t ) / h ) ∗ ( 1 / ( n∗ h ) ) )
p l o t ( x g r i d , rowSums ( bumps ) , x l a b =”X” , y l a b = e x p r e s s i o n ( h a t ( f ) ( x ) ) ,
t y p e =” l ” , lwd = 2 )
rug ( x )
f o r ( i i n 1 : n ) { l i n e s ( x g r i d , bumps [ , i ] , l t y = 2) } }
Die letze Schleife führt dazu, dass auch die bumps“gezeichnet werden. Diese Funktion wenden
”
wir jetzt zur Veranschaulichung auf die ersten 10 Werte des Vektors mit den Eruptionsdauern er
an.
38
3.3
univariate Kerndichteschätzung
3.3.1 Konstruktion des univariaten Kerndichteschätzers
Definition 3.1. Eine Funktion K : R → R heißt Kern, falls
Z
K(x)dx = 1
gilt.
Regularitätsbedingungen:
• K(x) ≥ 0 ∀x ∈ R , K(x) = K(−x)
• supx∈R K(x) = M < ∞
R
• |x|K(x) → 0 für |x| → 0, x2 K(x)dx =: k2 < ∞
⇒
R
R
K(x)dx = 0, K2 (x)dx < ∞
Beispiele:
Rechteckskern
Dreieckskern
K(x) = 12 1{−1,1} (x) ,
K(x) = (1 − |x|)1{−1,1} (x) ,
Gaußkern
K(x) =
x2
√1 e− /2 ,
2π
15
(1 − x2 )2 {−1,1} (x)
16
3
(1 − x2 ) {−1,1} (x)
4
Bisquarekern
K(x) =
1
,
Epanechnikovkern K(x) =
1
Um die Kernfunktionen in einen gemeinsamen Graphen mit Legende zu zeichnen, definieren wir
39
die entsprechenden Funktionen, berechnen die Funktionswerte auf einem Gitter, und zeichnen
die Kurven in einen plot.
>
>
>
>
>
>
+
>
>
>
>
>
+
t r i<−f u n c t i o n ( x ) { ( abs ( x ) <1) ∗(1− abs ( x ) ) }
b i s q<−f u n c t i o n ( x ) { ( abs ( x ) <1) ∗ ( 1 5 / 1 6 ) ∗(1−x ˆ 2 ) ˆ 2 }
g a u s s<−f u n c t i o n ( x ) { ( 1 / ( 2 ∗ p i ) ) ∗ exp(−x ˆ 2 / 2 ) }
e p a<−f u n c t i o n ( x ) { ( abs ( x ) <1) ∗ ( 3 / 4 ) ∗(1−x ˆ 2 ) }
g r i d<−s e q ( from =−3, t o =3 , by = 0 . 1 )
p l o t ( g r i d , r e c ( g r i d ) , t y p e =” l ” , x l a b =” x ” , y l a b = e x p r e s s i o n ( k ( x ) ) ,
y l i m =c ( 0 , 1 ) )
l i n e s ( grid , t r i ( grid ) , l t y =2)
l i n e s ( grid , gauss ( grid ) , c o l =2)
l i n e s ( g r i d , b i s q ( g r i d ) , c o l = 3)
l i n e s ( grid , epa ( grid ) , c o l =4)
l e g e n d ( 0 . 9 , 0 . 8 5 , l e g e n d =c ( ” r e c t a n g u l a r ” , ” t r i a n g u l a r ” , ” G a u s s i a n ” ,
” B i s q u a r e d ” , ” E p a n e c h n i k o v ” ) , l t y =c ( 1 , 2 , 1 , 1 , 1 ) , c o l =c ( 1 , 1 , 2 , 3 , 4 ) )
Definition 3.2. Sei K : R → R ein Kern.
n
1 X
t − xi
fˆn (t) =
K
nh i=1
h
Z
=
1
t−x
Fn (dx)
K
h
h
heißt (univariater) Kerndichteschätzer mit Bandweite h und Kern K.
40
Ist K eine Dichte, so lässt sich mit K̃(t) :=
F̂n (t) =
Rt
−∞
n
1X
t − xi
K̃
n i=1
h
K(x)dx auch F schätzen durch:
Z
=
K̃
t−x
Fn (dx) .
h
Definieren wir analog zu obiger R-Funktion recbumps“die Funktion gaussbumps“, indem wir
”
”
die Funktion rec“einfach durch gauss“ersetzen oder benutzen einen anderen Kern, so lässt
”
”
sich wie oben für den gleitenden Histogramm–Schätzer (Kerndichteschätzer mit Rechteckkern)
der Schätzer als Summe der einzelnen bumps konstruieren. Die folgende Grafik zeigt die Konstruktion für die ersten 5, 10, 20 bzw. 50 Werte der Eruptionsdauern des Geysirs.
Entscheidende Schwierigkeit ist nun die Wahl der Bandweite:
h zu groß −→ oversmoothed −→ lokale Extrema werden nicht erkannt, glatt
h zu klein −→ undersmoothed −→ lokale Moden, Schätzer ist hairy“
”
3.3.2 Bias–Varianz–Dilemma
Satz 3.3. Wenn K : R → R ein Kern ist, der die oben genannten Regularitätsbedingungen
erfüllt, und f ∈ C2 (R), so gilt:
Efˆn (x) − f (x) =
Z
h2 00
f (x) x2 K(x)dx + O(h2 ) .
2
41
Beweis. Taylor–Entwicklung von f : f (x − ht) = f (x) − htf 0 (x) +
Z
h2 t2 00
f (x)
2
+ O(h2 t2 ).
x−y
1
K
f (y)dy − f (x)
n
h
Z
h2 f 00 (x) Z 2
0
y K(y)dy +O(h2 t2 )
= −hf (x) yK(y)dy +
2
{z
}
{z
}
|
|
⇒ Efˆn (x) − f (x) =
=0
=:k2
2 00
=
h f (x)
k2 + O(h2 t2 )
2
Satz 3.4. Wenn K : R → R ein Kern ist, der die oben genannten Regularitätsbedingungen
erfüllt, und f ∈ C(R), so gilt:
Z
€
Š
1
ˆ
f (x) K2 (y)dy + O n−1 h−1 .
Var fn (x) =
nh
Beweis.
n
1 X
x − xi
Var K
2
2
n h i=1
h
Z
2
1
1 ˆ
2 x−y
=
E
f
(x)
K
f
(y)dy
−
n
nh2
h
n
2
1 Z 2
=
K (y)f (x − yh)dy − n−1 Efˆn (x)
nh
Z
€
Š
1
=
f (x) K2 (y)dy + O n−1 h−1
nh
Var fˆn (x) =
Damit ergibt sich aus der Bias-Varianz–Zerlegung für den gesamten mittleren quadratischen Fehler (MSE):
•
Eh
2 ˜
fˆn (x) − f (x)
‚
2
4
= Bias(h) +Var(h) = h
f 00
k2
2
Œ2
Z
€
Š
1
+ f (x) K2 (y)dy+O h4 + n−1 h−1 .
nh
⇒ Trade–Off zwischen Bias und Varianz
Für großes h wird also die Varianz klein, der Bias aber größer, und für kleine h verringert sich
der Bias der Schätzung, aber die Varianz vergrößert sich. Wichtig ist, dass der Bias nicht explizit
von der Anzahl der Realisierungen n abhängt.
3.3.3 Effizienz von Kernen
Minimieren wir nun den MISE über h erhalten wir die optimale Bandweite:
R
hopt =
1/5
( K2 (y)dy)
1/5 €R
n1/5 k2
(f 00 (y))2 dy
42
Š1/5
.
(3.1)
Die optimale Bandweite konvergiert also für n → ∞ mit einer sehr langsamen Rate gegen Null.
Sie hängt insbesondere von der unbekannten zu schätzenden Dichte ab. Daher kann man aus
(3.1) nicht einfach eine optimale Bandweite ableiten.
Setzt man nun (3.1) in den MISE ein, erhält man
‚
‹4/5
5 2/5 Z 2
MISE ≈
k2
K (y)dy
4
Œ Z
2
(f 00 (y)) dy
‹1/5
.
Nun kann man einen Kern Ke bestimmen, welcher den mittleren Ausdruck minimiert. Dies liefert
der Epanechnikov–Kern:
‚
Œ
3
x2
Ke (x) = √ 1 −
1[−5,5] (x) .
5
4 5
Die Effizienz anderer Kerne ef f (K) gibt man daher als Vergleich des resultierenden MISE zu
dem des Epanechnikov–Kernes an, so dass bei einem Kern K und n Realisierungen der MISE
gleich ist wie mit dem Kern Ke und n·ef f (K) Realisierungen. Der Gauß–Kern hat eine Effizienz
von ca. 0, 95 und selbst der Rechteck–Kern noch eine Effizienz von ca. 0, 93.
3.4
Methoden zur Wahl der Bandweite
Es gibt eine Vielzahl unterschiedlicher Ansätze zur Wahl der Bandweite. Methoden der ersten
Generation sind vor allem Silvermans rule of thumb“ sowie biased und unbiased Cross Vali”
dation. Neuere Methoden der zweiten Generation sind die Plug-in Methode von Sheather and
Jones, smoothed Cross Validation, Kontrastmethoden und Bootstrap/Jackknife–Methoden. Die
meisten dieser Methoden teilen den gemeinsamen Ansatz, dass zunächst der asymptotische MISE geschätzt wird und darauf basierend die Bandweite, die diesen minimiert.
3.4.1 Silvermans rule of thumb
Unter der parametrischen Normalverteilungsannahme kann man die optimale Bandweite (3.1) in
Abhängigkeit von σ berechnen:
Z
00
Z
2
(f (x)) dx = σ
3
(φ(x))2 dx = √ σ −5 ≈ 0, 212σ −5 ,
8 π
−5
4 1/5 −1/5
1
σn
≈ 1, 06σn− /5 .
3
Schätzt man nun σ aus den Daten, lässt sich damit auch hopt schätzen.
⇒ hopt =
3.4.2 Kleinste–Quadrate–Kreuzvalidierung
Betrachtet man den integrierten quadratischen Fehler,
Z fˆ − f
2
Z =
2
fˆ
43
Z
−2
fˆf +
Z
f2
so geht es vor allem darum, den mittleren Term zu schätzen. Bei der (leave one out) Least Squares
Cross Validation (LSCV) werden n Kernschätzer jeweils basierend auf (n − 1) Realisierungen
berechnet:
X
1
x − Xi
fˆ−i (x) =
K
.
(n − 1)h j6=i
h
Da der Bias nur von h und K abhängt, aber nicht von n, gilt:
"
#
i
i
h
h
1Xˆ
f−i (Xi ) = E fˆn (Xn ) = E fˆ(X) .
E
n i
R
P
Damit erhält man für den integrierten quadratischen Fehler fˆ2 − 2n−1 i fˆ−i (Xi ).
Der folgende Code vergleicht die Kerndichteschätzer für die Eruptionsdauern bei unterschiedlichen, nach den gängigsten Methoden gewählten, Bandweiten.
>
>
>
>
>
p l o t ( d e n s i t y ( e r ) , main=” ” , y l i m =c ( 0 , 1 ) )
l i n e s ( d e n s i t y ( e r , bw=” bcv ” ) , c o l = 2 )
l i n e s ( d e n s i t y ( e r , bw=” ucv ” ) , c o l = 3 )
l i n e s ( d e n s i t y ( e r , bw=” SJ ” ) , c o l = 4)
l e g e n d ( 1 , 0 . 9 2 5 , l e g e n d =c ( ” n r d ” , ” bcv ” , ” ucv ” , ” SJ ” ) , c o l = 1 : 4 , l t y = 1 )
3.5
Multivariate Kerndichteschätzung
Im Folgenden seien X1 , . . . , Xn ∈ Rp i. i. d. Zufallsvektoren.
44
Definition 3.5. Eine Funktion K : Rp → R, für die
Z
Rp
K(y)dy = 1
gilt, heißt (multivariater) Kern.
Regularitätsbedingungen:
• K ist radialsymmetrische Wahrscheinlichkeitsdichte,
• beschränkter Träger oder zumindest |x|K(x) → 0 für |x| → 0
Beispiele:
uniformer Kern
K(x) =
1
vp
Gaußkern
K(x) =
1
p
(2π) /2
Epanechnikovkern
K(x) =
1+ p2
vp
für xT x ≤ 1 ,
€
Š
exp − 21 xT x ,
(1 − xT x)1{−1,1} (x) für xT x ≤ 1
Definition 3.6. Sei K : Rp → R ein Kern.
1
fˆn (x) =
nhp
n
X
x − Xi
K
h
i=1
, x ∈ Rp
heißt multivariater Kerndichteschätzer mit Bandweite h und Kern K.
Unter den obigen Regularitätsbedingungen an den Kern K und der Voraussetzung, dass f zweimal differenzierbar ist, gelten folgende zum univariaten Fall analogen Entwicklungen für den
Bias und die Varianz:
Z
h2
Biash fˆn (x) = ∆f (x) y12 K(y)dy + O(h2 ) ,
2
€
Š
1 Z 2
−1 −p
ˆ
Varh fn (x) =
K
(y)dy
+
O n h
.
nhp
Für die optimale Frequenz ergibt sich daraus durch Minimierung des MISE
R
hp+4
opt
p
K2 (y)dy
=
R
n ( y12 K(y)dy)2
Z
2
‹
(∆f (y)) dy .
Der folgende R–Code erzeugt eine Abbildung des zweidimensionalen Epanechnikokerns. Analog
lassen sich Graphen anderer zweidimensionaler Kerne erstellen
>
+
>
>
>
+
e p a 2 d<−f u n c t i o n ( x , y ) {
( ( x ˆ 2 + y ˆ 2 ) < 1 ) ∗ 2 / p i ∗(1−xˆ2−y ˆ 2 ) }
g<−s e q ( from =−1, t o =1 , by = 0 . 1 )
e p a g<−s a p p l y ( g , f u n c t i o n ( t ) e p a 2 d ( t , g ) )
p e r s p ( x=g , y=g , z= epag , x l a b =” x ” , y l a b =” y ” , z l a b = e x p r e s s i o n ( k ( x , y ) ) ,
t h e t a = −30 , c o l =” l i g h t b l u e ” , box=TRUE , a x e s =TRUE , s h a d e = 0 . 0 5 )
45
Anmerkung 3.7. Allgemeiner als in obiger Definition kann man den multivariaten Kerndichteschätzer mit einer Bandweitenmatrix H definieren:
fˆn (x) =
€
Š
1
1
K H − /2 (x − Xi )
1/2
n|H|
x ∈ Rp .
Ist H einfach h1p , wobei 1p die p–dimensionale Einheitsmatrix bezeichnet, sind wir im Falle
obiger Definition. Oftmals verwendet man auch die allgemeinere Definiton mit einer Diagonalmatrix H. Dies ist auch bei den nachfolgend vorgestellten Methoden zur zweidimensionalen
Kerndichteschätzung in R der Fall.
Die packages MASS bzw. KernSmooth stellen in R die Funktionen kde2d bzw. bkde2d zur zweidimensionalen Kerndichteschätzung bereit. Erstere berechnet den Kerndichteschätzer mit einem
Gauß–Kern und zwei Bandweiten nach Silvermans rule of thumb. Zweitere ist eine bin-Methode,
bei der auf einem festen Gitter nach der Anzahl der Beobachtungen in der Umgebung gewichtete
bumps auf jedem Gitterpunkt berechnet werden und der Schätzer wird als diskrete Faltung dieser
mit Fast–Fourier–Transform–Methoden bestimmt.
Der folgende Code gibt vier Grafen in einem plot aus. Einmal die zweidimensionale Punktwolke
der faithful–Daten und danach graphische Darstellungen für die resultierenden Schätzer.
>
>
>
>
>
>
>
>
>
+
>
>
>
+
l i b r a r y (MASS)
l i b r a r y ( KernSmooth )
data ( f a i t h f u l )
x<− f a i t h f u l $ e r u p t i o n s
y<− f a i t h f u l $ w a i t i n g
par ( mfrow=c ( 2 , 2 ) , p t y =”m” )
p l o t ( y , x , y l a b =” e r u p t i o n ” , x l a b =” w a i t i n g ” )
z<−kde2d ( x , y , l i m s =c ( 0 , 6 , 3 5 , 1 0 0 ) )
z z<−bkde2D ( f a i t h f u l , range . x= l i s t ( c ( 0 , 6 ) , c ( 3 5 , 1 0 0 ) ) ,
b a n d w i d t h =c ( bw . SJ ( x ) , bw . SJ ( y ) ) )
image ( z , x l a b =” e r u p t i o n ” , y l a b =” w a i t i n g ” )
image ( z z $ f h a t , x l a b =” e r u p t i o n ” , y l a b =” w a i t i n g ” )
p e r s p ( z , c o l =” s l a t e g r e y ” , t h e t a =35 , x l i m =c ( 0 , 6 ) , y l i m =c ( 3 5 , 1 0 0 ) ,
t i c k t y p e =” d e t a i l e d ” , x l a b =” e r u p t i o n ” , y l a b =” w a i t i n g ” , z l a b =” ” )
46
Auch als Kontur–plot lassen sich die Schätzwerte veranschaulichen.
>
+
+
>
p e r s p ( z z $ x1 , z z $ x2 , z z $ f h a t , c o l =” s l a t e g r e y ” , t h e t a =35 , x l i m =c ( 0 , 6 ) ,
y l i m =c ( 3 5 , 1 0 0 ) , t i c k t y p e =” d e t a i l e d ” , x l a b =” e r u p t i o n ” ,
y l a b =” w a i t i n g ” , z l a b =” ” )
c o n t o u r ( z z $ x1 , z z $ x2 , z z $ f h a t )
47
Literatur
Marron, J. S., P. Hall, and B. U. Park (2003). Smoothed cross–validation. Probability Theory
and Related Fields 92, 1–20.
Mugdadi, A. R. and I. A. Ahmad (1992). A bandwidth selection for kernel density estimation of
functions of random variables. Computational Statistics and Data Analysis 47(1), 49–62.
Scott, D. W. (1992). Multivariate Density Estimation: Theory, Practice and Visualization. New
York: Wiley.
Sheather, S. J. and M. Jones (1991). A reliable data-based bandwidth selection method for kernel
density estimation. Journal of the Royal Statistical Society 53(3), 683–690.
Silverman, B. W. (1986). Density estimation for statistics and data analysis. Chapman and
Hall/CRC.
48
4
Testtheorie
Eine (statistische) Hypothese ist eine Behauptung über Eigenschaften von einer oder mehreren
Zufallsvariablen und ein statistischer (Hypothesen–)Test eine Entscheidungsregel, ob eine Hypothese verworfen oder nicht verworfen werden kann. Da man eine Hypothese empirisch nie
beweisen kann, wird man in den Anwendungen zu Behauptungen, die man vermutet und stützen
will, eine gegensätzliche Hypothese wählen um diese durch einen statistischen Test zu widerlegen.
Definition 4.1. Sei X ein Zufallsvektor auf dem Wahrscheinlichkeitsraum (Ω, F, P) und T : Ω →
R eine messbare Abbildung. Unter einem Test der Nullhypothese H0 gegen eine Alternative H1
verstehen wir eine Funktion ϕ : R → [0, 1], wobei ϕ(T (X)) = 1 bedeutet, dass die Nullhypothese H0 verworfen wird, und ϕ(T (X)) = 0, dass die Nullhypothese nicht verworfen wird. Wir
bezeichnen K := {x ∈ T (Ω)|ϕ(T (X)) = 1} als Ablehnungsbereich.
Als Fehler 1. Art bezeichnet man das ungerechtfertigte Ablehnen der Nullhypothese. Das Nicht–
Ablehnen der Nullhypothese, obwohl diese nicht zutrifft, bezeichnet man als Fehler 2. Art. Als
Trennschärfe eines Tests wird die Wahrscheinlichkeit des gerechtfertigten Ablehnens der Nullhypothese definiert. Bei der Konstruktion eines Tests beschränkt man den Fehler 1. Art durch ein
vorgegebenes Niveau, wobei die Wahrscheinlichkeit für den Fehler 2. Art bei kleinerem Niveau
wächst.
Zunächst (bis Abschnitt 4.5) beschäftigen wir uns mit parametrischen Tests. Dabei wird angeTest ϕ(x)
1
0
Nullhypothese H0 wahr
Fehler 1. Art
richtige Entscheidung nicht zu verwerfen
Nullhypothese H0 nicht wahr
Trennschärfe (power)
Fehler 2.Art
nommen, dass die Zufallsvariablen X Verteilungen aus der Familie Pθ = {Pθ |θ ∈ Θ} haben. Eine
Nullhypothese der Form H0 : θ ∈ Θ0 ⊂ Θ wird gegen eine Alternative der Form H1 : θ ∈ Θ\Θ0
getestet. Hierbei gibt es die in nachfolgender Tabelle aufgeführten Unterscheidungen. Gibt man
einfache Nullhypothese
zusammengesetzte Nullhypothese
einseitiger Test
zweiseitiger Test
Θ0 hat Kardinalität 1
Θ0 hat mehr als 1 Element (z. Bsp. Intervall)
Θ\Θ0 bzw. K ist einseitig beschränkt
Θ\Θ0 bzw. K ist beidseitig unbeschränkt
sich das Niveau des Tests α ∈ [0, 1] vor und wählt den Ablehnungsbereich Kα so, dass
α = sup Pθ (T ∈ Kα )
θ∈Θ0
gilt, nennen wir den zugehörigen Test ϕ Niveau–α–Test. Oftmals gibt man sich ein maximales
Niveau α vor und konstruiert einen (unrandomisierten) Test, bei dem man den Fehler 1. Art durch
49
α beschränkt: supθ∈Θ0 Pθ (T ∈ Kα ) ≤ α. Das exakte Niveau des Testes kann dann auch kleiner
als α sein. Als Gütefunktion wird die Funktion β(θ) = Pθ (T ∈ Kα ) bezeichnet.
Definition 4.2. Ein Test ϕ zum Niveau α heißt gleichmäßig bester Test zum Niveau α, falls für
jedes θ1 ∈ Θ\Θ0 die Güte jedes anderen Niveau–α–Testes ϕ̃ auf der Alternative kleiner oder
gleich der Güte von ϕ ist: βϕ̃ (θ1 ) ≤ βϕ (θ1 ).
Lemma 4.3 (Neyman-Pearson). Für den Test einfacher Hypothesen H0 : θ = θ0 gegen H1 :
θ = θ1 ist durch den Neyman–Pearson–Test
8
>
>
<
1 , falls q(x) < cα
ϕ(x) = >γ , falls q(x) = cα
>
:
0 , falls q(x) > cα
wobei
q(x) =
,
L(θ0 |x)
L(θ1 |x)
den Likelihhood–Quotienten bezeichnet, ein gleichmäßig bester Test zum Niveau α gegeben. Die
Randomisierung wird so gewählt, dass die Gütefunktion auf der Hypothese exakt das Niveau ist:
β(θ0 ) = α.
Es sei X verteilt nach Pθ und T (X) eine suffiziente Statistik. Wenn der Likelihood–Quotient nun
monoton ist, kann man an Stelle des kritischen Bereiches (Ablehnungsbereich) für q(X) auch
den kritischen Bereich bzw. kritische Werte direkt für T angeben.
p–Wert: Der p–Wert zu einem Test gibt das kleinste Niveau an, zu dem bei Vorliegen der Stichprobe x die Nullhypothese noch abgelehnt werden kann. Manchmal bezeichnet man dies auch
als exaktes oder wahres Niveau eines Tests. In R (und anderen Statistik–Programmen) gibt man
kein Niveau eines Tests vor, sondern erhält diesen p–Wert als Ausgabe. Man kann jedoch ein
Konfidenzintervall zu einem bestimmten Niveau mit angeben lassen.
Likelihood–Quotienten–Test: Beim allgemeinen Testansatz H0 : θ ∈ Θ0 gegen H1 : θ ∈ Θ1 =
Θ\Θ0 werden beim LQ–Test kritische Werte für
Λ(x) =
supθ∈Θ0 L(θ|x)
supθ∈Θ L(θ|x)
bestimmt.
4.1
Binomialtest
Als einfaches erstes Beispiel für die Durchführung eines parametrischen Tests betrachten wir den
Binomialtest. Dieser prüft Hypothesen bezüglich der unbekannten Erfolgswahrscheinlichkeit p
in einem Binomialexperiment.
50
Der Binomialtest kann unter R mit der Funktion binom. test aufgerufen werden oder mit Hilfe
der Quantil– qbinom und der Verteilungsfunktion pbinom manuell implementiert werden.
Als einfache Anwendung testen wir die Hypothese, dass eine Münze fair ist H0 : p0 = 0, 5.
Dabei handelt es sich um einen zweiseitigen Testansatz. Wir wollen wissen, ob die Hypothese
einer fairen Münze verworfen werden kann, falls bei 20 Würfen 15 mal Kopf beobachtet wird.
> binom . t e s t ( 1 5 , 2 0 , p = 0 . 5 , a l t e r n a t i v e =” two . s i d e d ” )
Exact binomial t e s t
d a t a : 15 and 20
number o f s u c c e s s e s = 1 5 , number o f t r i a l s = 2 0 , p−v a l u e = 0 . 0 4 1 3 9
a l t e r n a t i v e h y p o t h e s i s : t r u e p r o b a b i l i t y of s u c c e s s i s not equal to 0.5
95 p e r c e n t c o n f i d e n c e i n t e r v a l :
0.5089541 0.9134285
sample e s t i m a t e s :
p r o b a b i l i t y of success
0.75
Die Durchführung des Tests ergibt einen p–Wert von 0,04139. Zum Niveau α = 0, 05 kann H0
damit verworfen werden. Den kritischen Wert des Binomialtests erhält man mit dem Ansatz
x
X
i=0
!
!
n
X
n i
n i
p0 (1 − p0 )n−i +
p0 (1 − p0 )n−i < α .
i
i
i=n−x
In unserem Beispiel ist x = 5, n = 20 und p0 = (1/2).
Die folgende Funktion gibt für einen Vektor x aus Nullen und Einsen (Misserfolg–Erfolg) den
entsprechenden p–Wert aus.
>
+
+
+
b i n o m t e s t<−f u n c t i o n ( x , p0 ) {
n<−l e n g t h ( x ) ; e<−sum ( x )
p<−pbinom ( n−e , n , p0 , l o w e r . t a i l =TRUE) + pbinom ( e −1 ,n , p0 , l o w e r . t a i l =FALSE )
print ( p )}
Die Option lower. tail =TRUE gibt den Wert der Verteilungsfunktion zurück, die Option
lower. tail =FALSE dagegen die Wahrscheinlichkeit, dass die binomialverteilte Zufallsvariable
größere Werte annimmt.
4.2
t–Test
4.2.1 Der Einstichproben–Fall
Wir nehmen an X1 , . . . , Xn seien i. i. d. N(µ, σ 2 )–verteilt. Der t–Test liefert eine Methode Hypothesen H0 : µ = µ0 (oder einseitige Hypothesen) für den Erwartungswert zu testen. Die Varianz
σ 2 > 0 ist unbekannt. Der Likelihoodquotient ist durch
Pn
q(x) =
− µ0 )2
2
i=1 (xi − x̄)
i=1 (xi
Pn
51
gegeben, da die Maximum–Likelihood–Schätzer µ̂M LE = x̄ = (1/n)
P
(1/n2 ) ni=1 (xi − x̄)2 sind.
Als Teststatistik wird nun
È
n(n − 1)(x̄ − µ0 )
T (x) = ÈP
2
i (xi − x̄)
Pn
i=1
2
xi und σ̂M
LE =
berechnet, für welche direkt kritische Werte bestimmt werden können. Die Zufallsvariable T hat
eine von den Parametern µ, σ unabhängige tn−1 –Verteilung. Für eine größer werdende Anzahl an
Freiheitsgraden n nähert sich die tn –Verteilung an die (Standard–)Normalverteilung an, wie es
in der folgenden Darstellung der Dichten veranschaulicht ist. Im Vergleich zur Normalverteilung
haben die t–Verteilungen etwas langsamer abfallende tails.
Der plot der Dichten wurde mit dem folgenden R–Code erstellt:
>
>
>
>
>
g r i d<−s e q ( −5 ,5 , by = 0 . 0 1 )
p l o t ( g r i d , dnorm ( g r i d ) , t y p e =” l ” , y l a b =” ” , x l a b =” ” )
l i n e s ( g r i d , d t ( g r i d , d f = 1 ) , t y p e =” l ” , c o l = 2 )
l i n e s ( g r i d , d t ( g r i d , d f = 2 ) , t y p e =” l ” , c o l = 3 )
l i n e s ( g r i d , d t ( g r i d , d f = 3 ) , t y p e =” l ” , c o l = 4 )
52
> l i n e s ( g r i d , d t ( g r i d , d f = 1 0 ) , t y p e =” l ” , c o l = 5 )
> l e g e n d ( − 4 . 4 , 0 . 3 5 , l e g e n d =c ( ”N( 0 , 1 ) ” , ” t 1 ” , ” t 2 ” , ” t 3 ” , ” t 1 0 ” ) , c o l = 1 : 5 , l t y = 1 )
Folgende Tabelle enthält die entsprechenden Ablehnungsbereiche des Niveau–α t–Tests für die
einseitigen bzw. zweiseitigen Hypothesen:
H0
µ ≤ µ0
µ ≥ µ0
µ = µ0
Ablehnungsbereich Kα
[x ∈ Ω|T (x) > t1−α,n−1 ]
[x ∈ Ω|T (x) < −t1−α,n−1 ]
[x ∈ Ω||T (x)| > t1− α2 ,n−1 ]
Wir geben ein einfaches Beispiel für die Durchführung des Einstichproben–t–Tests in R. Es soll
anhand von Körpertemperaturmessungen von acht Patienten unter gleichen Bedingungen die
Hypothese, dass die mittlere Temperatur bei diesen Bedingungen größer als 37◦ C getestet werden.
> temp<−c ( 3 6 . 8 , 3 7 . 2 , 3 7 . 5 , 3 6 . 9 , 3 7 . 0 , 3 7 . 4 , 3 7 . 9 , 3 8 . 0 )
> t . t e s t ( temp , a l t e r n a t i v e =” g r e a t e r ” ,mu=3 7 )
One Sample t− t e s t
d a t a : temp
t = 2 . 1 3 5 5 , d f = 7 , p−v a l u e = 0 . 0 3 5 0 5
a l t e r n a t i v e h y p o t h e s i s : t r u e mean i s g r e a t e r t h a n 37
95 p e r c e n t c o n f i d e n c e i n t e r v a l :
37.03807
Inf
sample e s t i m a t e s :
mean o f x
37.3375
R gibt den Wert der t–Statistik, die Anzahl an Freiheitsgraden, den p–Wert des Tests, den Mittelwert der Stichprobe, sowie standardmäßig das 95%–Konfidenzintervall mit aus. Da der p–Wert
hier 0.03505 liegt, kann H0 : µ ≤ 37 zum Niveau α = 0.05 abgelehnt werden.
4.2.2 Fallzahlabschätzung
Gibt man den wahren Parameter und das Niveau fest vor, so lässt sich die Trennschärfe (power)
auch als Funktion in anderen Unbekannten, wie dem Stichprobenumfang n, auffassen. Man kann
für den einseitigen Einstichproben–t–Test den kritischen Wert c bei einer festgelegten Differenz
der Mittelwerte δ = (µ − µ0 )/(σ) folgendermaßen ausdrücken:
σ
σ
c = µ0 + tn−1,1−α √ = µ − tn−1,β √ ,
n
n
wobei α das Niveau und β die Trennschärfe bezeichnet. Man kann nun mit Hilfe der Trennschärfe
als Funktion in n abschätzen wie groß Stichproben sein müssen, um einen Test mit vorgegebenem
53
Niveau und Trennschärfe erreichen zu können. Aus obiger Gleichung ergibt sich:
n≥
(tn−1,1−α + tn−1,β )2 2
σ .
(µ − µ0 )2
Beispiel: Eine Studie soll mit Hilfe eines t–Tests zeigen, dass eine Therapie den Blutzucker von
Patienten um 15mg/dl senken kann. Es ist aus vorherigen Messreihen bekannt, dass die Standardabweichung σ ≈ 30mg/dl beträgt. Es soll ein Test zum Niveau α = 0.05 und mit Trennschärfe
β = 0.80 durchgeführt werden.
Eine manuelle Methode n nun ausreichend groß zu bestimmen, besteht darin zunächst die Normalverteilung als Näherung heranzuziehen, da die t–Verteilung von den Freiheitsgraden (n − 1)
abhängt. Mit dem damit berechneten Wert für (n − 1) kann man nun n erneut berechnen aus den
Quantilen der entsprechenden tn−1 –Verteilung. Man wiederholt dies so lange, bis sich der neu
berechnete Wert für n nicht mehr ändert und hat damit eine Lösung gefunden.
R bietet jedoch mit der Funktion power.t. test eine Funktion an, mit der man dieses Problem
direkt lösen kann. Als Optionen gibt man einfach alle vorgegebenen Parameter an, sowie die Art
der Hypotheses und des Tests. Der folgende Code enthält beide Alternativen und erzeugt einen
Graphen der Trennschärfe als Funktion in n.
> d<−1 5 ; s<−3 0 ; r<−d / s ; a l p h a<−0 . 0 5 ; b e t a<−0 . 2
> n1<− c e i l i n g ( ( qnorm(1− a l p h a ) + qnorm(1− b e t a ) ) ˆ 2 / ( r ˆ 2 ) ) ; n1
[ 1 ] 25
> n2<− c e i l i n g ( ( q t (1− a l p h a , n1 −1)+ q t (1− beta , n1 − 1 ) ) ˆ 2 / ( r ˆ 2 ) ) ; n2
[ 1 ] 27
> n3<− c e i l i n g ( ( q t (1− a l p h a , n2 −1)+ q t (1− beta , n2 − 1 ) ) ˆ 2 / ( r ˆ 2 ) ) ; n3
[ 1 ] 27
> power . t . t e s t ( d e l t a =15 , sd =30 , s i g . l e v e l = 0 . 0 5 , power = 0 . 8 0 , t y p e =” one . s a m p l e ” ,
+ a l t e r n a t i v e =” one . s i d e d ” )
One−sample t t e s t power c a l c u l a t i o n
n
delta
sd
sig . level
power
alternative
=
=
=
=
=
=
26.13751
15
30
0.05
0.8
one . s i d e d
> y<−c ( rep (NA) , 9 0 )
> for ( j in 1:90){
+ y [ j ]<−power . t . t e s t ( d e l t a =15 , s i g . l e v e l = 0 . 0 5 , n= j +9 , sd =30 ,
+ t y p e =” one . s a m p l e ” , a l t e r n a t i v e =” one . s i d e d ” ) $ power }
> g<−s e q ( 1 0 , 9 9 , by = 1 )
> length ( g )
[ 1 ] 90
> p l o t ( g , y , y l a b =” power ” , x l a b =” n ” )
54
4.2.3 Der Zweistichproben–Fall
Seien X1 , . . . , Xn i. i. d. N(µ1 , σ 2 )–verteilt und Y1 , . . . , Ym i. i. d. N(µ2 , σ 2 )–verteilt. Der t–Test
wird hier für den Vergleich der Mittelwerte angewendet. Die Teststatistik
T (X, Y) =
È
1
m
+
1
n
q
X −Y
1
m+n−2
P
2
i (Xi − X)
P
2
j (Yj − Y )
∼ tm+n−2
ist t–verteilt mit (m + n − 2) Freiheitsgraden. Die zweiseitige Hypothese H0 : µ1 = µ2 wird
verworfen, falls
|T (X, Y)| > tm+n−2,1−α/2 .
4.2.4 Behrens–Fisher–Problem und der Welch–Test
Während der Zweistichproben–Fall unter der Annahme gleicher unbekannter Varianzen sich
leicht ableiten lässt als Verallgemeinerung des Einstichprobenfalls, führt der heteroskedasti55
sche Ansatz X1 , . . . , Xn i. i. d. N(µ1 , σ12 )–verteilt und Y1 , . . . , Ym i. i. d. N(µ2 , σ22 )–verteilt mit
σ1 6= σ2 (und unbekannten Quotienten und n 6= m) auf das bekannte Behrens-Fisher–Problem.
Der Likelihood–Schätzer ist gegeben durch:
Ì
σ̂M LE =
X
n(n − 1)
(Xi − X)2 +
i
X
1
(Yj − Y )2 .
m(m − 1) j
Die Teststatistik T (X, Y) = (X − Y )/σ̂M LE ist nun jedoch Behrens–Fisher–verteilt. Es lässt
sich in dem Fall kein exakter Niveau–α–Test bestimmen. Eine exakte Lösung erfordert, dass der
Ablehnungsbereich von H0 : µ1 = µ2 Umgebungen von Punkten enthält, für die X = Y ist. Es
gibt keine stetige Funktion zur Bestimmung des kritischen Wertes von T , die nur vom Quotienten der empirischen Varianzen der Mittelwerte abhängt.
Ein Lösungsansatz (der in R zur Verfügung steht) bietet der sogenannte Welch–Test. Dieser führt
die Bestimmung des kritischen Wertes bei festem Niveau α auf die Lösung partieller Differentialgleichungen unendlicher Ordnung zurück. Durch Taylorentwicklungen wird eine approximative
Lösung angegeben. Die Verteilung von T wird durch eine t–Verteilung mit
k=
1
n2 (n−1)2
P
4
σ̂M
LE
1
2+
P
(X
−
X)
i
i
m2 (m−1)2
j
(Yj −Y )2
Freiheitsgraden approximiert. Dies ist eine (im Allgemeinen nicht ganzzahlige) Zufallsvariable!
Diese Methode hält das Signifikanzniveau nicht exakt ein, ist aber approximativ gut geeignet.
Zur Durchführung eines zweiseitigen t–Tests in R ruft man einfach die Funktion t . test auf und
gibt zwei Vektoren ein. Standardmäßig wird dann der Welch–Test angewendet und eine nichtganzzahlige Anzahl an Freiheitsgraden ausgegeben. Um den standardmäßigen eigentlichen t–
Test (unter Annahme gleicher Varianzen) aufzurufen, muss zusätzlich die Option var .equal=TRUE
eingetippt werden.
4.3
Der F–Test
Um zu prüfen, ob zwei normalverteilte Stichproben X und Y die gleichen Varianzen haben,
also H0 : σ12 = σ22 , kann man den folgenden F–Test anwenden. Wir haben im Abschnitt
zuvor gesehen, dass die Homogenität der Varianzen Voraussetzung für die Anwendung des
Zweistichproben-t–Tests ist. Als Teststatistik wird der Quotient der empirischen Varianzen berechnet:
P
1
2
i (Xi − X)
n(n−1)
F̂ (X, Y) =
∼ Fn−1,m−1 .
P
1
2
(Y
−
Y
)
j
j
m(m−1)
Die Verteilung von F̂ heißt Fisher– oder kurz F–Verteilung mit n − 1, m − 1 Freiheitsgraden.
Folgende Tabelle enthält die entsprechenden Ablehnungsbereiche des α–Niveau F–Tests für die
einseitigen bzw. zweiseitigen Hypothesen:
56
H0
σ12 = σ22
Ablehnungsbereich Kα
€
[x, y|F̂ (x, y) > F1− α2 ,n−1,m−1 ] ∪ [x, y|F̂ (x, y) < F1− α2 ,n−1,m−1
σ12 ≤ σ22
[x, y|F̂ (x, y) > F1−α,n−1,m−1 , F̂ (x, y) > 1]
σ12 ≥ σ22
[x, y|F̂ (x, y) < (F1−α,n−1,m−1 )−1 , F̂ (x, y) < 1]
Š−1
]
Zunächst veranschaulichen wir in R die Dichten einiger F–Verteilungen mit verschiedener Anzahlen an Freiheitsgraden in einem gemeinsamen Graphen. Dazu definieren wir ein Gitter, auf
dem die Funktionswerte berechnet werden, und verwenden die Funktion df.
>
>
>
>
>
>
>
>
+
g r i d<−s e q ( 0 , 5 , by = 0 . 0 1 )
p l o t ( g r i d , d f ( g r i d , d f 1 =2 , d f 2 = 2 ) , t y p e =” l ” , y l a b =” ” , x l a b =” ” )
l i n e s ( g r i d , d f ( g r i d , d f 1 =2 , d f 2 = 1 0 ) , t y p e =” l ” , l t y = 2 )
l i n e s ( g r i d , d f ( g r i d , d f 1 =5 , d f 2 = 2 ) , t y p e =” l ” , c o l = 2 )
l i n e s ( g r i d , d f ( g r i d , d f 1 =5 , d f 2 = 1 0 ) , t y p e =” l ” , c o l = 3 )
l i n e s ( g r i d , d f ( g r i d , d f 1 =10 , d f 2 = 2 ) , t y p e =” l ” , c o l = 4 )
l i n e s ( g r i d , d f ( g r i d , d f 1 =10 , d f 2 = 1 0 ) , t y p e =” l ” , c o l = 5 )
l e g e n d ( 3 , 0 . 8 5 , l e g e n d =c ( ”m=2 , n=2 ” , ”m=2 , n =10 ” , ”m=5 , n=2 ” , ”m=5 , n =10 ” ,
”m=10 , n=2 ” , ”m=10 , n =10 ” ) , c o l =c ( 1 , 1 , 2 , 3 , 4 , 5 ) , l t y =c ( 1 , 2 , 1 , 1 , 1 , 1 ) )
57
Für die Durchführung eines F–Tests gibt es in R die Funktion var. test . Der folgende Code gibt
die manuelle Durchführung des Tests und unter Verwendung dieser Funktion an.
>
+
+
+
+
+
+
+
+
f t e s t t w o s i d e d<−f u n c t i o n ( a l p h a , x , y ) {
n<−l e n g t h ( x ) ; m<−l e n g t h ( y )
f . h a t<−sd ( x ) ˆ 2 / sd ( y ) ˆ 2
i f ( f . hat <1){ f . h a t<−f . h a t ˆ ( − 1 ) }
f . q u a n t<−q f (1 −( a l p h a / 2 ) , n −1 ,m−1)
i n d 1<−( f . hat<f . q u a n t ) ∗ 1
i n d 2<−( f . hat >( f . q u a n t ) ˆ ( − 1 ) ) ∗1
i n d<−1− i n d 1 ∗ i n d 2
p r i n t ( i n d ) ; p r i n t ( f . q u a n t ) ; p r i n t ( f . h a t ) ; p r i n t ( sd ( x ) ) ; p r i n t ( sd ( y ) ) }
> var . t e s t ( x , y , r a t i o =1 , a l t e r n a t i v e =” two . s i d e d ” , c o n f . l e v e l = 0 . 9 5 )
Da der F–Test stark verfälscht wird bei Abweichungen von der Normalverteilungsvoraussetzung
sind nichtparametrische Tests wie der Wilcoxon-Rangsummentest zu bevorzugen. Durch eine
Kombination des F–Tests als Vortest und eines Zweistichproben–t–Tests kann man Normalverteilungen auf gleiche Parameter testen. Da für derartig zusammengesetzte Tests sich allerdings
weder das gesamte Niveau noch die Trennschärfe angeben lässt, sind Schlüsse aus solchen Hintereinanderausführungen problematisch.
4.4
Anwendungsbeispiel: Pygmalioneffekt
Der sogenannte Pygmalioneffekt (auch Rosenthal– oder Versuchsleitererwartungseffekt) beschreibt ein psychologisches Phänomen, bei dem sich Erwartungen und Vorurteile eines Versuchsleiters (z. Bsp. Lehrers) als selbst–erfüllende“ Prophezeiung bewahrheiten. Dabei soll sich
”
die Erwartungshaltung so auswirken, dass dadurch die Behandlung und der Einfluss des Leiters
zu dem erwarteten Ergebnis führen. Der Effekt geht auf ein Experiment zurück, in dem Lehrern
zufällig ausgewählte Schüler als hochbegabte Schüler vorgestellt wurden (Rosenthal–Jacobsen
1968). Nach acht Monaten Unterricht wurde ein (vom Lehrer unabhängiger) Leistungstest durchgeführt und die vorher ausgesuchten angeblich hochbegabten Schüler mit den gewöhnlichen“ ver”
glichen. Die Testergebnisse bestehen aus einem Score (je höher desto besser) und sind in der
folgenden Tabelle für Erstklässler aufgeführt.
hochbegabt
anderen
35
12
2
3
40 12 15 21
39 19 25
27 38 31 1
29 37 2
14
46
10
28
48
16
30
32
48
31
22
19
1
34
3
1
2
3
2
1
2
1
Wir führen mit R einen Zweistichproben–t–Test durch unter der Annahme gleicher Varianzen und
anschließend den Welch–Test.
> x<−c ( read . t a b l e ( ” p y g m a l i o n . t x t ” ) $V1 )
> x
58
[ 1 ] 35 40 12 15 21 14 46 10 28 48 16 30 32 48 31 22 12 39 19 25
> y<−c ( read . t a b l e ( ” p y g m a l i o n . t x t ” ) $V2 )
> y
[ 1 ] 2 27 38 31 1 19 1 34 3 1 2 3 2 1 2 1 3 29 37 2
> t . t e s t ( x , y , a l t e r n a t i v e =” two . s i d e d ” , var . e q u a l =TRUE , c o n f . l e v e l = 0 . 9 5 )
Two Sample t− t e s t
d a t a : x and y
t = 3 . 5 3 4 1 , d f = 3 8 , p−v a l u e = 0 . 0 0 1 0 9 4
a l t e r n a t i v e h y p o t h e s i s : t r u e d i f f e r e n c e i n means i s n o t e q u a l t o 0
95 p e r c e n t c o n f i d e n c e i n t e r v a l :
6.493061 23.906939
sample e s t i m a t e s :
mean o f x mean o f y
27.15
11.95
> t . t e s t ( x , y , a l t e r n a t i v e =” two . s i d e d ” , var . e q u a l =FALSE , c o n f . l e v e l = 0 . 9 5 )
Welch Two Sample t− t e s t
d a t a : x and y
t = 3 . 5 3 4 1 , d f = 3 7 . 1 1 7 , p−v a l u e = 0 . 0 0 1 1 1 6
a l t e r n a t i v e h y p o t h e s i s : t r u e d i f f e r e n c e i n means i s n o t e q u a l t o 0
95 p e r c e n t c o n f i d e n c e i n t e r v a l :
6.486252 23.913748
sample e s t i m a t e s :
mean o f x mean o f y
27.15
11.95
Es lässt sich also durch den t–Test bzw. Welch–Test zum Niveau α = 0.05 die Hypothese gleicher
Gruppenmittelwerte verwerfen, der p–Wert liegt sogar bei ca. 1.1%. Die Trennschärfe ist bei
geschätzten Parametern ebenfalls sehr hoch.
> power . t . t e s t ( n =20 , d e l t a = 1 5 . 2 , sd = 1 5 . 4 7 5 2 9 , s i g . l e v e l = 0 . 9 5 , power=NULL
+ , t y p e =” two . s a m p l e ” , a l t e r n a t i v e =” two . s i d e d ” )
Two−sample t t e s t power c a l c u l a t i o n
n
delta
sd
sig . level
power
alternative
=
=
=
=
=
=
20
15.2
15.47529
0.95
0.9988298
two . s i d e d
NOTE : n i s number i n ∗ e a c h ∗ g r o u p
59
4.5
Nichtparametrische Tests
Nichtparametrische Testverfahren verzichtem im Gegensatz zu den vorhergehend betrachteten
parametrischen Tests auf die Annahmen, dass die Verteilung der Stichprobe zu einer bestimmten Familie von Wahrscheinlichkeitsmaßen gehört (z. Bsp. Normalverteilungsannahme beim t–
Test). Der Vorteil des nichtparametrischen Ansatzes besteht daher auch darin mit wenig Kenntnis
bzw. Annahmen über die den Beobachtungen zugrundeliegende Verteilung auszukommen.
Vergleicht man nichtparametrische Tests mit den parametrischen unter der Voraussetzung, dass
deren parametrisches Modell tatsächlich zutrifft, weisen die nichtparametrischen Tests jedoch eine geringere Effizienz auf, das heißt für Tests zum gleichen Signifikanzniveau wird ein größerer
Stichprobenumfang benötigt.
4.5.1 χ2 –Anpassungstest
Unter einem Anpassungstest versteht man einen Test auf die Hypothese, ob eine bestimmte Verteilung vorliegt (auch Goodness of fit–Test). Eine Stichprobe X1 , . . . , Xn ∼ F sei nach der
durch F gegebenen unbekannten Verteilung verteilt. Die Hypothese H0 : F = F0 wird gegen
H1 : F 6= F0 getestet.
Sind nun die Beobachtungen in m Klassen aufgeteilt mit Häufigkeiten nj , j = 1, . . . , m, vergleicht man diese mit den unter F0 erwarteten Häufigkeiten nj 0 , j = 1, . . . , m. Die Teststatistik
(nj − nj 0 )2
χ̂ =
nj 0
j=1
2
m
X
konvergiert schwach gegen eine χ2m−1 –Verteilung. Der Ablehnungsbereich der Hypothese ist
dann
Kα = (χ21−α, m−1 , ∞) .
Zur Anwendung eines χ2 –Anpassungstestes müssen n und alle nj 0 hinreichend groß sein. Als
einfaches Beispiel wollen wir auf der Basis von 60 Würfen testen, ob ein Würfel fair ist. Der
Vektor H gibt die empirischen Häufigkeiten der geworfenen Augenzahlen (AZ) an. Die Funktion
chisq . test führt ohne weitere Optionen einen Test auf Gleichverteilung durch und gibt den p–
Wert, die Freiheitsgrade und den Wert der Teststatistik aus.
> AZ<−c ( 1 , 2 , 3 , 4 , 5 , 6 )
> H<−c ( 7 , 1 2 , 9 , 1 5 , 7 , 1 0 )
> c h i s q . t e s t (H)
Chi−s q u a r e d t e s t f o r g i v e n p r o b a b i l i t i e s
data : H
X−s q u a r e d = 4 . 8 , d f = 5 , p−v a l u e = 0 . 4 4 0 8
60
4.5.2 Wilcoxon–Vorzeichen–Rangsummentest
Der Wilcoxon–Vorzeichen–Rangsummentest stellt die nichtparametrische Alternative zum
Einstichproben–t–Test dar, wobei die Hypothese H0 : m = m0 für den Median m getestet wird.
Definition 4.4. Für eine Stichprobe X1 , . . . , Xn ist die zugehörige Ordnungsstatistik X(1) , . . . , X(n)
definiert durch
X(i) := Xk : |{j ∈ {1, . . . , n} : Xj ≤ Xk }| = i .
Die Rangstatistiken geben die Position der Xi s in der Ordnung an:
Ri := |{1 ≤ j ≤ n : Xj ≤ Xi }| .
Zu jedem Xi wird beim Wilcoxon–Vorzeichen–Rangsummentest nun die Rangstatistik von
|Xi − m0 | und das Vorzeichen der Differenz betrachtet. Als Teststatistik dient die Differenz aus
der Summe über alle Ränge mit zugeordnetem positivem Vorzeichen und der Rangsumme der
(Xi − m0 ) mit negativem Vorzeichen.
Der Test wird in R mit wilcox. test aufgerufen, welcher wie t . test im Ein– und Zweistichprobenfall angewendet werden kann und auch ähnliche Optionen besitzt. Im Zweichstichprobenfall
wird der nachfolgend beschriebene U–Test durchgeführt.
4.5.3 Mann–Whitney–Test
Der Wilcoxon–Rangsummentest für den Zweistichprobenfall, auch Mann–Whitney–Test oder
U–Test genannt, prüft die Hypothese H0 : PX = PY der Gleichheit zweier Verteilungen, also die Hypothese ob den Stichproben X1 , . . . , Xn und Y1 , . . . , Ym eine gemeinsame Verteilung
zugrunde liegt. Man berechnet gruppenweise für X und Y die Rangsummen RX und RY , wobei die Ränge der gemeinsamen Stichprobe (X, Y) genommen werden. Es gilt dann immer
RX +RY = (n+m)(n+m+1)/2. Damit kann man RX auch schreiben als RX = n(n+1)/2+U
mit der U–Statistik (oder Wilcoxon–Statistik)
U=
m
n X
X
1{Xi >Yj } .
i=1 j=1
Die Verteilung von U zum Umfang (n, m) der Stichproben ist in R unter dem Namen wilcox( · , n, m)
aufrufbar, so liefert zum Beispiel
> qwilcox (0.025 ,10 ,10)
[ 1 ] 24
das 0,025–Quantil der U–Verteilung zum Stichprobenumfang (n = 10, m = 10).
Der Ablehungsbereich Kα für RX entspricht damit einem Ablehnungsbereich für die Statistik
U, welcher lediglich um n(n + 1)/2 verschoben ist.
61
Literatur
Georgii, H. O. (2007). Stochastik: Einführung in die Wahrscheinlichkeitstheorie und Statistik (3
ed.). de Gruyter.
Lehmann, E. L. and J. P. Romano (2005). Testing Statistical Hypotheses. New York: Springer.
62
5
Simulation stochastischer Prozesse
5.1
Brownsche Bewegung und Diffusionsprozesse
5.1.1 Random Walk und Brownsche Bewegung
Definition 5.1. Es seien Zi , i ∈ {1, . . . , n} Bernoulli–verteilte Zufallsvariablen mit Werten in
P
{−1, 1}. Die Zufallsvariable Sn = ni=1 Zi beschreibt eine (eindimensionale) symmetrische Irrfahrt (random walk) in Z.
Sn nimmt Werte in [−n, n] an und es gilt ESn = 0 und Var(Sn ) = n für alle n. Reskaliert
konvergiert die symmetrische Irrfahrt gegen eine (eindimensionale) Brownsche Bewegung:
S[n t] n→∞
√ −→ Bt .
n
Eine einfache Möglichkeit zur Simulation einer Brownschen Bewegung ist die Simulation einer
reskalierten symmetrischen Irrfahrt für viele Zeitschritte.
Folgender R–Code simuliert eine reskalierte symmetrische Irrfahrt auf [0, 1] für n = 10, 100, 1000
Zeitschritte.
>
>
>
>
>
>
+
>
>
+
>
>
>
>
>
+
>
>
>
>
>
>
>
+
>
>
setwd ( ”C : / Markus / RKurs / SSP ” )
n<−10
d t<−1 / n
t<− c ( rep (NA, n + 1 ) )
t [ 1 ]<−0
for ( j in 2 : ( n +1)){
t [ j ]<− t [ j −1]+ d t }
RW<−cumsum ( 2 ∗ ( r u n i f ( n +1) >0.5) −1) / s q r t ( n + 1 )
p l o t ( t ,RW, main=” random walk ” , x l a b = e x p r e s s i o n ( t ) , y l a b = e x p r e s s i o n (RW) ,
t y p e =” l ” , y l i m =c ( − 1 . 5 , 1 . 5 ) )
n<−100
d t<−1 / n
t<− c ( rep (NA, n + 1 ) )
t [ 1 ]<−0
for ( j in 2 : ( n +1)){
t [ j ]<− t [ j −1]+ d t }
RW<−cumsum ( 2 ∗ ( r u n i f ( n +1) >0.5) −1) / s q r t ( n + 1 )
l i n e s ( t ,RW, l t y = 2 )
n<−1000
d t<−1 / n
t<− c ( rep (NA, n + 1 ) )
t [ 1 ]<−0
for ( j in 2 : ( n +1)){
t [ j ]<− t [ j −1]+ d t }
RW<−cumsum ( 2 ∗ ( r u n i f ( n +1) >0.5) −1) / s q r t ( n + 1 )
l i n e s ( t ,RW, l t y = 3 )
63
Definition 5.2. Es sei (Ft ) eine Filtration. Ein (Ft )–adaptierter stochastischer Prozess (Bt )t≥0
auf einem filtrierten Wahrscheinlichkeitsraum (Ω, F, (Ft ), P) heißt Standard Brownsche Bewegung (oder Standard Wiener–Prozess) bzgl. (Ft ), falls der Prozess folgende Eigenschaften besitzt:
(BB1) B0 = 0 f. s. ,
(BB2) für alle t ≥ s ist (Bt − Bs ) unabhängig von Fs ,
(BB3) die Zuwächse (Bt − Bs ) , 0 ≤ s ≤ t sind N(0, t − s)–verteilt ,
(BB4) (Bt )t≥0 hat P–f. s. stetige Pfade .
Der nachfolgende Satz enthält wichitge Prinzipien zur Konstruktion Brownscher Bewegungen,
welche für die später folgenden Simulationen grundlegend seien werden:
64
Satz 5.3. Ist B = (Bt )t≥0 eine Brownsche Bewegung, so auch jeder der folgenden Prozesse:
(i) B 1 := −B
(Spiegelungsprinzip)
(ii) für festets s ≥ 0: Bt2 := Bs+t − Bs , t ≥ 0
(Zeithomogenität)
(iii) für festes c > 0: Bt3 := 1c Bc2 t , t ≥ 0
(Skalierung)
(iv) für festes T > 0: Bt4 := BT − BT −t , 0 ≤ t ≤ T
(Zeitinversion)
8
<tB 1
t>0
(v) Bt5 := : t
0
t=0
.
(Inversion)
Korollar 5.4. Aus den Eigenschaften der Brownschen Bewegung und dem vorangehenden Satz
folgt die (gewöhnliche) Markov–Eigenschaft:
B̃t := Bs+t − Bt , s ≥ 0 , t ≥ 0
ist eine Brownsche Bewegung und unabhängig von Fs .
Es lässt sich auch die starke Markov–Eigenschaft beweisen:
B̃t := Bt+T − BT , t ≥ 0 , T < ∞ f. s. , T ist FB –Stoppzeit ,
wobei FB die natürliche Filtration bezeichne.
Die gängigste Methode zur Simulation einer Brownschen Bewegung nutzt die Eigenschaft der
unabhängigen normalverteilten Zuwächse. Man simuliert Werte der Brownschen Bewegung auf
einem diskreten Gitter, indem man unabhängige, zentrierte normalverteilte (Pseudo–)Zufallszahlen
aufsummiert. Diese Methode wird auch als Gauß’scher random walk bezeichnet.
Wir verwenden diese Methode nun, um einen Graphen einer Brownschen Bewegung auf [0, 1] zu
simulieren.
>
+
+
+
+
+
+
+
+
+
+
+
>
BB<−f u n c t i o n ( B0 , T , n ) {
d t<−T / n
B<− c ( rep (NA, n + 1 ) )
t<− c ( rep (NA, n + 1 ) )
t [ 1 ]<−0
for ( j in 2 : ( n +1)){
t [ j ]<− t [ j −1]+ d t }
B [ 1 ]<− B0
for ( j in 2 : ( n +1)){
B [ j ]<− B [ j −1]+ s q r t ( d t ) ∗rnorm ( 1 , mean =0 , sd = 1) }
p l o t ( t , B , t y p e =” l ” , main=” S t a n d a r d −Brownsche Bewegung ” )
w r i t e . t a b l e ( B , f i l e =”SBB” ) }
BB( 0 , 1 , 1 0 0 0 )
65
Einige wichtige Eigenschaften und Charakterisierungen der Brownschen Bewegung sind im
nächsten Satz zusammengefasst.
Satz 5.5. Es sei B = (Bt )t≥0 eine Brownsche Bewegung. Es gelten die folgenden Aussagen:
1. Für jedes γ > 1/2 sind die Pfade fast sicher in keinem Punkt Hölder–stetig zur Ordnung γ.
2. Insbesondere sind die Pfade fast sicher nirgends differenzierbar.
3. Die Pfade sind auf jedem Intervall fast sicher von unbeschränkter Variation.
4. Lévy-Charakterisierung:
(Bt ) ist stetiges lokales Martingale mit B0 = 0 f. s. und hBit = t ⇔ (Bt ) ist Brownsche
Bewegung .
5. Das Wachstumsverhalten lässt sich durch das Gesetz vom iterierten Logarithmus beschrei-
66
ben:
lim sup È
t→∞
Bt (ω)
= 1 für P fast alle ω ∈ Ω .
2t log log (t)
6. B ist zentrierter Gauß–Prozess mit Cov(Bs , Bt ) = s ∧ t ∀ s , t ≥ 0 ⇔ B ist Brownsche
Bewegung.
7. B ist Lévy–Prozess mit stetigen Pfaden ⇔ B ist Brownsche Bewegung.
Desweiteren lässt sich jedes stetige lokale Martingal als zeittransformierte Brownsche Bewegung darstellen (Dambis–Dubins–Schwarz), weshalb der Brownschen Bewegung eine zentrale
Bedeutung in der Martingaltheorie zukommt.
5.1.2 Simulation einer zweidimensionalen Brownschen Bewegung
Definition 5.6. Ein stochastischer Prozess (Bt )t≥0 mit Werten im Rd heißt d-dimensionale Brownsche Bewegung, falls die Koordinaten (Bi )t i ∈ {1, . . . , d} unabhängige eindimensionale Standard Brownsche Bewegungen sind.
Wir werden nun eine Brownsche Bewegung im R2 , also in der Ebene, simulieren und ihren
Verlauf in R plotten. Zur Veranschaulichung verwenden wir die Funktionen arrows und symbols,
um einer bestehenden Abbildung Pfeile und Symbole hinzuzufügen.
>
>
>
>
>
>
+
+
+
>
>
>
>
>
+
>
>
+
>
>
+
n<−100
x<−rnorm ( n , mean =0 , sd =1 / s q r t ( n ) )
y<−rnorm ( n , mean =0 , sd =1 / s q r t ( n ) )
Bx<−0
By<−0
for ( t in 1: n ) {
Bx [ t + 1 ]<−Bx [ t ] + x [ t ]
By [ t + 1 ]<−By [ t ] + y [ t ]
}
par ( bg=” l i g h t g r a y ” )
p l o t ( x=Bx , y=By , t y p e =” l ” , x l a b =” ” , y l a b =” ” , a x e s = FALSE )
a x i s ( 4 , pos =0 , c o l =” b l u e ” )
a x i s ( 3 , pos =0 , c o l =” b l u e ” )
arrows ( Bx [ s e q ( 1 , n ) ] , By [ s e q ( 1 , n ) ] , Bx [ s e q ( 2 , n + 1 ) ] , By [ s e q ( 2 , n + 1 ) ] ,
length =0.1)
symbols ( x =0 , y =0 , c i r c l e s =c ( 0 . 0 3 ) , i n c h e s =FALSE , add=TRUE , f g =” b l a c k ” , lwd = 3 )
symbols ( x=Bx [ n + 1 ] , y=By [ n + 1 ] , c i r c l e s =c ( 0 . 0 4 ) , i n c h e s =FALSE , add=TRUE ,
f g =” b l a c k ” , lwd = 3 )
t i t l e ( main=” Z w e i d i m e n s i o n a l e Brownsche Bewegung ” , c e x . main = 2)
t e x t ( x=c ( − 0 . 0 5 , Bx [ n + 1 ] ) , y=c ( 0 . 0 5 , By [ n + 1 ] ) ,
l a b e l s =c ( ” S t a r t ” , ” E n d p o s i t i o n ” ) , c o l =” r e d ” )
67
5.1.3
Konstruktion nach Paul Lévy
Eine weitere Methode zur Konstruktion und damit auch zur Simulation einer (Standard) Brownschen Bewegung geht auf Paul Lévy zurück. Dabei wird das Einheitsintervall in jedem Schritt
n in 2n äquidistante Teilintervalle unterteilt. In jedem Schritt werden in den neuen Randpunkten
normalverteilte Zufallszahlen generiert und dann über alle Werte linear interpoliert. Die Varianzen werden genau passend gewählt, dass eine Standard Brownsche Bewegung entsteht.
S
Sei n ∈ N0 , Dn = {k/2n , k ∈ N, 0 ≤ k ≤ 2n } und D = ∞
n=1 Dn .
(Zt )t∈D sei eine Folge auf Ω standardnormalverteilter Zufallsvariablen. Wir definieren nun eine
Funktionenfolge Fn : [0, 1] → R durch F0 (t) = tZ1 und
8
> √ Zt
>
< 2n+1
t ∈ Dn \Dn−1
Fn (t) = > 0
t ∈ Dn−1
linear interpoliert zwischen Nachbarpunkten auf Dn
n≥1.
>
:
B wird nun konstruiert durch B0 = 0, B1 = Z1 und Bt =
Bt =
P∞
i=0
Fi (t), womit der Zusammenhang
Bt− + Bt+
Zt
+√
2
2n+1
gilt, wenn Bt+ den rechten und Bt− den linken Nachbarpunkt nach einer Intervallhalbierung bezeichnen. Die Varianzen führen gerade dazu, dass der entstehende Prozess zur Zeit t die Varianz
68
t hat.
Es gilt z. Bsp.
B0 + B1 Z1/2
+
,
2
2
B0 + B1/2 Z1/4
B1/4 =
+ √ ,
2
8
B1/2 + B1 Z3/4
+ √
B3/4 =
2
8
B1/2 =
für die ersten Schritte.
Bei der Implementierung dieser Methode verwenden wir die Funktion Sys. sleep um die Konstruktion Schritt für Schritt im plot verfolgen zu können.
>
>
>
>
>
+
>
+
+
+
+
+
+
+
+
+
>
>
+
H=10
c=rainbow (H)
B= a r r a y ( d a t a =0 , dim = 2 )
B[ 2 ] = 0 + rnorm ( n =1 , mean =0 , sd = 1 )
p l o t ( x= s e q ( from =0 , t o =1 , l e n g t h = 2 ) , y=B , t y p e =” l ” , c o l =c [ 1 ] , x l a b =” Z e i t ” ,
y l i m =c ( − 1 , 1 ) )
f o r ( i i n 2 :H) {
o l d =B
f o r ( t i n 1 : 2 ˆ ( i −2)) {
B[ 2 ∗ t −1]= o l d [ t ]
B[ 2 ∗ t ] =rnorm ( n =1 , mean = . 5 ∗ ( o l d [ t ] + o l d [ t + 1 ] ) , sd = ( 1 / ( s q r t ( 2 ) ˆ i ) ) )
}
B [ 2 ˆ ( i −1)+1]= o l d [ 2 ˆ ( i −2)+1]
l i n e s ( x= s e q ( from =0 , t o =1 , l e n g t h = 2 ˆ ( i − 1 ) + 1 ) , y=B , c o l =c [ i ] )
Sys . s l e e p ( 1 )
}
l i n e s ( x= s e q ( from =0 , t o =1 , l e n g t h = 2 ˆ (H− 1 ) + 1 ) , y=B , t y p e =” l ” , lwd = 2)
t i t l e ( main=” K o n v e r g e n z g e g e n e i n e S t a n d a r d −Brownsche Bewegung ” ,
c e x . main = 1 )
5.1.4 Diffusionen
Unter einem Diffusionsprozess versteht man in der Stochastik einen Prozess
Xt = X0 + µ · t + σBt ,
mit einer Standard Brownschen Bewegung B, manchmal auch einfach als allgemeine Brownsche
Bewegung mit der konstanten Drift µ und konstanten Volatilität σ bezeichnet. Einen Prozess mit
zeitabhängiger Drift und Volatilität bezeichnet man als Itô–Prozess.
Bei der Simulation einer Diffusion geht man wie im Falle der Standard Brownschen Bewegung
vor, wobei man anstatt einer Standardnormalverteilung nun normalverteilte (Pseudo–)Zufallszahlen mit Varianz σ 2 generiert und zusätzlich den Driftterm berücksichtigt. Dies ist auch für
bekannte zeitabhängige Funktionen µ(t) und σ(t) problemlos umzusetzen.
69
>
+
+
+
+
+
+
+
+
+
+
+
>
D i f f<−f u n c t i o n ( B0 , mu , sigma , T , n ) {
d t<−T / n
D<− c ( rep (NA, n ) )
t<− c ( rep (NA, n ) )
t [ 1 ]<−0
for ( j in 2: n ){
t [ j ]<− t [ j −1]+ d t }
D[ 1 ]<− B0
for ( j in 2: n ){
D[ j ]<− D[ j −1]+mu∗ d t + s i g m a ∗ s q r t ( d t ) ∗rnorm ( 1 , mean =0 , sd = 1) }
p l o t ( t , D, t y p e =” l ” , main=” D i f f u s i o n ” )
w r i t e . t a b l e (D, f i l e =” D i f f ” ) }
Diff (0 , −1 ,1 ,5 ,10000)
Wir wollen nun einen Diffusionsprozess darstellen mit dem zugehörigen Erwartungswert und
Konfidenzbändern, welche die Standardabweichung kennzeichnen. Hierzu generiert der nachfolgende R–Code drei Realisierungen eines Diffusionsprozesses mit negativer Drift -1 und Volatilität 1 auf dem Zeitintervall [0,5]. Es wird ein äquidistantes Gitter mit Zeitintervallen von
0.0005 verwendet. Der Erwartungswert des Prozesses ist µ · t, die Varianz σ 2 t. Die Gerade, die
den Erwartungswert angibt und die Bänder für die Standardabweichung lassen sich nun einfach
mit lines in den bestehenden plot einzeichnen.
70
>
>
>
>
>
>
>
>
>
+
>
>
+
>
>
>
>
+
>
>
B0<−0 ; mu<−−1; s i g m a = 1 ; T = 5 ; n =10000
mean<−B0+mu∗ t
upbound<−B0+mu∗ t + s i g m a ∗ s q r t ( t )
l o b o u n d<−B0+mu∗ t−s i g m a ∗ s q r t ( t )
d t<−T / n
D<− c ( rep (NA, n ) )
t<− c ( rep (NA, n ) )
t [ 1 ]<−0
for ( j in 2: n ){
t [ j ]<− t [ j −1]+ d t }
D[ 1 ]<− B0
for ( j in 2: n ){
D[ j ]<− D[ j −1]+mu∗ d t + s i g m a ∗ s q r t ( d t ) ∗rnorm ( 1 , mean =0 , sd = 1) }
p l o t ( t , D, t y p e =” l ” , main=” D i f f u s i o n ” )
D2<− c ( rep (NA, n ) )
D2 [ 1 ]<− B0
for ( j in 2: n ){
D2 [ j ]<− D2 [ j −1]+mu∗ d t + s i g m a ∗ s q r t ( d t ) ∗rnorm ( 1 , mean =0 , sd = 1) }
l i n e s ( t , D2 , c o l =” d a r k g r e e n ” )
D3<− c ( rep (NA, n ) )
71
>
>
+
>
>
>
>
D3 [ 1 ]<− B0
for ( j in 2: n ){
D3 [ j ]<− D3 [ j −1]+mu∗ d t + s i g m a ∗ s q r t ( d t ) ∗rnorm ( 1 , mean =0 , sd = 1) }
l i n e s ( t , D3 , c o l =” s t e e l b l u e ” )
l i n e s ( t , l o b o u n d , c o l =” r e d ” , l t y =2 , lwd = 2)
l i n e s ( t , upbound , c o l =” r e d ” , l t y =2 , lwd = 2)
l i n e s ( t , mean , c o l =” brown ” , l t y =2 , lwd = 2)
5.2
Brownsche Brücke
Definition 5.7. Es sei (Bt )t≥0 eine Standard Brownsche Bewegung. Zu einem fest gewählten
Zeitpunkt T ≥ 0 und einer Konstanten c ∈ R heißt der Prozess
Bt = (Bt |BT = c), t ≥ 0
Brownsche Brücke.
Die Brownsche Brücke ist ein Gauß–Prozess und wird in der Finanzmarktanalyse zur Modellierung von Anleihen herangezogen, die eine feste Auszahlung bei Fälligkeit zur Zeit T aufweisen, jedoch einer Fluktuation durch Zinsschwankungen unterliegen.
72
Nehmen wir noch einen beliebigen Startwert B0 für die Brownsche Bewegung hinzu, gelten
folgende Zusammenhänge:
t
(Bt − c) ,
T
Bt − c
dt ,
dBt = dBt +
t−T
Z T
c − Bs
Bt = B0 +
ds + Bt ,
0
T
−
s
8
Bt = B0 + Bt −
<
€
B0 1 −
Bt = :
c
t
T
Š
+
ct
T
+ (T − t)
(5.2a)
(5.2b)
(5.2c)
Rt
1
0 T −s dBs
t<T
t=T
.
(5.2d)
Der Erwartungswert des Prozesses ist durch B0 (1 − t/T ) + (ct/T ) gegeben, wie sich leicht aus
der letzten Darstellung ablesen lässt und die Kovarianzfunktion durch
Cov(Bs , Bt ) = s ∧ t −
st
.
T
Zur Simulation kann man nun die erste Gleichung der obigen Darstellungen der Brownschen
Brücke verwenden. Ein zweiter Ansatz, der sich auch für andere Konstruktionen dieser Art verallgemeinern lässt, ist die Brownsche Brücke aus zwei Teilprozessen“ zu konstruieren. Dazu
”
simuliert man zwei Brownsche Bewegungen B1 und B2 , wobei B1 im gewünschten Startpunkt
der Brownschen Brücke und B2 im gewünschten Endpunkt startet. Letztere invertiert man dann
in der Zeit (s. o. Zeitinversion). Man bestimmt nun den ersten Treffpunkt der ersten Brownschen
Bewegung B1 und der zeitinvertierten zweiten Brownschen Bewegung B2i . Wenn diese sich nicht
treffen, generiert man nochmal neu. Setzt man nun die Brownsche Bewegung B1 bis zum Zeitpunkt des ersten Treffens und B2i von diesem Zeitpunkt bis zur Endzeit zusammen, erhalten wir
die gewünschte Brownsche Brücke.
>
+
+
+
+
+
+
>
B B r i d g e<−f u n c t i o n ( x , y , t 0 , T , n ) {
i f ( T<=t 0 ) s t o p ( ” f a l s c h e Z e i t e n ” )
d t<−( T−t 0 ) / n
t<−s e q ( t 0 , T , l e n g t h =n + 1 )
B<−c ( 0 , cumsum ( rnorm ( n ) ∗ s q r t ( d t ) ) )
BB<−x+B−( t−t 0 ) / ( T−t 0 ) ∗ ( B [ n+1]−y+x )
p l o t ( t , BB , t y p e =” l ” , main=” Brownsche B r ü c k e ” ) }
BBridge ( 0 , 1 , 0 , 1 , 1 0 0 0 )
>
>
>
>
>
>
>
n<−1 0 0 0 0 ; d t<−1 / n
t<−s e q ( 0 , 1 , l e n g t h =n + 1 )
B1<−c ( 0 , cumsum ( rnorm ( n ) ∗ s q r t ( d t ) ) )
B2<−c ( 1 , 1 + cumsum ( rnorm ( n ) ∗ s q r t ( d t ) ) )
rB2<−r e v ( B2 )
c t<−e x p r e s s i o n ( n o c r o s s i n g )
i f ( B[1] >= rB2 [ 1 ] ) {
73
+ i f ( ! a l l ( B1>rB2 ) )
+ c t<−min ( which ( B1<=rB2 )) −1
+ }else{
+ i f ( ! a l l ( B1<rB2 ) )
+ min ( which ( B1>=rB2))−1−> c t }
> par ( mfrow=c ( 2 , 1 ) )
> p l o t ( t , B1 , y l i m = range ( B1 , rB2 ) , t y p e =” l ” ,
+ main=” K o n s t r u k t i o n Brownsche B r ü c k e ” , y l a b =” ” , c o l =” r e d ” )
> l i n e s ( t , rB2 , c o l =” b l u e ” )
> ct
[ 1 ] 461
> xx<−c t / n
> symbols ( x=xx , y=B1 [ c t ] , c i r c l e s =c ( . 0 1 ) , i n c h e s =FALSE , add=TRUE , f g =” r e d ” ,
+ lwd = 3 )
> b r i d g e<−c ( rep (NA) , n + 1 )
> for ( j in 1: c t ){
+ b r i d g e [ j ]<−B1 [ j ] }
> for ( j in ( ct +1):( n +1)){
+ b r i d g e [ j ]<−rB2 [ j ] }
> p l o t ( t , B1 , y l i m = range ( B1 , rB2 ) , t y p e =” l ” , main=” ” , y l a b =” ” )
74
>
>
+
>
l i n e s ( t , rB2 )
symbols ( x=xx , y=B1 [ c t ] , c i r c l e s =c ( . 0 1 ) , i n c h e s =FALSE , add=TRUE , f g =” r e d ” ,
lwd = 3 )
l i n e s ( t , b r i d g e , c o l =” g r e e n ” , lwd = 2)
5.3
Ornstein-Uhlenbeck Prozess
Nach Diffusionen und der Brownschen Brücke betrachten wir noch einen weiteren Gauß–Prozess,
der in Anwendungen oft zur Modellierung benötigt wird, den (Gauß’schen) Ornstein–Uhlenbeck
Prozess.
Definition 5.8. Es sei durch (Bt )t≥0 eine (Ft )–adaptierte Standard Brownsche Bewegung gegeben. Die stochastischen Differentialgleichung
dXt = θ(µ − Xt )dt + σdBt
mit Startwert X0 ist explizit lösbar durch
Z
−θt
Xt = X0 e
−θt
+ µ(1 − e
t
)+
0
75
σeθ(s−t) dBt ,
den Ornstein–Uhlenbeck Prozess mit mean reversion level µ, mean reversion rate θ und Rauschniveau σ.
Im Gegensatz zu einem Wurzeldiffusionsprozess ist der Einfluss des Rauschens unabhängig
von X. Der Erwartungswert€ ist durch X0 e−θtŠ + µ(1 − e−θt ) und die Kovarianzfunktion durch
Cov(Xs , Xt ) = (σ 2 /2θ) e−θ|s−t| − eθ(s+t) gegeben. Der Ornstein–Uhlenbeck Prozess ist
schwach stationär und die invariante Verteilung ist eine Normalverteilung mit Erwartungswert
µ und Varianz (σ 2 /2θ).
Im Folgenden simulieren wir einen Ornstein–Uhlenbeck Prozess als Lösung einer stochastischen
Differentialgleichung
dXt = −θXt + σdBt ,
also als stochastisches Integral durch Näherung der Itô–Summe.
>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
>
>
OU<−f u n c t i o n ( sigma , t h e t a , n , s ) {
t<−c ( rep (NA) , n )
t [ 1 ]<−0
for ( j in 2: n ){
t [ j ]<−t [ j −1]+1 / n }
B<−c ( rep (NA) , n )
B [ 1 ]<−0
for ( j in 2: n ){
B [ j ]<−B [ j −1]+ s q r t ( 1 / n ) ∗ s i g m a ∗rnorm ( 1 ) }
i t o . sum<−c ( 0 , s a p p l y ( 2 : n , f u n c t i o n ( x ) { exp(− t h e t a ∗ ( t [ x]− t [ x − 1 ] ) )
∗ ( B [ x]−B [ x − 1 ] ) } ) )
ou<−c ( rep (NA) , n )
ou [ 1 ]<−s
ou<−s a p p l y ( 1 : n , f u n c t i o n ( x ) { ou [ 1 ] ∗ exp(− t h e t a ∗ t [ x ] ) + sum ( i t o . sum [ 1 : x ] ) } )
ou<−t s ( ou , s t a r t = s t a r t (W) , d e l t a t =1 / n )
p l o t ( t , ou , main=” O r n s t e i n −Uhlenbeck −P r o z e s s ” , t y p e =” l ” ) }
OU( 2 , 6 , 1 0 0 0 , 1 0 )
Andere Simulationsmöglichkeiten für Ornstein–Uhlenbeck Prozesse werden in Iacus (2008) vorgestellt.
5.4
Zusammengesetzter Poisson–Prozess und Sprungdiffusionen
Definition 5.9. Ein Poisson–Prozess N ist ein adaptierter Zählprozess, für den gilt:
1. ∀s, t , 0 ≤ s < t < ∞ : (Nt − Ns ) ist unabhängig von Fs .
2. ∀s, t, u, v , 0 ≤ s < t < ∞ , 0 ≤ v < u < ∞ , t − s = v − u : (Nt − Ns ) ∼ (Nu − Nv ).
Der Pfad eines Poisson–Prozesses hat damit Sprünge der Höhen 1 und ist stückweise konstant
und càdlàg. Die Anzahl der Sprünge Nt zur Zeit t ist Poisson–verteilt mit Parameter λ · t, λ
76
bezeichnet man als Intensität des Prozesses. Erwartung und Varianz sind damit jeweils λ · t. Der
kompensierte Poisson–Prozess Nt − λ · t ist ein Martingal. Die Sprungzeiten Tn , n ∈ N0 sind
Stoppzeiten und die Wartezeiten zwischen den Sprüngen Tn − Tn−1 sind exponentialverteilt mit
Parameter λ, also Erwartungswert λ−1 .
Definition 5.10. Es sei (Nt )t≥0 ein Poisson–Prozess mit Intensität λ und (Yk )k≥1 eine i. i. d. Folge
von Zufallsvariablen, welche unabhängig von N sind. Dann heißt
Xt =
Nt
X
Yk
k=1
zusammengesetzter Poisson–Prozess.
Bei einem zusammengesetzten Poisson–Prozess sind die Sprunghöhen also nicht mehr konstant 1, sondern haben eine bestimmte Verteilung ν.
Der entscheidende Trick“ bzw. Zusammenhang zu einer effektiven Simulationsmethode eines
”
Poisson–Prozesses oder auch eines zusammengesetzten Poisson–Prozesses ist der folgende Satz.
Satz 5.11. Gegeben N (T ) = n sind die Sprungzeitpunkte T1 , . . . , Tn auf [0, T ]n genauso verteilt
wie die Ordnungsstatistik von n unabhängigen auf [0, T ] uniform verteilten Zufallsvariablen.
77
Beweis. Zunächst zeigen wir, dass wenn Nt = 1 , t > 0 der Zeitpunkt des einen Sprunges
uniform auf [0, t] verteilt ist. Dies ist eine Folgerung aus der Gedächtnislosigkeit einer Exponentialverteilung. Sei nun 0 ≤ s < t. Es gilt
P (T1 ≤ s , Nt = 1)
P (Nt = 1)
P (Ns = 1 , Nt − Ns = 0)
s
=
= .
P (Nt = 1)
t
P (T1 ≤ s|Nt = 1) =
Wenn nun T1 , . . . , Tn i. i. d. uniform auf [0, T ] verteilt sind, ist die Dichte der Ordnungsstatistik
gegeben durch:
n!
f (t1 , . . . , tn ) = n 1{0≤t1 ≤...≤tn ≤t} .
t
Es bleibt zu zeigen, dass dies die Verteilung der Sprungzeiten ist, wenn Wi = ∆Ti = (Ti −
Ti−1 ) , i ∈ {1, . . . , n} ∼ Exp(λ) , T0 := 0. Die gemeinsame Dichte der Wartezeiten ist durch
€
g(w1 , . . . , wn ) = λn exp −λ
X
wi
ŠY
1{wi >0}
i
gegeben. Da nun aber Nt Poisson–verteilt ist mit Parameter λt, ist die gemeinsame Dichte der
bedingten Verteilung der Wartezeiten Wi , i ∈ {1, . . . , n} bedingt auf Nt = n gerade:
g̃ (w1 , . . . , wn |Nt = n) =
da dann
P
n! λt n −λt
e λ e 1{0≤t1 ≤...≤tn ≤t} ,
(λt)n
wi = t gilt.
Um nun von einem Poisson–Prozess zu samplen generiert man also zunächst eine Poisson–
verteilte Zufallszahl N , die die Anzahl der Sprünge auf einem fest gewählten Intervall simuliert.
Danach generiert man N unabhängige auf dem vorgegebenen Zeitintervall uniform verteilte Zufallszahlen und bildet die Ordnungsstatistik mit der sort–Funktion. Diese simulieren die Sprungzeitpunkte.
Mit Hilfe dieser Simulationsmethode lassen sich Poisson–Prozesse, zusammengesetzte Poisson–
Prozesse und Spungdiffusionen simulieren. Unter einer Sprungdiffusion verstehen wir hier die
Summe eines zusammengesetzten Poisson–Prozesses und eines Diffusionsprozesses.
>
+
+
+
+
+
+
+
+
+
+
j u m p d i f f u s i o n<−f u n c t i o n ( n , sigma , mu , lambda ) {
d t<−1 / n
t<−s e q ( 0 , 1 , l e n g t h =n )
L<−c ( rep (NA, n ) )
L [ 1 ]<−0
N<−r p o i s ( 1 , lambda )
T<−r u n i f (N, min =0 ,max= 1 )
T<−s o r t ( T )
jumps<−f u n c t i o n ( j ) {
i n d h e l p<−f u n c t i o n ( j , i ) {
i f ( t [ j ]<T [ i ] ) { r e t u r n ( 0 ) }
78
+
+
+
+
+
+
+
+
+
+
+
>
>
e l s e i f ( t [ j −1]>T [ i ] ) { r e t u r n ( 0 ) }
e l s e { return (1)}}
c<−c ( rep (NA, N ) )
f o r ( i i n 1 :N) {
c [ i ]<−i n d h e l p ( j , i ) ∗ r u n i f ( 1 , min=−1,max= 1) }
sum ( c ) }
for ( j in 2: n ){
L [ j ]<−L [ j −1]+ s i g m a ∗ s q r t ( d t ) ∗rnorm ( 1 , mean =0 , sd =1)+mu∗ d t + jumps ( j ) }
w r i t e . t a b l e ( L , f i l e =” j u m p d i f f u s i o n . t x t ” )
w r i t e . t a b l e ( T , f i l e =” j u m p t i m e s ” )
p l o t ( L , t y p e =” l ” , main=” D i f f u s i o n und z u s a m m e n g e s e t z t e r P o i s s o n −P r o z e s s ” ) }
jumpdiffusion (1000 ,1 ,0.1 ,10)
5.5
Eintrittszeiten
Im letzten Abschnitt zur Simulation stochastischer Prozesse beschäftigen wir uns mit Eintrittszeiten/Ankunftszeiten von einer Brownschen Bewegung. Der Zeitpunkt des ersten Erreichens
79
einer Standard Brownschen Bewegung in h ∈ R wird beschrieben durch die Stoppzeit
T (h) = inf {t > 0|Bt = h} .
Die Verteilung der Stoppzeit ist eine Lévy–Verteilung mit Parametern µ = 0 und σ = h2 (siehe
z. Bsp. Theorem 2.9 in Applebaum (2005)). Eine Lévy Verteilung mit Parametern µ und σ besitzt
die Dichte
‚
Œ
r
σ
1
−σ
exp
, x>µ
l(x) =
2π (x − µ)3/2
2(x − µ)
bezüglich des Lebesguemaßes. Es ist eine stabile Verteilung mit α = 1/2.
Die Lévy–Verteilung ist standardmäßig nicht in R eingebunden, um weiter unten die Dichte dlevy
zu verwenden, kann man diese als Funktion selbst eingeben oder das Paket rmutil“ als zip–
”
Ordner herunterladen und installieren. Dieses Paket ist nicht über install .packages(rmutil )
abrufbar.
> h<−1 ; T<−3 ; n<−10000
> bb1<−c ( 0 , cumsum ( rnorm ( n , mean =0 , sd = s q r t ( T / n ) ) ) )
> t a u 1 =which ( bb1>h ) [ 1 ]
> bb1 [ t a u 1 : ( n + 1 ) ] = h
> bb2<−c ( 0 , cumsum ( rnorm ( n , mean =0 , sd = s q r t ( T / n ) ) ) )
> t a u 2 =which ( bb2>h ) [ 1 ]
> bb2 [ t a u 2 : ( n + 1 ) ] = h
> bb3<−c ( 0 , cumsum ( rnorm ( n , mean =0 , sd = s q r t ( T / n ) ) ) )
> t a u 3 =which ( bb3>h ) [ 1 ]
> bb3 [ t a u 3 : ( n + 1 ) ] = h
F e h l e r i n t a u 3 : ( n + 1 ) : NA/ NaN Argument
> par ( bg=” l i g h t g r a y ” )
> t = s e q ( 0 , T , l e n g t h =n + 1 )
> p l o t ( t , bb1 , t y p e =” l ” , y l i m = range ( bb1 , bb2 , bb3 , 1 . 2 5 ∗ h ) , c o l =2 , lwd =2 , y l a b =”BB” , x l a b =
+ main=” E i n t r i t t s z e i t e n d e r Brownschen Bewegung ” )
> l i n e s ( t , bb2 , c o l =3 , lwd = 2 )
> l i n e s ( t , bb3 , c o l =4 , lwd = 2 )
> dev . o f f ( )
>
>
>
>
>
>
>
+
+
>
library ( rmutil )
N<−100
n<−10000
BRM<−m a t r i x ( n c o l =N, nrow=n + 1)
h<−1
t a u<−c ( rep (NA) ,N)
f o r ( j i n 1 :N) {
BRM[ , j ] = c ( 0 , cumsum ( rnorm ( n , mean =0 , sd = s q r t ( T / n ) ) ) )
t a u [ j ] = which (BRM[ , j ]>h ) [ 1 ] }
t a u<−s o r t ( t a u ) / n ∗T
80
>
>
>
>
>
>
par ( mfrow=c ( 1 , 2 ) )
h i s t ( t a u , f r e q =FALSE , main=” V e r t e i l u n g E i n t r i t t s z e i t e n ” )
l i n e s ( d e n s i t y ( t a u ) , c o l =2)
t 1<−t + . 0 0 0 1
p l o t ( d l e v y ( t 1 ,m=0 , s =h ˆ 2 ) , c o l =3 , t y p e =” l ” , lwd=” 1 ” , x a x t =” n ” , x l a b =” t ” )
a x i s ( 1 , a t =c ( 0 , 3 3 3 3 , 6 6 6 6 , 1 0 0 0 0 ) , 0 : 3 )
Dieser R–Code erstellt einen plot mit 3 Brownschen Pfaden und deren erste Eintrittszeiten
in h = 1. Zur Veranschaulichung wurden alle weiteren generierten Werte nach der Ankunftszeit
zu h = 1 gesetzt. Die Ankunftszeiten werden in obigem Code ausgegeben, wenn die Brownsche
Bewegung h = 1 im vorgegebenen Zeitintervall nicht erreicht, erhalten wir eine Fehlermeldung
als Ausgabe. In der dann folgenden Schleife werden N Ankunftszeiten von Brownschen Pfaden
(simuliert auf Gittern mit n Punkten) generiert und deren empirische Verteilung in einem Histogramm mit eingezeichnetem Kerndichteschätzer veranschaulicht. Rechts davon ist die Dichte
einer Lévy Verteilung dargestellt.
Zu dem Buch Iacus (2008) gibt es ein zugehöriges Paket sde, welches speziell zu Simulationszwecken stochastischer Differentialgleichungen konzipiert ist. Häufig benötigte Prozesse wie die
81
Brownsche Bewegung, Diffusionen oder Brownsche Brücken lassen sich nach Einbindung des
sde Paketes einfach durch BM, GBM und BBridge aufrufen.
Literatur
Applebaum, D. (2005). Lévy Processes and Stochastic Calculus (2 ed.). Cambridge University
Press.
Cont, R. and P. Tankov (2008). Financial modelling with Jump Processes (2 ed.). Chapman
Hall/CRC.
Iacus, S. M. (2008). Simulation and Inference for Stochastic Differential Equations. New York:
Springer.
Revuz, D. and M. Yor (2004). Continous Martingales and Brownian Motion (3 ed.). New York:
Springer.
82
6
6.1
Lineare Modelle
Einfache lineare Regression
Beim Modell der einfachen linearen Regression wird angenommen, dass sich eine Zielgröße
(response) Y durch eine lineare Abhängigkeit von einer Einflussgröße (erklärenden Variablen)
X und einem additiven i. i. d. Rauschen i ∼ N(0, σ 2 ) mit konstanter Varianz beschreiben lässt:
yi = β0 + β1 xi + i .
Ein Kleinster–Quadrate–Schätzer führt auf den ML–Schätzer
Pn
β̂1 =
− x̄)(yi − ȳ)
, β̂0 = ȳ − β̂1 x̄ ,
2
i (xi − x̄)
i=1 (xi
P
wobei x̄ und ȳ die Mittelwerte bezeichnen.
Satz 6.1 (Gauß–Markov). Der KQ–Schätzer ist bester linearer unverzerrter Schätzer (kleinste
Varianz) und eindeutig.
Die Residualvarianz ist durch
P
− ŷi )2
n−2
gegeben und die Standardfehler der geschätzten Regressionskoeffizienten durch
2
i (yi
2
s = σ̂ =
s
P
s2 i x2i
, se(β1 ) =
n SSX
se(β0 ) =
s
s2
SSX
P
mit SSX = i (xi − x̄)2 . β̂i /se(βi ) , i = 0, 1 ist tn−2 –verteilt. Somit werden die Konfidenzintervalle für die Schätzer bestimmt nach β̂i ± se(β̂i )tn−2,1−α/2 , i = 0, 1.
Ein Test der Hypothese H0 : β0 = β1 = 0 kann basierend auf der Statistik
P
(n − 2) i (ŷi − ȳ)2
∼ F1,n−2
F̂ =
P
2
i (yi − ŷi )
durchgeführt werden.
Das Bestimmtheitsmaß
P
2
R =1−
− yi )2
s2
=
1
−
2
(n − 2)SSY
i (yi − ȳ)
i (ŷi
P
beschreibt den Anteil der durch das Modell erklärten Varianz der Zielgröße. Je näher R2 , für das
0 ≤ R2 ≤ 1 gilt, an 1 liegt, desto besser kann Y aus X linear vorhergesagt werden.
Wir führen eine einfache lineare Regression in R mit der Funktion lm oder aov durch. In unserem
Beispiel gehen wir von einem linearen Zusammenhang des Cholesterinwertes mit dem Alter von
Personen aus.
83
> ch<−read . t a b l e ( f i l e =” c h o l e s t e r i n . c s v ” , h e a d e r =TRUE , d e c =” , ” )
> lm ( ch $ C h o l e s t e r i n ˜ ch $ A l t e r )
Call :
lm ( formula = ch $ C h o l e s t e r i n ˜ ch $ A l t e r )
Coefficients :
( Intercept )
1.27987
ch $ A l t e r
0.05262
> summary ( lm ( ch $ C h o l e s t e r i n ˜ ch $ A l t e r ) )
Call :
lm ( formula = ch $ C h o l e s t e r i n ˜ ch $ A l t e r )
Residuals :
Min
1Q Median
−0.6111 −0.2151 −0.0058
3Q
0.2297
Max
0.6256
Coefficients :
Estimate Std . Error t value
( I n t e r c e p t ) 1.279868
0.215699
5.934
ch $ A l t e r
0.052625
0.005192 10.136
−−−
S i g n i f . c o d e s : 0 ‘ ∗ ∗ ∗ ´ 0 . 0 0 1 ‘ ∗∗ ´ 0 . 0 1
P r ( >| t | )
5 . 6 9 e −06 ∗∗∗
9 . 4 3 e −10 ∗∗∗
‘∗ ´ 0.05
‘. ´ 0.1 ‘ ´ 1
R e s i d u a l s t a n d a r d e r r o r : 0 . 3 3 4 on 22 d e g r e e s o f f r e e d o m
M u l t i p l e R−s q u a r e d : 0 . 8 2 3 6 ,
A d j u s t e d R−s q u a r e d : 0 . 8 1 5 6
F− s t a t i s t i c : 1 0 2 . 7 on 1 and 22 DF , p−v a l u e : 9 . 4 2 8 e −10
>
>
>
+
p l o t ( ch $ A l t e r , ch $ C h o l e s t e r i n , main=”OLS R e s i d u a l −P l o t ” )
l i n e s ( ch $ A l t e r , f i t t e d ( lm ( ch $ C h o l e s t e r i n ˜ ch $ A l t e r ) ) )
s e g m e n t s ( ch $ A l t e r , f i t t e d ( lm ( ch $ C h o l e s t e r i n ˜ ch $ A l t e r ) ) ,
ch $ A l t e r , ch $ C h o l e s t e r i n , l t y = 2)
Wir zeichnen die Regressionsgerade mit den einzelnen Residuen.
Die Konfidenzintervalle kann man auch direkt abrufen durch:
> c o n f i n t ( lm ( ch $ C h o l e s t e r i n ˜ ch $ A l t e r ) )
2.5 %
97.5 %
( I n t e r c e p t ) 0.83253668 1.72720003
ch $ A l t e r
0.04185806 0.06339175
Die Modellannahmen und damit die Güte des Modells (Goodness of fit) werden anhand der
Verteilung der Residuen überprüft. Die plot–Funktion angewendet auf den Modellaufruf gibt
hierfür sechs Diagnose–Grafiken aus. Einzelne dieser plots kann man durch die Option which= .
aufrufen.
84
Unter den Annahmen des Modells müssten die Residuen unabhängig normalverteilt sein. Im
Normal–QQ–Plot sollten sie daher nah an der diagonalen Geraden liegen. Aufgetragen gegen
die gefitteten Werte sollte sich keine Struktur“ erkennbar zeigen. Der vierte dargestellte Graph
”
verdeutlicht den Einfluss einzelner Beobachtungen bzw. Ausreißer auf die Schätzung.
> par ( mfrow=c ( 2 , 2 ) )
> p l o t ( lm ( ch $ C h o l e s t e r i n ˜ ch $ A l t e r ) )
Zur Beschreibung des Einflusses einzelner Ausreißer eignet sich die Cook–Distanz:
Dk =
1
2σ̂ 2
n €
X
ŷi(k) − yi
Š2
,
i=1
wobei ŷi(k) die geschätzten Werte aus der Regression ohne die k–te Beobachtung bezeichnen. Bei
sehr großer Cook–Distanz (≥ 1) ist der Einfluss einer einzelnen Beobachtung auf die Schätzung
sehr groß.
In unserem Beispiel gibt es keine extremen Ausreißer, was sich aus dem Cook–Distanz–plot
ergibt. In manchen Fällen kann es jedoch sinnvoll sein eine Teilmenge aus der Regression auszuschließen, dies kann nach erfolgtem Aufruf durch die Funktion update erfolgen.
>
update ( lm ( ch $ C h o l e s t e r i n ˜ ch $ A l t e r ) , s u b s e t = ( ch $ A l t e r ! = 3 6 ) )
Call :
85
lm ( formula = ch $ C h o l e s t e r i n ˜ ch $ A l t e r , s u b s e t = ( ch $ A l t e r ! =
86
36))
Coefficients :
( Intercept )
1.23129
6.2
ch $ A l t e r
0.05317
Multiple lineare Regression
Wir betrachten nun das verallgemeinerte Modell, in dem der n–dimensionale Vektor der Zielgröße Y von p ≥ 1 erklärenden Variablen X1 , . . . , Xp linear abhängt. Mit der Designmatrix X
ergibt sich die Modellgleichung:
†
Y = Xβ + =
1 x11 . . . x1p
..
.. . .
.
. ..
.
.
1 xn1 . . . xnp
†
β0
..
.

†
+
βp
1
..
.

.
n
Der Kleinste–Quadrate–Schätzer hat die Form
€
β̂ = X t X
Š−1
X ty ,
wobei X t die transponierte Designmatrix sei. Hieraus ergibt sich als Schätzer für Y nun
€
Ŷ = X β̂ = X XX t
Š−1
X t Y = HY
mit der so genannten Hut–Matrix H. Mit den Residuen ˆ = Y − Ŷ folgt für die Residualvarianz:
s2 = σ̂ 2 =
ˆt ˆ
.
n−p−1
Die Anzahl der Freiheitsgrade p ist hier zu berücksichtigen, da die Schätzung geometrisch einer Orthogonalprojektion von Y auf die von X aufgespannte Modellebene entspricht, was die
Dimension des Fehlers auf (n − p) verringert. Die Standardfehler der geschätzten Regressionskoeffizienten sind durch
Ì
s2
se(β̂i ) =
(X t X)ii
bestimmt.
Für die Durchführung einer multiplen linearen Regression muss gewährleistet sein, dass X t X
invertierbar ist. Lineare Abhängigkeiten der erklärenden Variablen untereinander können zu Singularitäten der Matrix führen.
Die Hypothese βi = 0 ∀i ∈ {0, . . . , p} kann basierend auf der Teststatistik
F̂ =
1
p
€
Š
(y − ȳ)t (y − ȳ) − ˆt ˆ
1
ˆt ˆ
n−p−1
87
∼ Fp,n−p−1
geprüft werden. Für einzelne Koeffizienten kann die Hypothese H0 : βk = 0 für ein bestimmtes
k wiederum mit einem t–Test untersucht werden:
t̂i =
β̂i
se(β̂i )
∼ tn−p−1 .
Daraus lassen sich auch analog zur einfachen linearen Regression Konfidenzintervalle für die
Schätzung bzw. der linearen Vorhersage konstruieren.
Die Verallgemeinerung der Durchführung einer multiplen Regression in R ist sehr einfach, da
man exakt dieselben Funktionen aufruft. Im linearen Modell gibt man einfach mehrere Faktoren
als erklärende Variablen an: lm(response˜ factor1 + factor2 +....+ factorp , dataset ). Wir verzichten daher an dieser Stelle auf ein weiteres Beispiel.
Die Goodness of fit Diagnostik läuft analog zum einfachen Fall. Es ist jedoch bei der Definition der Cook–Distanz ebenfalls die Anzahl der Freiheitsgrade mit einzubeziehen, wodurch der
Faktor 1/2 durch 1/(p + 1) zu ersetzen ist.
6.3
Varianzanalyse
6.3.1 Einfaktorielle Varianzanalyse
Die Varianzanalyse (ANOVA) ist eng verwandt mit dem linearen Regressionsmodell. Es geht bei
der einfaktoriellen Varianzanalyse nun aber speziell darum, den Einfluss eines Faktors auf die
Zielgröße zu untersuchen. Im Gegensatz zur linearen Regression können erklärende Variablen
auch dichotom sein.
Das Modell ist bestimmt durch:
€
Yij = µ + αi + ij ∼ N µi , σ 2
Š
, µi = µ + αi , j = 1, . . . , ni , i = 1, . . . , p .
Wir gehen also wieder von normalverteilten Fehlern mit konstanter Varianz ij ∼ N(0, σ 2 ) aus.
Ziel der Varianzanalyse ist der Test auf Gleichheit der Mittelwerte in den p Faktorgruppen, in
denen jeweils ni Beobachtungen vorliegen.
H0 : α1 = α2 = . . . = αp
Man kann nun folgendermaßen ansetzen:
1. Schätze Varianzen in den Gruppen.
2. Schätze Varianzen zwischen den Gruppen.
3. Schätze totale Varianz.
88
⇒ Je größer der Anteil der Varianz zwischen den Gruppen an der Gesamtvarianz im Vergleich
zur Varianz innerhalb der Gruppen, desto eher wird H0 verworfen.
Im nachfolgend betrachteten Beispiel werden vier unterschiedliche Diäten innerhalb einer Tierpopulation angewendet. Es wird vermutet, dass sie eine unterschiedliche Wirkung auf die Blutgerinnung haben. Nach dem richtigen Einlesen der Daten und der Deklaration als dataframe
bzw. factor stellen wir die empirischen Beobachtungen in den einzelnen Gruppen vergleichend
durch einen stripchart oder einen boxplot dar. Wir wenden die lm–Funktion an.
>
>
>
>
>
>
>
c o a g <− m a t r i x ( s c a n ( f i l e =” c o a g . d a t ” ) , 2 4 , 3 , byrow=TRUE)
colnames ( c o a g ) <− c ( ” t i m e ” , ” d i e t ” , ” o r d e r ” )
c o a g <− a s . d a t a . frame ( c o a g )
c o a g $ d i e t <− a s . f a c t o r ( c o a g $ d i e t )
s t r i p c h a r t ( t i m e ˜ d i e t , coag , v e r t =T )
boxplot ( time ˜ d i e t , coag )
summary ( lm ( t i m e ˜ d i e t , c o a g ) )
Call :
lm ( formula = t i m e ˜ d i e t , d a t a = c o a g )
Residuals :
Min
1Q
−5.000 e +00 −1.250 e +00
Median
1 . 4 8 8 e −16
3Q
1 . 2 5 0 e +00
Max
5 . 0 0 0 e +00
Coefficients :
Estimate Std . Error
t value
( I n t e r c e p t ) 6 . 1 0 0 e +01 1 . 1 8 3 e +00
51.554
diet2
5 . 0 0 0 e +00 1 . 5 2 8 e +00
3.273
diet3
7 . 0 0 0 e +00 1 . 5 2 8 e +00
4.583
diet4
−1.071 e −14 1 . 4 4 9 e +00 −7.39 e −15
−−−
S i g n i f . c o d e s : 0 ‘ ∗ ∗ ∗ ´ 0 . 0 0 1 ‘ ∗∗ ´ 0 . 0 1 ‘ ∗ ´
P r ( >| t | )
< 2 e −16 ∗∗∗
0 . 0 0 3 8 0 3 ∗∗
0 . 0 0 0 1 8 1 ∗∗∗
1.000000
0.05
‘. ´ 0.1 ‘ ´ 1
R e s i d u a l s t a n d a r d e r r o r : 2 . 3 6 6 on 20 d e g r e e s o f f r e e d o m
M u l t i p l e R−s q u a r e d : 0 . 6 7 0 6 ,
A d j u s t e d R−s q u a r e d : 0 . 6 2 1 2
F− s t a t i s t i c : 1 3 . 5 7 on 3 and 20 DF , p−v a l u e : 4 . 6 5 8 e −05
89
Die nachfolgende Übersicht der einzelnen Varianzen in einer Tabelle wird auch als ANOVA–
Tafel bezeichnet.
Der (Gesamt–)Mittelwert ȳ · · und die Gruppenmittelwerte ȳi · sind zugleich ML–Schätzer. Die
Quelle der Varianz
Faktor
Gruppen
total
Abk.
SSF
SSE
SST
Berechnung
P
SSF = pi=1 ni (ȳi · − ȳ · · )2
Pp
P
i
(yij − ȳi · )2
SSE = i=1 nj=1
Pp
Pn
i
(yij − ȳ · · )2
SST = i=1 j=1
Freiheitsgrade
p−1
n−p
n−1
Teststatistik für das Testen obiger Hypothese
F̂ =
SSF /(p − 1)
∼ Fp−1,n−p
SSE /(n − p)
ist F –verteilt mit p − 1, n − p Freiheitsgraden.
Wir wenden in R jetzt auf unser Beispiel die Funktion anova an. Als Ausgabe erhalten wir insbesondere den Wert der F–Statistik und den zugehörigen p–Wert:
> anova ( lm ( t i m e ˜ d i e t , c o a g ) )
Analysis of Variance Table
Response : time
Df Sum Sq Mean Sq F v a l u e
P r (>F )
diet
3 228.0
7 6 . 0 1 3 . 5 7 1 4 . 6 5 8 e −05 ∗∗∗
R e s i d u a l s 20 1 1 2 . 0
5.6
−−−
S i g n i f . c o d e s : 0 ‘ ∗ ∗ ∗ ´ 0 . 0 0 1 ‘ ∗∗ ´ 0 . 0 1 ‘ ∗ ´ 0 . 0 5 ‘ . ´ 0 . 1 ‘ ´ 1
90
Die Varianzanalyse liefert einen Test zur Überprüfung der Hypothese, dass alle Gruppenmittelwerte gleich sind. Wir können dies für unser Beispiel mit hoher Signifikanz zurückweisen.
Interessiert man sich nun jedoch für paarweise Vergleiche der Mittelwerte der Gruppen, kann
dies durch einen paarweisen t–Test bewerkstelligt werden.
> p a i r w i s e . t . t e s t ( c o a g $ time , c o a g $ d i e t )
P a i r w i s e c o m p a r i s o n s u s i n g t t e s t s w i t h p o o l e d SD
data :
c o a g $ t i m e and c o a g $ d i e t
1
2 0.01141
3 0.00090
4 1.00000
2
−
0.31755
0.00345
3
−
−
0.00014
P v a l u e a d j u s t m e n t method : holm
6.3.2 Zweifaktorielle Varianzanalyse
Das Modell der Varianzanalyse kann auf zwei Faktoren erweitert werden. Die Modellgleichung
wird dann zu
yijk = µ + αi + βj + γij + ijk .
Die Fehler seien wieder normalverteilt mit konstanter Varianz. In den Faktorgruppen des ersten
Faktors liegen jeweils ni · i ∈ 1, . . . I Beobachtungen vor und in den Faktorgruppen des zweiten
Faktors jeweils n · j j ∈ {1, . . . , J} Beobachtungen. Der Summand γij ist ein Interaktionsterm,
der eine gegenseitige Wechselwirkung zwischen den Faktoren modelliert.
Als Beispiel verwenden wir den im Pakt HSAUR eingebundenen Datensatz weightgain. Dabei
wurden 40 Raten in 4 Gruppen eingeteilt, die jeweils zwei unterschiedliche Proteine in zwei
unterschiedlichen Dosen verabreicht bekamen. Die gemessene Zielgröße ist die verursachte Gewichtszunahme. Wir wenden die Funktion anova mit dem Modell mit Interaktion an. Eine gute
Veranschaulichung der Interaktion von Faktoren liefert zudem die Darstellung in einer Interaktionsgrafik.
> anova ( lm ( w e i g h t g a i n ˜ s o u r c e + t y p e + s o u r c e : t y p e , w e i g h t g a i n ) )
> i n t e r a c t i o n . p l o t ( w e i g h t g a i n $ type , w e i g h t g a i n $ source , w e i g h t g a i n $ w e i g h t g a i n )
91
Der Interaktionsgraph zeigt deutlich, dass eine Dosiserhöhung des einen Proteins zu einer viel
stärken Erhöhung der Gewichtszunahme führt als eine Dosiserhöhung des anderen Proteins.
Die Varianzkomponenten zum Modell der zweifaktoriellen Varianzanalyse kann man wieder als
ANOVA-Tafel angeben.
Das Modell der Varianzanalyse kann nun auch weiter auf mehrere Faktoren verallgemeinert
Quelle der Varianz
Faktor 1
Abk.
SSF 1
Faktor 2
SSF 2
Gruppen
SSE
total
Berechnung
SST
SSF 1 =
SSF 2 =
SSE =
PI
i=1
PI
i=1
PJ
PJ
j=1
SST =
ni · (ȳi · · − ȳ · · · )2
I −1
n · j (ȳ · j · − ȳ · · · )2
J −1
P
k (yijk
j=1
PI
i=1
Freiheitsgrade
PJ
− ȳi · · − ȳ · j · + ȳ · · · )2
j=1 (yijk
− ȳ · · · )2
n−I −J +1
n−1
werden und auch analog in R gehandhabt werden. Bei Berücksichtigung verschiedener Interaktionen wird jedoch die Anzahl der erklärenden Variablen im linearen Modell schnell sehr groß
werden.
6.4
Allgemeine Regressionsmodelle
Oftmals eignet sich eine lineare Funktion nicht, um die Abhängigkeit der Zielgröße von den
erklärenden Variablen zu modellieren. Daher gibt es allgemeinere Modelle wie zum Beispiel
92
polynomielle Regressionen.
Für binäre Zufallsvariablen ist klar, dass sie nicht linear von reellwertigen abhängen können,
hierfür gibt es spezielle Ansätze wie die in 7.3 als Beispiel betrachtete logistische Regression.
In R kann man im lm Befehl als Option eine link–Funktion mitangeben. Wir beschränken uns
hier auf das später folgende Beispiel der logistischen Regression.
Für eine ausführlichere Behandlung der Regressionsmodelle und der Varianzanalyse sowie der
Methoden in R sei auf Faraway (2002) und Sachs and Hedderich (2006) verwiesen.
6.5
Lebenszeitanalysen
Lebenszeitanalysen beschäftigen sich mit der Verteilung von Lebenszeiten von z. Bsp. Menschen,
anderen Lebewesen, Bauteilen oder Maschinen und haben daher viele Anwendungen in der Medizin, Biologie und im Maschinenbau. Lebenszeiten werden oft durch lineare Modelle beschrieben, wobei hier einige spezielle Schwierigkeiten und Eigenheiten auftreten.
Sei T eine Zufallsvariable mit Werten in R+ , die die Lebenszeit beschreibt und
S(t) = P (T > t) = 1 − FT (t)
die zugehörige Survival–Funktion. Die Hazard–Funktion wird definiert als
P (t ≤ T < t + ∆t|T ≥ t)
∆t→0
∆t
h(t) = lim
R
und die kumulierte Hazard–Funktion durch H(t) = 0t h(s)ds = − log S(t). Ist f = F 0 die
stetige Dichte der Verteilung gilt h(t) = f (t)/S(t).
Eine der Hauptschwierigkeiten bei der Durchführung von Lebenszeitanalysen ist es, dass man
für gewöhnlich zensierte Daten hat. Beispielsweise wird bei medizinischen Studien zum Ende der Studie noch nicht der Tod aller Teilnehmer eingetreten sein, ebenso können während
der Durchführung Teilnehmer aus anderen Gründen ausgeschieden sein. Daher ist die nai”
ve“ Schätzung durch Ŝ(t) = Überlebenden zur Zeit t , bei n insgesamt betrachteten Individuen, unzureichend.
Definition 6.2. Betrachten wir die geordneten Todeszeiten t(1) < t(2) < . . . < t(n) , so ist der
Kaplan–Meier–Schätzer durch
ŜKM (t) =
‚
Y
j|t(j) ≤t
dj
1−
rj
Œ
gegeben. rj kennzeichnet die Anzahl der Einheiten, die unmittelbar vor t(j) noch unter Beobachtung stehen und dj die Anzahl der Einheiten, die zum Zeitpunkt t(j) ausfallen.
Es kann gezeigt werden, dass der Kaplan–Meier–Schätzer gerade der Maximum–Likelihood–
Schätzer der Survival–Funktion ist. Es gelten folgende Zusammenhänge:
€
Š2
Var(ŜKM (t)) = ŜKM (t)
j|t(j)
93
dj
,
r (r − dj )
≤t j j
X
Ĥ(t) =
X
j
dj
rj
und
ĥ(t) =
dj
rj (t(j+1) − t(j) )
.
Definition 6.3. Sei T eine Lebensdauer und X = (X1 , ..., Xp ) ein p-dimensionaler Vektor von
erklärenden Variablen. Das Cox– Hazard–Modell modelliert die Hazard–Funktion in Abhängigkeit von X durch
p
log h(t) =
X
βi Xi + log h0 (t) .
i=1
h0 (t) heißt die Basis–Hazard–Funktion (baseline hazard function) und ist die Hazard–Rate eines
Individuums mit Kovariablenvektor X = 0 . β ist ein Vektor von Regressionskoeffizienten.
Das Cox–Hazard–Modell ist ein nicht– bzw. semiparametrisches Regressionsmodell, das bezüglich
der Lebenszeit T an keinen speziellen Verteilungstyp gebunden ist. Es wird auch als Proportionales–
Hazards–Modell (PH–Modell) bezeichnet, da das Verhältnis von Risiken h(t|x1 )/h(t|x2 ) zweier
Individuen konstant ist. Es wird hierbei ein Regressionsansatz für die Hazard–Funktion gewählt,
da diese nicht von den rj abhängt.
Die wichtigsten Funktionen zur Lebenszeitanalyse sind in R in dem Paket survival eingebunden. Mit der Funktion coxph ruft man die Cox–Regression auf.
Wir führen die Cox–Regression am Beispiel der im Paket ipred enthalten Daten über die Lebensdauer von an Brustkrebs erkrankten Frauen durch. Dieses Beispiel wird auch in dem Buch von
Everitt and Hothorn (2006) behandelt. Der Datensatz enthält die Überlebenszeiten von Erkrankten mit insgesamt 8 erklärenden Variablen, die wichtigsten sind Alter, Tumorgröße, Tumoreinstufung sowie eine binäre Variable, ob eine Hormonbehandlung statt fand oder nicht. Außerdem
sind die Zensierungen durch eine binäre Variable (cens) angegeben.
> library ( party )
> library ( survival )
> library ( ipred )
> cox<−coxph ( S u r v ( time , c e n s ) ˜ . , d a t a =GBSG2 )
> summary ( cox<−coxph ( S u r v ( time , c e n s ) ˜ . , d a t a =GBSG2 ) )
Call :
coxph ( formula = S u r v ( time , c e n s ) ˜ . , d a t a = GBSG2 )
n= 686
horThyes
age
menostatPost
tsize
tgrade .L
t g r a d e .Q
pnodes
progrec
estrec
−−−
coef
−0.3462784
−0.0094592
0.2584448
0.0077961
0.5512988
−0.2010905
0.0487886
−0.0022172
0.0001973
exp ( c o e f )
0.7073155
0.9905854
1.2949147
1.0078266
1.7355056
0.8178384
1.0499984
0.9977852
1.0001973
se ( coef )
0.1290747
0.0093006
0.1834765
0.0039390
0.1898441
0.1219654
0.0074471
0.0005735
0.0004504
94
z
−2.683
−1.017
1.409
1.979
2.904
−1.649
6.551
−3.866
0.438
P r ( >| z | )
0.007301
0.309126
0.158954
0.047794
0.003685
0.099199
5 . 7 e −11
0.000111
0.661307
∗∗
∗
∗∗
.
∗∗∗
∗∗∗
S i g n i f . codes :
0 ‘ ∗ ∗ ∗ ´ 0 . 0 0 1 ‘ ∗∗ ´ 0 . 0 1 ‘ ∗ ´ 0 . 0 5
‘. ´ 0.1 ‘ ´ 1
exp ( c o e f ) exp(− c o e f ) l o w e r . 9 5 upper . 9 5
horThyes
0.7073
1.4138
0.5492
0.911
age
0.9906
1.0095
0.9727
1.009
menostatPost
1.2949
0.7723
0.9038
1.855
tsize
1.0078
0.9922
1.0001
1.016
tgrade .L
1.7355
0.5762
1.1963
2.518
t g r a d e .Q
0.8178
1.2227
0.6439
1.039
pnodes
1.0500
0.9524
1.0348
1.065
progrec
0.9978
1.0022
0.9967
0.999
estrec
1.0002
0.9998
0.9993
1.001
Rsquare= 0.142
( max p o s s i b l e = 0 . 9 9 5
L i k e l i h o o d r a t i o t e s t = 1 0 4 . 8 on 9 df
Wald t e s t
= 1 1 4 . 8 on 9 df
S c o r e ( l o g r a n k ) t e s t = 1 2 0 . 7 on 9 df
>
+
>
+
)
,
,
,
p=0
p=0
p=0
p l o t ( s u r v f i t ( S u r v ( time , c e n s ) ˜ horTh , d a t a =GBSG2 ) , l t y = 1 : 2 ,
y l a b = e x p r e s s i o n ( S ( t ) ) , x l a b =” t ( i n Tagen ) ” , mark . t i m e =” f a l s e ” )
l e g e n d ( 3 0 0 , 0 . 3 , l e g e n d =c ( ” m i t ” , ” ohne ” ) , l t y =c ( 2 , 1 ) ,
t i t l e =” T h e r a p i e ” , b t y =” n ” )
Eine Residuenanalyse zur Beurteilung des Goodness of fit wie im linearen Regressionsmodell
ist hier in der Art nicht möglich. Es gibt jedoch Diagnose–Möglichkeiten, indem man die so gennanten Cox–Snell–Residuen Ĥ(ti |xi ) = − log Ŝ(ti |xi ), Martingalresiduen M̂i = δi − Ĥ(ti |xi )
oder Schoenfeld–Residuen analysiert. Für eine detaillierte Einführung sei auf Klein and Moeschberger (2003) verwiesen.
Daneben wird vor allem die Eigenschaft des konstanten Risikoverhältnisses für Tests verwendet.
Diese Prozedur wird in R durch cox.zph aufgerufen.
> cox . zph ( cox )
rho
horThyes
−2.54 e −02
age
9 . 4 0 e −02
m e n o s t a t P o s t −1.19 e −05
tsize
−2.50 e −02
tgrade .L
−1.30 e −01
t g r a d e .Q
3 . 2 2 e −03
pnodes
5 . 8 4 e −02
progrec
5 . 6 5 e −02
estrec
5 . 4 6 e −02
GLOBAL
NA
chisq
1 . 9 6 e −01
2 . 9 6 e +00
3 . 7 5 e −08
1 . 8 8 e −01
4 . 8 5 e +00
3 . 1 4 e −03
5 . 9 8 e −01
1 . 2 0 e +00
1 . 0 3 e +00
2 . 2 7 e +01
p
0.65778
0.08552
0.99985
0.66436
0.02772
0.95530
0.43941
0.27351
0.30967
0.00695
> par ( mfrow=c ( 2 , 2 ) )
> p l o t ( cox . zph ( cox ) , var =” a g e ” )
95
>
>
>
>
>
>
>
p l o t ( cox . zph ( cox ) , var =” t s i z e ” )
p l o t ( cox . zph ( cox ) , var =” e s t r e c ” )
p l o t ( cox . zph ( cox ) , var =” p r o g r e c ” )
par ( mfrow=c ( 1 , 3 ) )
p l o t ( r e s i d u a l s ( cox ) ˜ age , d a t a =GBSG2 )
p l o t ( r e s i d u a l s ( cox ) ˜ pnodes , d a t a =GBSG2 )
p l o t ( r e s i d u a l s ( cox ) ˜ p r o g r e c , d a t a =GBSG2 )
96
Unter der Annahme, dass unser Modell richtig gestellt ist, sollte sich in den Graphen kein
zeitlicher Trend der Koeffizienten abzeichnen. Bei der Darstellung der Martingalresiduen gegen
erklärende Variablen sollte eine Streuung um Null (Erwartungswert) herum erkennbar sein. Bei
97
mehreren erklärenden Variablen kann es von Vorteil sein Untergruppen gezielt zu bilden und für
diese getrennt Kaplan–Meier–Schätzer zu berechnen. Dies kann mit der Funktion ctree veranschaulicht werden. Ohne weiter angegebene Optionen wählt die Funktion nach den p–Werten
selbst aus. Damit erhält man die Erkenntnis welche Gruppe von erkrankten Frauen die schlechteste bzw. beste Prognose hat.
Durch
> par ( mfrow=c ( 2 , 4 ) )
> t e r m p l o t ( cox , rug=TRUE , s e =TRUE)
erhält man eine Darstellung der Regressionskoeffizienten für die einzelnen erklärenden Variablen.
98
Eine solche nichtparametrische Cox–Regression wird vor allem in medizinischen Studien,
in denen es um die Beurteilung der Wirksamkeit einer Therapie geht, verwendet. Es ist in diesem Modell insbesondere keine Prognose möglich. Diese Möglichkeit bieten nur parametrische
Ansätze, die daher oftmals im Maschinenbau, wenn die erwartete weitere Lebensdauer prognostiziert werden soll, Anwendung finden. Das einfachste parametrische Modell ist eine Exponentialverteilung S(t) = λe−λt mit konstanter Hazard h(t) = λ. Die parametrische Regression von
Lebensdauern wird mit der Funktion survreg in R aufgerufen.
6.6
Schwierigkeiten der statistischen Analyse: Die KiKK–Studie
Bei der KiKK–Studie handelt es sich um eine epidemiologische Studie der Universität Mainz
zur Untersuchung, ob (Klein–)Kinder, die in der Nähe eines Kernkraftwerkes leben, (dadurch)
einem erhöhten Krebsrisiko (speziell Leukämie) ausgesetzt sind. Die hierzu durchgeführte Fall–
Kontroll–Studie basiert auf einer bedingten logistischen Regression (vgl. 7.3), einem Modell das
zur Cox–Regression äquivalent ist. Es wird die Hypothese, dass das Risiko nicht erhöht ist, einseitig getestet. Die Studie kommt zu dem Ergebnis, dass die Hypothese zum vorgegebenen Niveau von α = 0, 05 verworfen werden kann und damit zu der Schlussfolgerung, dass im Umkreis
von Kernkraftwerken das Krebsrisiko der betrachteten Gruppe (Kinder unter 5 Jahren) signifikant erhöht ist.
http://www.bfs.de/de/bfs/druck/Ufoplan/4334_KIKK.html
Trotz dieser Studie, die ein für epidemiologische Studien gängiges Modell verwendet, und der
richtigen Durchführung der bedingten logistischen Regression in der Studie, ist das Ergebnis
und vor allem die Schlussfolgerung weiter heftig umstritten. Das Bundesamt für Strahlenschutz
(auch Auftraggeber der Studie) weist die Ergebnisse der Studie zurück
http://www.bfs.de/de/kerntechnik/kinderkrebs/abschliessendeStellungnahmeSSKBericht.pdf
und Befürworter der Kernkraft lehnen sie strikt ab während Gegner sie gerne und häufig zitieren
und als Argument gegen die Kernkraftwerke anführen.
99
Das Beispiel der KiKK–Studie zeigt somit wie eine umfangreiche und teure statistische Studie
am Ende genau wie die verworfene Hypothese zu einer Glaubensfrage“ herabgesetzt werden
”
kann und verdeutlicht zugleich die Hauptschwierigkeiten für Statistiker in den Anwendungen,
nämlich die Auswahl der verwendeten Stichprobe und Vorbereitung und Durchführung der Studie. Die mathematische Auswertung ist hingegen der einfachste Schritt.
Zur Beurteilung der Qualität der Studie und der Kritik an der Durchführung sind folgende Punkte
zu berücksichtigen:
• In einer vorhergehenden ähnlichen Studie wurde kein signifikant erhöhtes Krebsrisiko bei
unter 15jährigen festgestellt. Es gab jedoch Auffälligkeiten bei Kleinkindern unter 5 Jahren. Die für diese Studie erhobenen Daten wurden für die KiKK–Studie erneut mitverwendet.
• Für die Studie wurden Familien, die in der Umgebung eines von 16 Kernkraftwerken leben,
befragt. Für das Resultat der Studie haben vor allem Fälle in der Umgebung eines dieser
Kraftwerke (Krümmel) einen großen Einfluss.
• Der p–Wert liegt bei ca. 0, 01 und auch bei einem zweiseitigen Testansatz wäre die Hypothese verworfen werden.
• Es wird eine Studie durchgeführt, die als Ergebnis eine erhöhte Korrelation zeigt, woraus
aber auf Kausalität geschlossen werden soll.
• Nach Einschätzung der SSK(Strahlenschutz–Komission) sind die natürlichen Strahlenexpositionen, denen die Menschen der KiKK-Studie ausgesetzt waren, mindestens um den
Faktor 1000 höher als die durch die Ableitungen radioaktiver Stoffe aus Kernkraftwerken
für Referenzpersonen berechneten Expositionen. Als Ursache einer möglichen Kausalität
zu dem erhöhten Auftreten von Krebs kommt aber gerade diese Strahlung in Frage.
Literatur
Faraway, J. J. (2002). Practical Regression and Anova using R. unpublished script.
Klein, J. P. and M. L. Moeschberger (2003). Survival Analysis. Springer.
Sachs, L. and J. Hedderich (2006). Angewandte Statistik, Methodensammlung mit R (12 ed.).
Berlin: Springer.
100
7
Markov Chain Monte Carlo Methoden
Definition 7.1. Eine Markov Chain Monte Carlo(MCMC)–Methode zur Simulation einer Wahrscheinlichkeitsverteilung mit Dichte f produziert eine ergodische Markov–Kette, welche die Verteilung mit Dichte f als stationäre Verteilung aufweist.
7.1
Grundlegendes über Markov–Ketten
Im Folgenden bezeichne X, B(X) einen messbaren Raum.
Definition 7.2. Ein Übergangskern ist eine Abbildung K : X × B(X) → R, für die
• K(x, · ) ist ein Wahrscheinlichkeitsmaß auf B(X) ∀x ∈ X und
• K( · , B) ist messbar ∀B ∈ B(X)
gilt.
Definition 7.3. Ein stochastischer Prozess in diskreter Zeit X0 , . . . , Xn , . . . heißt Markov–Kette
(MC)(Xn ), falls
Z
P (Xk+1 ∈ B|x0 , . . . , xk ) = P (Xk+1 ∈ B|xk ) =
B
K(xk , dx)
für k ∈ N mit einem Übergangskern K gilt.
Nachfolgend wird X als abzählbar angenommen.
Erste Eintrittszeit in x ∈ X: T x := min {n > 0|Xn = x} , f (x, y) := Px (T y < ∞) x, y ∈ X
(Xn ) heißt zeithomogen, falls
P (Xk+1 ∈ B|xk ) = P (X1 ∈ B|x0 ) ∀k ∈ N .
Ein Zustand x ∈ X heißt rekurrent, falls f (x, x) = 1. Eine Markov–Kette heißt rekurrent, falls
jeder Zustand rekurrent ist und ansonsten transient.
Eine Markov–Kette heißt irreduzibel , falls jeder Zustand y von jedem Zustand x aus erreichbar
ist.
Satz 7.4. MC irreduzibel: ein Zustand rekurrent ⇔ MC rekurrent
Satz 7.5. Ist eine Markov–Kette irreduzibel und rekurrent, dann existiert ein eindeutig bestimmtes invariantes Maß µ ≡ µK. Ist µ endlich, heißt die Markov–Kette positiv–rekurrent.
Korollar 7.6. MC irreduzibel und positiv–rekurrent, dann gilt:
ET x < ∞ , µ(x) = (ET x )−1 .
101
Korollar 7.7. MC irreduzibel und besitzt endl. µ ⇒ positiv–rekurrent
Periode: dx := ggt{n|Kn (x, x) > 0}
MC heißt aperiodisch, wenn dx = 1 ∀x ∈ X.
Theorem 7.1 (Konvergenz ins Gleichgewicht). Ist (Xn ) eine irreduzible, positiv–rekurrente aperiodische Markov–Kette mit stationärer Verteilung µ, so gilt für jede beliebige Startverteilung µ0
von X0 :
µ0 Kn → µ für n → ∞ .
Prinzip von MCMC–Algorithmen:
Für beliebige Startverteilungen wird eine ergodische Markov–Kette generiert mit so gewähltem
Übergangskern, dass Konvergenz gegen invariante Verteilung (Zielverteilung) statt findet.
R
P +T
0
Anwendungsbeispiel: näherungsweise Berechnung von h(x)f (x)dx durch (1/T ) ni=n
h(Xi ),
0
wobei f stationäre Dichte und burn–in–Phase ausgenommen
7.2
Der Metropolis–Hastings–Algorithmus
Im Folgenden soll von der Zielverteilung mit Dichte f ein Sample simuliert werden.
Gegeben X (t) = x(t)
1. Generiere
Yt ∼ q(y|x(t) ) (proposal distribution q)
2. Acceptance–Rejection
8
X
(t+1)
wobei
<
Yt mit Wahrscheinlichkeit ρ(x(t) , Yt )
= : (t)
x mit Wahrscheinlichkeit 1 − ρ(x(t) , Yt ) ,
‚
f (y) q(x|y)
ρ(x, y) = min 1,
f (x) q(y|x)
Œ
.
Damit erfüllt die MH–MC die detailed balance“–Bedingung
”
K(x, y)f (x) = K(y, x)f (x) ∀ x, y ,
da der Übergangskern durch

K(x, y) = ρ(x, y)q(y|x) + 1 −
Z
‹
ρ(x, y)q(y|x)dy δx (y)
gegeben ist.
Satz 7.8. Erfüllt eine Markov–Kette obige detailed balance“Eigenschaft, so ist sie irreduzibel
”
und f Dichte der invarianten Verteilung.
102
Notwendige Voraussetzung für die Konvergenz gegen die stationäre Verteilung mit Dichte f ist
[
supp q( · y|x) ⊃ supp f .
x∈suppf
Satz 7.9 (Konvergenz von Metropolis–Hastings). Ist die Metropolis–Hastings–Markov–Kette
(X (t) ) f –irreduzibel, dann gilt
1
lim
T →∞ T
T
X
Z
(t)
h(X ) =
h(x)f (x)dx ∀h ∈ L1 (f ), f − f. ü. .
t=1
Ist (X (t) ) aperiodisch gilt außerdem
Z
n→∞ lim
Kn (x, · )µ(dx) − f =0
TV
für jede Startverteilung µ.
Der Metropolis–Hastings–Algorithmus erzeugt eine irreduzible MC, falls
q(y|x) > 0 ∀(x, y) ∈ suppf × suppf .
Aperiodizität gilt, falls
€
Š
P f (X (t) )q(Yt |X (t) ) ≤ f (Yt )q(X (t) |Yt ) < 1 .
Zur Anwendung von MH sollte q leicht zu simulieren sein, z. Bsp. explizit bekannt oder symmetrisch und von f sollte f (y)/q(y|x) bis auf Konstante bekannt sein.
>
+
+
+
+
+
+
>
>
>
>
>
>
>
>
MH1<−f u n c t i o n ( n , x0 , s i g m a )
{x= rep ( 0 , n )
x [ 1 ] = x0
for ( i in 2: n )
{y=rnorm ( 1 , x [ i −1] , s i g m a )
i f ( r u n i f (1) <= exp ( −0.5 ∗ ( yˆ2−x [ i − 1 ] ˆ 2 ) ) ) x [ i ] = y e l s e x [ i ] = x [ i −1]}
x}
x<−MH1( 1 0 0 0 , 0 , 1 )
par ( mfrow=c ( 3 , 1 ) )
p l o t ( 1 : 1 0 0 , x [ 1 : 1 0 0 ] , main=” F i r s t 100 Runs ” )
lines (1:100 , x [1:100])
p l o t ( 1 : 1 0 0 0 , x [ 1 : 1 0 0 0 ] , main=” A l l Runs ” )
lines (1:1000 , x [1:1000])
p l o t ( 9 0 1 : 1 0 0 0 , x [ 9 0 1 : 1 0 0 0 ] , main=” L a s t 100 Runs ” )
lines (901:1000 , x [901:1000])
103
7.3
Anwendung auf das Logit–Modell
Am 28. Januar 1986 explodierte die Raumfähre Challenger mit sieben Astronauten an Bord nach
dem Start aufgrund von Materialermüdungserscheinungen an Dichtungsringen, den sogenannten
O-Ringen, an den Raketentriebwerken. Zum Startzeitpunkt herrschte eine ungewöhnlich niedrige
Außentemperatur von 31◦ F (ca. 0◦ C). Nachfolgend soll der Zusammenhang zwischen der Temperatur und der Überbeanspruchung der Dichtungsringe analysiert werden. In der Tabelle sind
die Temperaturen (in Fahrenheit) sowie das Auftreten bzw. Nicht-Auftreten eines Materialproblems der Dichtungsringe für die 23 Shuttle–Flüge vor dem Challenger–Unglück aufgelistet. Ein
gängiges (und hier sinnvolles) Modell zur Beschreibung der Abhängigkeit einer binären Zufallsvariablen von bestimmten Faktoren liefert die logistische Regression (Logit–Modell). Sei nun Y
die binäre Bernoulli-verteilte Zufallsvariable mit Paramter p(X), welche das Auftreten oder Ausbleiben eines Defektes beschreibt, und X eine reellwertige Zufallsvariable, die die Temperatur
beschreibt. Im Logit–Modell besteht der folgende Zusammenhang:
P(Y = 1) = p(X) =
exp (α + Xβ)
.
1 + exp (α + Xβ)
104
X
66
70
69
68
67
72
73
70
57
63
70
78
Y
0
1
0
0
0
0
0
0
1
1
1
0
X
67
53
67
75
70
81
76
79
75
76
58
Y
0
1
0
0
0
0
0
0
0
0
1
Die Logit–Funktion logit(p) = log (p/(1 − p)) = α + Xβ hängt also linear von X ab.
Wir verwenden nun eines Bayes–Ansatz zur Schätzung der Pararmeter α und β anhand der Beobachtungen Yi ∼ Ber(p(Xi )) , i = 1, . . . , 23. Die Likelihood–Funktion ist gegeben durch:
L(α, β|y) =
23
Y
P (Yi = yi |xi ) =
i=1
Y
i
‚
exp (α + βxi )
1 + exp (α + βxi )
Œy ‚
i
1
1 + exp (α + βxi )
Œ1−y
i
.
Als Apriori–Verteilung wählen wir
1
exp (α)/b
π(α, β) = πα (α|β)πβ (β) = eα e−
dαdβ ,
b
womit log(α) ∼ Exp(b) und β uniform verteilt ist. Außerdem ist gesichert, dass die Aposteriori–
Verteilung, die proportional zu L(α, β|y)π(α, β) ist, wohldefiniert ist. Da Eα = log b − γ mit
der Euler–Konstanten γ gilt, wird für b als Schätzer b̂ = exp (α̂) + γ gewählt.
Um von der Zielverteilung (Aposteriori) zu samplen wird nun ein Metropolis–Hastings–Algorithmus
implementiert mit der proposal–Verteilung:
q(α, β) = πα (α|b̂)φ(β) ,
wobei φ Dichte einer N(β̂, σ̂β2 )–Verteilung ist. Im Acceptance–Rejection–Schritt wird, wenn sich
die MC in (α(t) , β (t) ) befindet, mit Akzeptanz–Wahrscheinlichkeit
L(α̃, β̃|y)φ(β (t) )
ρ(α(t) , β (t) , α̃, β̃) = min
L(α(t) , β (t) |y)φ(β̃)
105
!
der von der proposal–Verteilung generierte Wert (α̃, β̃) angenommen.
Der nachfolgende R–Code implementiert den Metropolis–Hastings–Algorithmus für das Logit–
Modell. Die MLEs werden mit Hilfe der Funktion summary(glm(y˜x,family=binomial(link=”logit”)))
berechnet und direkt durch die entsprechenden Koeffizienten aufgerufen. Zur grafischen Veranschaulichung werden außerdem Simulationsschritte zusammengefasst und die Mittelwerte der
Parameter dargestellt.
>
>
+
>
>
>
>
>
>
>
>
>
+
+
+
+
+
+
+
+
>
>
>
>
+
>
>
>
+
>
>
>
+
>
>
+
>
>
>
y<−c ( 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 )
x<−c ( 5 3 , 5 7 , 5 8 , 6 3 , 6 6 , 6 7 , 6 7 , 6 7 , 6 8 , 6 9 , 7 0 , 7 0 , 7 0 , 7 0 , 7 2 , 7 3 , 7 5 ,
75 ,76 ,76 ,78 ,79 ,81)
n<−l e n g t h ( y ) ;
nsim<−10000
a e s t<−a r r a y ( 0 , dim=c ( nsim , 1 ) ) ; b e s t<−a r r a y ( 0 , dim=c ( nsim , 1 ) ) ;
l o g l i k e <− f u n c t i o n ( a , b ) { sum ( y ∗ ( a+b∗ x)− l o g ( 1+ exp ( a+b∗ x ) ) ) }
mod=summary ( glm ( y ˜ x , f a m i l y = b i n o m i a l ( l i n k =” l o g i t ” ) ) )
d p r o p o s a l<−f u n c t i o n ( b ) dnorm ( b , mod$ c o e f f [ 2 , 1 ] , mod$ c o e f f [ 2 , 2 ] , l o g =TRUE)
a e s t [ 1 ]<−mod$ c o e f f [ 1 , 2 ] ; b e s t [ 1 ]<−mod$ c o e f f [ 2 , 1 ]
L b e t a<−mod$ c o e f f [ 1 , 1 ] + . 5 7 7 2 1 6
f o r ( j i n 2 : nsim ) {
a p r o p o s a l<−L b e t a + l o g ( rexp ( 1 ) ) ; b p r o p o s a l<−rnorm ( 1 , mod$ c o e f f [ 2 , 1 ] ,
mod$ c o e f f [ 2 , 2 ] )
t e s t<−min ( exp ( l o g l i k e ( a p r o p o s a l , b p r o p o s a l )− l o g l i k e ( a e s t [ j −1] , b e s t [ j −1])+
d p r o p o s a l ( b e s t [ j −1])− d p r o p o s a l ( b p r o p o s a l ) ) , 1 ) ;
r h o<−( r u n i f (1) < t e s t ) ;
a e s t [ j ]<−a p r o p o s a l ∗ r h o + a e s t [ j −1]∗(1− r h o ) ;
b e s t [ j ]<−b p r o p o s a l ∗ r h o + b e s t [ j −1]∗(1− r h o ) ;
}
m<−250
s t e p<−round ( nsim /m)
am<−a e s t [ 1 ] ; bm<−b e s t [ 1 ] ; xm<−1 ;
f o r ( i i n 1 :m) {am<−c ( am , a e s t [ i ∗ s t e p ] ) ; bm<−c ( bm , b e s t [ i ∗ s t e p ] ) ;
xm<−c ( xm , i ∗ s t e p ) }
par ( mfrow=c ( 1 , 3 ) )
Temp = 6 5 ;
h i s t ( exp ( a e s t +Temp∗ b e s t ) / ( 1 + exp ( a e s t +Temp∗ b e s t ) ) , x l a b =” A u s f a l l w s . ” ,
f r e q =FALSE , c o l =” g r e e n ” , main=”T=65 ” )
par ( new=F )
Temp = 5 5 ;
h i s t ( exp ( a e s t +Temp∗ b e s t ) / ( 1 + exp ( a e s t +Temp∗ b e s t ) ) , x l a b =” A u s f a l l w s . ” ,
f r e q =FALSE , c o l =” r e d ” , main=”T=55 ” )
Temp = 4 5 ;
h i s t ( exp ( a e s t +Temp∗ b e s t ) / ( 1 + exp ( a e s t +Temp∗ b e s t ) ) , x l a b =” A u s f a l l w s . ” ,
f r e q =FALSE , c o l =” r e d ” , main=”T=45 ” )
par ( mfrow=c ( 2 , 2 ) )
h i s t ( a e s t , x l a b =” I n t e r c e p t ” , f r e q =FALSE , c o l =” g r e e n ” , b r e a k s =50 , main=” ” )
par ( new=F )
106
>
>
>
>
+
>
>
+
h i s t ( b e s t , x l a b =” S l o p e ” , f r e q =FALSE , c o l =” g r e e n ” , b r e a k s =50 , main=” ” )
par ( new=F )
den<−c ( 1 : ( m+ 1 ) )
amean<−cumsum ( am ) / den ; p l o t ( xm , amean , t y p e =” l ” , c o l =” r e d ” ,
x l a b = e x p r e s s i o n ( a l p h a ) , y l a b =”MW a l p h a ” )
par ( new=F )
bmean<−cumsum ( bm ) / den ; p l o t ( xm , bmean , t y p e =” l ” , c o l =” r e d ” ,
x l a b = e x p r e s s i o n ( b e t a ) , y l a b =”MW b e t a ” )
107
Die Analyse der logistsichen Regression ergibt, dass bei der niedrigen Temperatur von 31◦ F ein
Materialproblem an den O–Ringen sehr wahrscheinlich war (vgl. Histogramme). Der Verlauf der
Werte MW beta“ zeigt deutlich, dass vor der Konvergenz gegen die stationäre Verteilung eine
”
so genannte burn–in“–Phase auftritt.
”
7.4
Der Gibbs–Sampler
Im Folgenden sei X = (X1 , . . . , Xp )T ein Rp –wertiger Zufallsvektor. Weder von der gemeinsamen Verteilung mit Dichte f noch von den univariaten Marginaldichten f1 , . . . , fp kann direkt
simuliert werden. Jedoch kann von den bedingten Verteilungen
Xi |x1 , . . . , xi−1 , xi+1 , . . . , xp ∼ fi (xi |x1 , . . . , xi−1 , xi+1 , . . . , xp )
gesamplet werden.
108
(t)
Gegeben x(t) = (x1 , . . . , x(t)
p )
1. Generiere
(t+1)
X1
(t)
∼ f1 (x1 |x2 , . . . , x(t)
p ),
2.
(t+1)
X2
(t+1)
∼ f2 (x2 |x1
(t)
, x3 , . . . , x(t)
p ),
..
.
..
.
p.
(t+1)
Xp(t+1) = fp (xp |x1
(t+1)
, . . . , xp−1 )
Der Gibbs–Sampler funktioniert wie eine Zusammensetzung von p Metropolis–Hastings–Algorithmen
mit Akzeptanzwahrscheinlichkeiten 1. Die proposal–Verteilung ist dabei
(t)
(t)
(t)
qi (x̃|x(t) ) = δ(x1 ,...,xi−1 ,xi+1 ,...,xp ) (x̃1 , . . . , x̃i−1 , x̃i+1 , . . . , x̃p )fi (x̃i |x1 , . . . , xi−1 , xi+1 , . . . , xp(t) )
Satz 7.10 (Konvergenz des Gibbs–Samplers). Ist die vom Gibbs–Sampler erzeugte Markov–
Kette (X (t) ) ergodisch, ist f die Dichte der stationären Verteilung.
Ist der Überganskern absolut stetig bezüglich des dominierenden Maßes, dann ist die MC irreduzibel.
Ist der Übergangskern absolut stetig bezüglich µ, dann gilt:
R
PT
h1 (X (t) )
lim PTt=1
(t)
T →∞
t=1 h2 (X )
=
R
h1 (x)df (x)
∀h1 , h2 ∈ L1 (f ), mit
h2 (x)df (x)
Z
h2 df (x) 6= 0, f − f. ü. .
Ist (X (t) ) aperiodisch gilt für jede Startverteilung µ:
Z
n→∞ lim
K (x, · )µ(dx) − f
n
=0.
TV
Angenommen wir wollen von einer bivariaten Normalverteilung samplen:
‚‚
T
(X, Y ) ∼ N
0
0
Œ
‚
,
σ12
ρσ1 σ2
ρσ1 σ2
σ22
ŒŒ
.
Die bedingten univariaten Verteilungen sind gegeben durch:
€
Š
€
Š
P (X|Y = y) ∼ N (σ1 /σ2 )ρy , (1 − ρ2 )σ12
P (Y |X = x) ∼ N (σ2 /σ1 )ρx , (1 − ρ2 )σ22 .
Der folgende R–Code implementiert einen Gibbs–Sampler, der mit den bedingten Verteilungen
eine Markov–Kette mit stationärer bivariater Normalverteilung erzeugt. Selbstverständlich ist
dies ein Beispiel, in dem wir auch direkt von der Zielverteilung samplen können und das nur zur
Anschauung dient.
109
>
+
+
+
+
+
+
+
+
+
>
>
>
>
>
>
g i b b s b i v g a u s s<−f u n c t i o n ( n , rho , s i g m a 1 , s i g m a 2 )
{mat <− m a t r i x ( n c o l = 2 , nrow = n )
x <− 0
y <− 0
mat [ 1 , ] <− c ( x , y )
for ( i in 2: n ) {
x <− rnorm ( 1 , ( s i g m a 1 / s i g m a 2 ) ∗ r h o ∗ y , s i g m a 1∗ s q r t ( 1 − r h o ˆ 2 ) )
y <− rnorm ( 1 , ( s i g m a 2 / s i g m a 1 ) ∗ r h o ∗ x , s i g m a 2∗ s q r t ( 1 − r h o ˆ 2 ) )
mat [ i , ] <− c ( x , y ) }
mat}
bvn<−g i b b s b i v g a u s s ( 1 0 0 0 0 , 0 . 5 , 1 , 2 )
par ( mfrow=c ( 2 , 2 ) )
p l o t ( t s ( bvn [ , 1 ] ) )
p l o t ( t s ( bvn [ , 2 ] ) )
h i s t ( bvn [ , 1 ] , 4 0 )
h i s t ( bvn [ , 2 ] , 4 0 )
Literatur
Robert, C. P. and G. Casella (2004). Monte Carlo Statistical Methods. Berlin: Springer.
110
8
Zeitreihenanalyse
8.1
Zeitreihen in R
Unter einer Zeitreihe verstehen wir einen zeitdiskreten stochastischen Prozess Xt , t ∈ {1, . . . , n}.
Aufgaben der Zeitreihenanalyse ist die Erkennung von zeitlichen Entwicklungen (Trends), seriellen oder saisonalen Abhängigkeiten und vor allem die Vorhersage der zukünftigen Werte der
Zeitreihe (Prognose).
Zeitreihen werden in R als spezielle Objekte gehandhabt. Zeitreihen, bei denen die Zeitabstände
zwischen den beobachteten Realisierungen äquidistant sind, werden durch die Funktion ts definiert. Wir werden uns auf die Analyse solcher regulär angeordneten Zeitreihen beschränken.
Irregulär angeordnete Zeitreihen mit nicht äquidistanten Beobachtungsabständen sind für die
meisten Anwendungen von geringerem Interesse, in R gibt es die Möglichkeit mit dem Paket
its und der entsprechenden Funktion its irregulär angeordnete Zeitreihen zu definieren.
Als erstes Beispiel einer Zeitreihe betrachten wir einen Datensatz, welcher die monatliche Bierproduktion Australiens in Megalitern vom Januar 1956 bis August 1995 enthält. Nach dem Einlesen der Daten, definieren wir durch ts die Zeitreihe und geben dabei die Frequenz 12 und den
Startwert 1956 vor.
>
>
>
>
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
setwd ( ”C : / Markus / RKurs / TSA” )
b e e r<−read . c s v ( ” b e e r . c s v ” , h e a d e r =T , d e c =” , ” , s e p =” ; ” )
b e e r<−t s ( b e e r [ , 1 ] , s t a r t =1956 , f r e q = 1 2)
beer
Jan
93.2
95.9
96.3
89.8
97.1
105.1
100.0
106.0
106.1
106.9
104.6
116.4
131.5
131.2
126.9
132.6
128.1
153.1
164.1
161.4
182.7
159.8
170.7
173.7
170.0
203.6
159.4
141.6
151.5
166.5
161.2
177.2
154.1
153.3
172.0
164.4
147.0
139.0
151.0
138.0
Feb
96.0
82.8
84.4
84.4
93.0
92.5
84.8
91.2
102.1
96.6
107.1
112.6
131.0
125.4
124.0
123.7
138.4
147.6
142.8
169.4
145.2
157.8
164.4
153.8
158.4
175.2
161.1
148.1
158.1
151.3
155.5
127.4
159.3
144.3
150.6
148.1
133.0
143.0
134.0
136.0
Mar
95.2
83.3
91.2
87.2
96.0
97.1
94.3
96.6
105.2
127.3
123.5
123.8
130.5
126.5
135.7
153.3
152.7
157.7
157.9
168.8
182.1
168.2
179.7
175.6
176.1
168.7
172.1
184.9
143.0
146.2
141.9
177.1
160.4
169.6
163.3
152.0
163.0
150.0
164.0
152.0
Apr
77.1
80.0
81.9
85.6
80.5
81.4
87.1
96.3
101.0
98.2
98.8
103.6
118.9
119.4
130.0
134.0
120.0
137.2
159.2
158.1
158.7
158.4
157.0
147.1
156.2
155.9
158.4
132.5
151.2
148.3
164.6
154.4
151.9
143.7
153.7
144.1
150.0
154.0
126.0
127.0
May
70.9
80.4
80.5
72.0
76.1
79.1
90.3
88.2
84.3
100.2
98.6
113.9
114.3
113.5
109.4
119.6
140.5
151.5
162.2
158.5
141.6
152.0
168.0
160.3
153.2
147.3
114.6
137.3
147.6
144.7
136.2
135.2
148.4
160.1
152.9
155.0
129.0
137.0
131.0
151.0
Jun
64.8
67.5
70.4
69.2
69.9
72.1
72.4
70.2
87.5
89.4
90.6
98.6
85.7
98.7
117.8
116.2
116.2
98.7
123.1
135.3
132.6
142.2
139.3
135.2
117.9
137.0
159.6
135.5
130.7
123.6
126.8
126.4
139.6
135.6
135.5
124.5
131.0
129.0
125.0
130.0
Jul
70.1
75.7
74.8
77.5
73.6
78.7
84.9
86.5
92.7
95.3
89.1
95.0
104.6
114.5
120.3
118.6
121.4
145.8
130.0
149.3
139.6
137.2
138.6
148.8
149.8
141.1
159.7
121.7
137.5
151.6
152.5
147.3
148.2
141.8
148.5
153.0
145.0
128.0
127.0
119.0
Aug
77.3
71.1
75.9
78.1
92.6
87.1
92.7
88.2
94.4
104.2
105.2
116.0
105.1
113.8
121.0
130.7
127.8
151.7
150.1
143.4
147.0
152.6
153.4
151.0
156.6
167.4
159.4
166.1
146.1
133.9
126.6
140.6
153.5
159.9
148.4
146.0
137.0
140.0
143.0
153.0
Sep
79.5
89.3
86.3
94.3
94.2
91.4
92.2
102.8
113.0
106.4
114.0
113.9
117.3
133.1
132.3
129.3
143.6
129.4
169.4
142.2
166.6
166.8
138.9
148.2
166.7
160.2
160.7
146.8
133.6
137.4
150.1
152.3
145.1
145.7
133.6
138.0
138.0
143.0
143.0
Oct
100.6
101.1
98.7
97.7
93.5
109.9
114.9
119.1
113.9
116.2
122.1
127.5
142.5
143.4
142.9
144.4
157.6
174.1
179.7
188.4
157.0
165.6
172.1
182.2
156.8
191.9
165.5
162.8
167.9
181.6
186.3
151.2
183.7
183.5
194.1
190.0
168.0
151.0
160.0
Nov
100.7
105.2
100.9
100.2
108.5
116.3
112.5
119.2
122.9
135.9
138.0
131.4
140.0
137.3
147.4
163.2
166.2
197.0
182.1
166.2
180.4
198.6
198.4
189.2
158.6
174.4
205.0
186.8
181.9
182.0
147.5
172.2
210.5
198.2
208.6
192.0
176.0
177.0
190.0
111
Dec
107.1
114.1
113.8
116.4
109.4
113.0
118.3
125.1
132.7
134.0
142.2
145.9
159.8
165.2
175.9
179.4
182.3
193.9
194.3
199.2
210.2
201.5
217.8
183.1
210.8
208.2
205.2
185.5
202.0
190.0
200.4
215.3
203.3
186.8
197.3
192.0
188.0
184.0
182.0
Durch tsp kann man die zu einer Zeitreihe gehörenden Parameter aufrufen und überprüfen.
Anstatt der Frequenz durch frequency kann man auch den Kehrwert deltat vorgeben.
> tsp ( beer )
[ 1 ] 1956.000 1995.583
12.000
> frequency ( beer )
[ 1 ] 12
> start ( beer )
[ 1 ] 1956
1
> end ( b e e r )
[ 1 ] 1995
8
> deltat ( beer )
[ 1 ] 0.08333333
> cycle ( beer )
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
J a n Feb Mar Apr May J u n J u l Aug Sep Oct Nov Dec
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
9 10 11 12
1
2
3
4
5
6
7
8
Für Zeitreihen gibt es in R die spezielle plot–Funktion ts . plot.
> ts . plot ( beer )
Zeitreihen lassen sich manipulieren oder zu anderen Zeitreihen zusammensetzen mit der
Funktion aggregate. (Mehrere Zeitreihen kann man durch intersect oder union verbinden.)
So entsteht durch
> z<−a g g r e g a t e ( b e e r , 1 , mean )
112
> z
Time S e r i e s :
S t a r t = 1956
End = 1994
Frequency = 1
[1]
[8]
[15]
[22]
[29]
[36]
86.04167
99.11667
131.96667
163.39167
154.25833
158.25833
87.20000
104.65000
137.08333
166.52500
154.75833
150.41667
87.92500
109.21667
141.23333
162.35000
154.13333
147.91667
87.70000
111.15000
153.14167
160.92500
156.38333
148.00000
90.36667
116.55000
159.57500
169.24167
163.16667
93.64167
123.43333
161.68333
165.05833
160.20833
95.36667
126.83333
161.97500
154.13333
163.20833
eine Zeitreihe, die für jedes Jahr die durchschnittliche monatliche Produktion angibt. Mit der
Funktion window lassen sich Unterabschnitte einer Zeitreihe getrennt darstellen.
Zur Analyse der Abhängigkeitsstrukturen in einer Zeitreihe ist das wichtigste Werkzeug das Autokorrelogramm bzw. die zugehörige Autokovarianzfunktion acft (k) = Cov (Xt , Xt+k ) oder die
normierte Autokorrelationsfunktion.
Durch Angabe der Option partial zur Funktion acf lassen sich die partiellen Autokorrelationen berechnen und darstellen. Hierbei handelt es sich um die Korrelationen ohne den Einfluss
der linearen Abhängigkeiten von Xt+1 , . . . Xt+k−1 , also zusagen nach einer Regression von Xt
auf Xt+1 , . . . , Xt+k−1 . Wollen wir zum Beispiel die partielle Autokorrelation von X1 und X3
berechnen und seien durch c die empirischen (Auto–)Kovarianzen bezeichnet, so gilt:
pc1,3 =
È
c1,3 − c1,2 c2,3
.
(1 − c21,2 )(1 − c22,3 )
> par ( mfrow=c ( 2 , 1 ) )
113
> acf ( beer )
> a c f ( b e e r , t y p e =” p a r t i a l ” )
> dev . o f f ( )
null device
1
Eine Darstellung der Durchschnittsmengen, die in bestimmten Monaten produziert wurden, so-
wie den empirischen Quantilen lässt sich durch eine Grafik mit 12 Boxplots, für jeden Monat
einen aus den Werten der betrachteten 38-39 Jahren, erreichen.
> boxplot ( s p l i t ( beer , c y c l e ( beer ) ) )
114
8.2
Trend und lineare Filter
Um den Trend (zeitliche Entwicklung des Durchschnittes) in einer Zeitreihe zu modellieren,
kann der laufende gewichtete Mittelwert aller Beobachtungen in der Zeitreihe gebildet werden:
Tt =
∞
X
λi Xt+i
i=−∞
P
mit Gewichten λi , λi = 1.
Ein linearer Filter bezieht nur eine endliche Anzahl j zeitlich folgender und vorangehender Nachbarwerte mit ein:
j
X
1
TtL,j =
Xt+i .
2j + 1 i=−j
Beim linearen Filter wird also einfach das laufende arithmetische Mittel von (2j + 1) Werten
gebildet. Durch die Funktion filter und Vorgabe des Wertes j lässt sich mit dieser linearen
Filtermethode der Trend von Zeitreihen in R darstellen.
>
>
>
>
>
>
>
ts . plot ( beer )
l f 1<− f i l t e r ( b e e r , f i l t e r = rep ( 1 / 5 , 5 ) )
l f 2<− f i l t e r ( b e e r , f i l t e r = rep ( 1 / 2 5 , 2 5 ) )
l f 3<− f i l t e r ( b e e r , f i l t e r = rep ( 1 / 1 0 0 , 1 0 0 ) )
l i n e s ( l f 1 , c o l =” r e d ” , lwd = 2 )
l i n e s ( l f 2 , c o l =” p u r p l e ” )
l i n e s ( l f 3 , c o l =” b l u e ” , lwd = 2)
115
8.3
Saisonale Analyse mit LOESS
Mit der Funktion stl bietet R die Möglichkeit eine Zeitreihe in einen Trend, eine saisonal periodische Komponente und Residuen (Rauschanteil) aufzuspalten. Das Verfahren, das zur Berechnung der einzelnen Werte benutzt wird ist ein sehr komplexes, welches auf einer Anwendung der
so genannten LOESS-Methode basiert.
> p l o t ( s t l ( b e e r , s . window=” p e r i o d i c ” ) )
LOESS und LOWESS sind zwei (ähnliche) Methoden einer geglätteten nichtparametrischen
lokal gewichteten Regression (linear oder polynomiell). Das Ziel solcher Methoden ist die Konstruktion eines glatten Schätzers der lokal durch die Regression die quadratischen Abweichungen
minimiert. Die (lokale) Glättungsbandweite wird dabei über die Methode der k nächsten Nachbarn gewählt.
Die Optionen der Funktion stl sind für jeden Anteil (saional, Trend und Rauschen) die Festlegung von window, was die saisonale Periode bzw. das LOESS–Fenster festlegt (uns reicht hier
die Vorgabe s .window=”periodic”), von degree (Grad der Regressionspolynome) und von jump,
wodurch man die Wahl der lokalen Umgebung zur Glättung beeinflussen kann.
Für eine theoretische Einführung in die lokal gewichteten Regressionsmethoden sei auf Cleveland and Loader (1996) verwiesen. Nachfolgend werden wir die Wirkungsweise der Methode an
einem einfachen Beispiel illustrieren.
> x<− 1 : 1 8 0
> y<− s i n ( p i ∗x / 9 0 ) + r u n i f ( l e n g t h ( x ) , − 1 , 1 )
> p l o t ( x , y , main=”LOESS” )
116
> y l o e s s 1<−l o e s s ( y ˜ x , s p a n = 0 . 0 5 , d a t a . frame ( x=x , y=y ) )
Warnmeldung :
k−d t r e e l i m i t e d by memory . ncmax= 200
> y p r e d i c t 1<− p r e d i c t ( y l o e s s 1 , d a t a . frame ( x=x ) )
> y l o e s s 2<−l o e s s ( y ˜ x , s p a n = 0 . 1 , d a t a . frame ( x=x , y=y ) )
> y p r e d i c t 2<− p r e d i c t ( y l o e s s 2 , d a t a . frame ( x=x ) )
> y l o e s s 3<−l o e s s ( y ˜ x , s p a n = 0 . 5 , d a t a . frame ( x=x , y=y ) )
> y p r e d i c t 3<− p r e d i c t ( y l o e s s 3 , d a t a . frame ( x=x ) )
> y l o e s s 4<−l o e s s ( y ˜ x , s p a n =1 , d a t a . frame ( x=x , y=y ) )
> y p r e d i c t 4<− p r e d i c t ( y l o e s s 4 , d a t a . frame ( x=x ) )
> y l o e s s 5<−l o e s s ( y ˜ x , s p a n = 1 . 5 , d a t a . frame ( x=x , y=y ) )
> y p r e d i c t 5<− p r e d i c t ( y l o e s s 5 , d a t a . frame ( x=x ) )
> l i n e s ( x , y p r e d i c t 1 , c o l =1)
> l i n e s ( x , y p r e d i c t 2 , c o l =2)
> l i n e s ( x , y p r e d i c t 3 , c o l =3)
> l i n e s ( x , y p r e d i c t 4 , c o l =4)
> l i n e s ( x , y p r e d i c t 5 , c o l =5)
In diesem Beispiel generieren wir eine Sinuskurve auf einem diskreten Gitter deren Beobachtung
durch ein uniformes Rauschen gestört ist. Wir verwenden die LOESS–Methode durch Aufruf der
R–Funktion loess bei unterschiedlich starker Glättung, welche über die Option span gesteuert
wird.
117
8.4
Spektralanalyse
Im Mittelpunkt der Spektralanalyse von stationären Zeitreihen steht das so genannte Periodogramm und dessen Interpretation. Es beinhaltet prinzipiell dieselben Informationen über die
Abhängigkeitsstruktur einer Zeitreihe wie das Auotkorrelogramm, macht aber oftmals bestimmte periodische Korrelationen eindeutiger sichtbar.
Die Autokovarianzfunktion einer stationären Zeitreihe kann man mit dem Spektrum F als
1 Z π iωt
γt =
e dF (ω)
2π −π
darstellen. F ist ein endliches Maß auf (−π, π). Existiert die Spektraldichte (unter milden Regularitätsbedingungen), so kann man γt über die Fouriertransformierte als
Z 1/2
1 Z π iωt
e f (ω)dω =
e2πiωf t f (2πωf )dωf
γt =
−1/2
2π −π
darstellen. ωf bezeichnet die Kreisfrequenz/Periodenfrequenz.
Die Entwicklung der Spektraldichte f in eine Fourierreihe (bzw. inverse Fouriertransformation
des obigen Integrals) ergibt:
f (ω) =
X
γt e−iωt = γ0 (1 + 2
t
X
γt cos ωt) ,
t≥1
da die Autokovarianzfunktion einer stationären Zeitreihe gerade ist. Das Periodogramm wird
nun bei einer Frequenz ω als quadrierte Korrelation der Zeitreihe und den Sinus/Kosinus–Wellen
berechnet.
2
n
1 X
I(ω) = e−iωt Xt n t=1
„
1
=
n
n
X
!2
Xt sin ωt
+
t=1
n
X
!2 Ž
Xt cos ωt
t=1
Bezeichnen wir mit γ̂t die empirische Autokovarianzfunktion
γ̂t =
Š€
Š
X€
1 n−t
Xt+j − X̄ Xj − X̄ ,
n j=1
den Schätzer der Autokovarianzen aus den Beobachtungen der Zeitreihe, ist das Periodogramm
gerade deren Fouriertransformierte
I(ω) =
X
e−iωt γ̂t .
t
118
Als Schätzer für die Spektraldichte wird eine geglättete Version des Periodogramms durch
einen Kernschätzer mit Bandweite h verwendet:
‚
Œ
1Z
λ−ω
2π X
ωk − ω
ˆ
f (ω) =
K
I(λ)dλ ≈
K
I(ωk ) .
n
h
nh k
n
Es ergibt sich das aus dem Kapitel 3 über nichtparametrsiche Dichteschätzung bekannte Bias–
Varianz–Dilemma für den Kernschätzer:
Var(fˆ(ω)) ≈
Z
2π
(f (ω))2 K2 (x)dx ,
nh
f 00 (ω) 2 Z 2
ˆ
h
x K(x)dx .
E f (ω) − f (ω) ≈
2
In R wird mit der Funktion spectrum ein logarithmiertes (geglättetes) Periodogramm erzeugt,
wobei zuvor der Trend eliminiert wird. Unter der x–Achse wird die verwendete Bandweite und
rechts im Bild das 0.95–Konfidenzintervall mit angezeigt. Das Periodogramm kann als spektrale Aufspaltung der Varianz verstanden werden, es ist besonders geeignet periodische Zusammenhänge/Korrelationen in einer Zeitreihe aufzudecken. Für ein weißes Rauschen (also purer
”
Zufall“ ) wird das Periodogramm nur zufällig um eine Konstante herum schwanken und alle Frequenzen sind gleich verteilt.
Neben dem Periodogramm lässt sich mit der Funktion cpgram das kumulative Periodogramm
P
P
(mit Konfidenzbändern) erstellen. Bei diesem wird ( kj fˆ(ωj )/ nj fˆ(ωj )) gezeichnet, was zu
einer monoton wachsenden Funktion mit Werten zwischen 0 und 1 führt. In diesem lassen sich
Maxima des Spektrums besonders gut erkennen. Frequenzen, zu denen eine starke Korrelation
besteht, führen zu Sprüngen im kumulativen Periodogramm. Bestehen Korrelation besonders zu
niedrigen Frequenzen wird das kumulative Periodogramm über der Diagonalen, bei hohen Frequenzen unter der Diagonalen liegen. Ein weißes Rauschen wird entlang der Diagonale zittern“.
”
Wir erstellen in R nun das Periodogramm und das kumulative Periodogramm der oben betrachteten Zeitreihe und als Vergleich das des (gaußschen) weißen Rauschens.
>
>
>
>
>
>
>
>
par ( mfrow=c ( 2 , 1 ) )
s p e c t r u m ( b e e r , main=” b e e r t i m e s e r i e s ” )
x<−rnorm ( 5 0 0 )
x<−t s ( x )
s p e c t r u m ( x , main=” g a u s s i a n w h i t e n o i s e ” )
par ( mfrow=c ( 1 , 2 ) )
cpgram ( b e e r , main=” b e e r t i m e s e r i e s ” )
cpgram ( x , main=” g a u s s i a n w h i t e n o i s e ” )
119
Für eine genauere Beschreibung der Spektralanalyse für Zeitreihen sei auf Priestley (1981) und Naidu
(1995) verwiesen.
120
8.5
ARIMA–Modelle
So genannte ARIMA Zeitreihen sind die am häufigsten verwendeten Modellierungen für Zeitreihen. Man
bestimmt nach der Box-Jenkins-Methode innerhalb dieser Klasse den besten Fit zu einer vorliegenden
Zeitreihe. Mit diesem Fit lassen sich dann Vorhersagen über die zukünftige Entwicklung der Zeitreihe
(Prognose) machen.
• Unter einem AR(p) Prozess (autoregressiv) versteht man eine Zeitreihe Xt , die von der gewichteten
Summe vorangehender Werte abhängt:
p
Xt =
X
αj Xt−j + t .
j=1
Unter der Voraussetzung, dass die p-ten Einheitswurzeln des AR–Polynoms 1 −
halb des komplexen Einheitskreises liegen, sind AR(p) Prozesse stationär.
Pp
j=1 αj z
j
außer-
• Unter einem MA(q) Prozess (moving average) versteht man eine Zeitreihe Xt , die von der gewichteten Summe vorangehender Fehler abhängt:
q
Xt =
X
βi t−i .
i=0
Im Allgemeinen setzt man β0 = 1, so dass gilt
q
Xt =
X
βi t−i + t .
i=1
MA(q) Prozesse sind stationär und Xt hat die Varianz σ2
Rauschens t ist.
P
βi2 , wenn σ2 die Varianz des weisen
• Unter einem ARMA(p,q) Prozess versteht man eine Zeitreihe Xt , die von der gewichteten Summe
vorangehender Werte und Fehler abhängt:
p
Xt =
X
q
αj Xt−j +
j=1
X
βi t−i .
i=0
Man fordert, dass das AR–Polynom und das MA–Polynom 1 +
plexen Nullstellen haben.
Pq
i=1 βi
keine gemeinsamen kom-
• Eine Zeitreihe heißt ARIMA(p,d,q) Prozess (auto regressive integrated moving average), wenn die
Zeitreihe, die durch Bildung der d-ten Differenzen entsteht, ein ARMA(p,q) Prozess ist.
Innerhalb der Klasse der ARIMA Modelle befinden sich eine Menge prominente“ Spezialfälle wie der
”
einfache Random Walk (0,1,0) oder das Modell des so gennanten Exponential Smoothing (0,1,1). Man
betrachtet die Verallgemeinerung von ARMA zu ARIMA Modellen, da vorliegende Zeitreihen oftmals
nicht stationär sind, sondern einen Trend aufweisen. Die Differenzenbildung dient daher der Stationari”
sierung“ der Zeitreihe.
121
Das Box-Jenkins-Verfahren, im Rahmen dessen Entwicklung die Zeitreihenanalyse erstmals die Modellierung durch stochastische Prozesse nutzte, enthält drei wesentliche Schritte:
1. die Modellidentifikation,
2. die Modellanpassung bzw. Parameterschätzung (auch Feinschätzung des Modells)
3. die Modellüberprüfung bzw. Diagnose der Güte des Modells .
Nach Schritt 3 erfolgt ggf. eine Rückkehr zu Schritt 1.
Die Modellidentifikation führt über das Autokorrelogramm und das partielle Autokorrelogramm. Um uns
einen Eindruck zu verschaffen, wie bestimmte ARIMA Prozesse aussehen bzw. deren Korrelationsstrukturen nutzen wir die Funktion arima.sim in R zur Simulation einiger einfacher Beispiele und betrachten
die zugehörigen (kumulativen) Autokorrelogramme.
>
>
>
>
>
>
>
>
>
>
>
>
>
par ( mfrow=c ( 2 , 2 ) )
sim . 1<−a r i m a . sim ( l i s t ( ma=c ( − . 5 ) , o r d e r =c ( 0 , 0 , 1 ) ) , n =1 00 0)
a c f ( sim . 1 , main=”MA( 1 ) ” )
sim . 2<−a r i m a . sim ( l i s t ( a r =c ( − . 5 ) , o r d e r =c ( 1 , 0 , 0 ) ) , n =1 00 0)
a c f ( sim . 2 , main=”AR( 1 ) ” )
sim . 3<−a r i m a . sim ( l i s t ( a r =c ( − . 5 ) , ma=c ( − . 5 ) , o r d e r =c ( 1 , 0 , 1 ) ) , n =1 00 0)
a c f ( sim . 3 , main=”ARMA( 1 , 1 ) ” )
sim . 4<−a r i m a . sim ( l i s t ( a r =c ( − . 5 ) , ma=c ( − . 5 ) , o r d e r =c ( 1 , 1 , 1 ) ) , n =1 00 0)
a c f ( sim . 4 , main=”ARIMA( 1 , 1 , 1 ) ” )
p a c f ( sim . 1 , main=”MA( 1 ) ” )
p a c f ( sim . 2 , main=”AR( 1 ) ” )
p a c f ( sim . 3 , main=”ARMA( 1 , 1 ) ” )
p a c f ( sim . 4 , main=”ARIMA( 1 , 1 , 1 ) ” )
122
123
Man spezifiziert das zu verwendende ARIMA Modell durch Vorgabe einer Liste der Gewichte und
die Ordnung der Zeitreihe.
Ein AR(1) Prozess hat die Autokorrelationen γk = α|k| , allgemein sind für AR(p) Prozesse
alle Autokovarianzen
ungleich Null, fallen aber für größere lags ab. Es gilt die Yule–Walker–
P
Gleichung γk = p1 αi γk−i , k > 0. Deshalb sind alle partiellen Autokovarianzen für k > p
gleich Null.
Ein MA(1) Prozess hat die Autokorrelation γ1 = β1 /(1 + β12 ) zum lag 1 und Null für größere
lags. Allgemein sind für MA(q) Prozesse alle Autokovarianzen für k > q gleich Null. Dafür sind
in diesem Fall die partiellen Autokorrelationen abfallend, aber ungleich Null.
Durch die gleichen Vorzeichen von α1 und β1 vergrößert sich die Autokovarianz des ARMA
Prozesses, bei unterschiedlichen Vorzeichen würden sich die Effekte dagegen gegenseitig abschwächen.
Aufgrund der Struktur und langen periodischen Abhängigkeiten, lässt sich unser vorangegangenes Beispiel nicht optimal durch ein ARIMA–Modell fitten, trotzdem werden wir den prinzipiellen
Ablauf weiter an diesem Beispiel erläutern. Neben der Analyse des Autokorrelogrammes gibt
es die Möglichkeit mit der Funktion ar einen passenden AR Fit zu einer Zeitreihe bestimmen
zu lassen. Dies basiert auf dem Akaike Informationskriterium, bei dem die Akaike Information (Summe der quadrierten Residuen penalisiert mit doppelter Anzahl der Parameter) minimal
wird.
> a r ( b e e r , max . o r d e r = 1 0 0 )
Call :
a r ( x = b e e r , max . o r d e r = 1 0 0 )
Coefficients :
1
2
0.2497
0.0797
9
10
0 . 0 1 0 7 −0.0973
17
18
−0.0196 −0.0362
25
−0.0986
O r d e r s e l e c t e d 25
3
−0.0658
11
0.1044
19
−0.0486
4
−0.0349
12
0.4177
20
0.0477
5
0.0968
13
0.0245
21
−0.0025
sigma ˆ2 e s t i m a t e d as
6
0.0160
14
0.0106
22
−0.0200
7
−0.0439
15
0.0257
23
0.1808
8
0.0178
16
−0.0042
24
0.0822
5573
Wir werden nun ein ARIMA(25,1,0)–Modell für die Zeitreihe verwenden, da eine andere höhere
Ordnung q des MA Anteils nicht ermittelbar ist.
Wenn wir uns auf ein ARIMA(p,d,q) Modell festgelegt haben, geht man über zum 2.Schritt der
Parameterschätzung. Dies wird durch die Funktion arima aufgerufen.
> a r i m a ( b e e r , o r d e r =c ( 2 5 , 1 , 0 ) )
Call :
arima ( x = beer , order = c ( 2 5 , 1 , 0 ) )
Coefficients :
ar1
−0.8138
s.e.
0.0467
ar9
−0.6753
s.e.
0.1103
ar17
ar2
−0.7461
0.0602
ar10
−0.7666
0.1150
ar18
ar3
−0.8000
0.0698
ar11
−0.6638
0.1206
ar19
ar4
−0.8405
0.0791
ar12
−0.2427
0.1245
ar20
ar5
−0.7393
0.0883
ar13
−0.1851
0.1245
ar21
124
ar6
ar7
ar8
−0.7010 −0.7282 −0.6987
0.0947
0.0998
0.1054
ar14
ar15
ar16
−0.132 −0.0912 −0.0893
0.124
0.1201
0.1147
ar22
ar23
ar24
s.e.
s.e.
−0.1045
0.1102
ar25
0.0583
0.0472
−0.1485
0.1052
−0.2082
0.0997
sigma ˆ2 e s t i m a t e d as 4931:
−0.1669
0.0946
−0.1664
0.0883
−0.1937
0.0793
l o g l i k e l i h o o d = −2703.55 ,
−0.0017
0.0705
0.1181
0.0607
a i c = 5459.09
Die Modellüberprüfung (3. Schritt) wird mit der Funktion tsdiag aufgerufen. Es werden 3 Grafiken erzeugt, die standardisierten Residuen, deren Autokorrelationen und Ljung–Box Statistiken
für die niedrigsten lags. Der Box–Pierce und Ljung–Box Test (Portmanteau–Tests) sind SigniP
fikanztests auf die Hypothese der Unabhängigkeit der Residuen. Die Teststatistik ist n t γ̂t2
und unter der Hypothese approximativ χ2 –verteilt. Der Hintergrund ist, dass bei einem korrekt
gewählten Modell die Residuen unkorreliert sein müssten. Wenn der Test jedoch sehr kleine p–
Werte liefert, kann diese Hypothese und damit die Hypothese der richtigen Modellspezifikation
verworfen werden.
> t s d i a g ( a r i m a ( b e e r , o r d e r =c ( 2 5 , 1 , 0 ) ) )
> Box . t e s t ( a r i m a ( b e e r , o r d e r =c ( 2 5 , 1 , 0 ) ) $ r e s i d u a l s )
Box−P i e r c e t e s t
data : arima ( beer , order = c ( 2 5 , 1 , 0 ) ) $ r e s i d u a l s
X−s q u a r e d = 0 . 0 0 6 1 , d f = 1 , p−v a l u e = 0 . 9 3 8
> Box . t e s t ( a r i m a ( b e e r , o r d e r =c ( 2 5 , 1 , 0 ) ) $ r e s i d u a l s , t y p e =” L j u n g ” )
Box−L j u n g t e s t
data : arima ( beer , order = c ( 2 5 , 1 , 0 ) ) $ r e s i d u a l s
X−s q u a r e d = 0 . 0 0 6 1 , d f = 1 , p−v a l u e = 0 . 9 3 7 8
125
Aufgrund der p–Werte des Tests kann das gewählte ARIMA–Modell nicht abgelehnt werden, was jedoch
nicht dessen Richtigkeit im Umkehrschluss bedeutet.
Wenn ein ARIMA–Modell nach Identifikation und Überprüfung fest gewählt ist, kann dieses zur Prognose
zukünftiger Zeitreihenwerte dienen. Vorhersagen werden in R durch die Funktion predict erzeugt.
Mit folgendem Code wird eine Darstellung der vorhergesagten Entwicklung der Bierproduktion über 24
Monate erzeugt sowie die dazu ermittelten 0.95 Konfidenzbänder.
>
>
>
>
>
f o r e<−p r e d i c t ( a r i m a ( b e e r , o r d e r =c ( 2 5 , 1 , 0 ) ) , n . a h e a d = 24 )
t s . p l o t ( b e e r , x l i m =c ( 1 9 9 0 , 1 9 9 7 ) )
l i n e s ( f o r e $ p r e d , c o l =” r e d ” )
l i n e s ( f o r e $ p r e d +2∗ f o r e $ se , c o l =” r e d ” , l t y = 3)
l i n e s ( f o r e $ p r e d −2∗ f o r e $ se , c o l =” r e d ” , l t y = 3)
126
Literatur
Brockwell, P. J. and R. A. Davis (2002). Introduction to Time Series and Forecasting (2 ed.).
New York: Springer.
Cleveland, W. S. and C. Loader (1996). Smoothing by local regression: principles and methods.
Statistical Theory and Computational Aspects of Smoothing, 10–49.
Cowpertwait, P. S. and A. Metcalfe (2009). Introductory Time Series with R (1 ed.). Berlin:
Springer.
Diggle, P. J. (1994). Time series: A biostatistical introduction. Oxford University Press.
Makridakis, S., S. Wheelwright, and R. J. Hyndman (1998). Forecasting: Methods and Applications (3 ed.). Wiley.
Naidu, P. S. (1995). Modern Spectrum Analysis of Time Series (1 ed.). CRC-Press.
Priestley, M. B. (1981). Spectral Analysis and Time Series. London: Academic Press.
Schlittgen, R. and B. H. J. Streitberg (2001). Zeitreihenanalyse (9 ed.). Oldenbourg Verlag.
Shumway, R. H. and D. S. Stoffer (2006). Time Series Analysis and Its Applications: With R
Examples (2 ed.). Berlin: Springer.
127
Literaturverzeichnis
Crawley, M. J. (2007). The R Book. New York: Wiley.
Dalgaard, P. (2004). Introductory Statistics with R. Berlin: Springer.
Dolić (2004). Statsistik mit R. Oldenbourg Verlag.
Everitt, B. S. and T. Hothorn (2006). A Handbook of Statistical Analyses Using R. Chapman
Hall/CRC.
Gentle, J. E. (2003). Random Number Generation and Monte Carlo Methods. Berlin: Springer.
Ligges, U. (2002). Programmieren mit R. Heidelberg: Springer.
Sawitzki, G. (2009). Computational statistics : an introduction to R. CRC Press.
Venables, W. N. and B. D. Ripley (2002). Modern Applied Statistics with S. Berlin: Springer.
128

Documentos relacionados