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