Simulation und Prognose

Größe: px
Ab Seite anzeigen:

Download "Simulation und Prognose"

Transkript

1 Simulation und Prognose WT 2011 Dr. Detlef Steuer Tel. 2819, 25. März 2011 Dr. D. Steuer, Tel. 2819

2 Orgakram Sprechstunde: Jederzeit, wenn der voraussichtliche Zeitbedarf unter 10 Minuten liegt, sonst bitte telefonisch oder per mail Termin absprechen! Prüfung: zweistündige Klausur am von 10:00-12:00 Uhr in Raum 2161 EDV-Labor Wiso. Openbook in dem Sinne, dass PDF- Dateien genutzt werden können. Eigene Laptops dürfen genutzt werden. Aufteilung der Veranstaltung in 2x2 h. Wann ist Zeit? Ein Termin steht: Montag, 9:45-11:15 Uhr, R Zusätzlich bietet Herr Kehler ein Tutorium an. Wann? Dr. D. Steuer, Tel

3 Ablauf der Veranstaltung Vorlesung mit integrierter hands-on Übung zum Programmieren von Simulationen in R. Der Umfang der Übungen liegt zwischen 25 und 50%. Skript wird vorlesungsbegleitend bereit gestellt. Voraussetzung I: Begrifflichkeiten aus Statistik I + II. Voraussetzung II: Eigeninitiative etwas R zu lernen. Es ist mehr Programmierung erforderlich als in Datenanalyse I + II, insbesondere ein Verständnis von Schleifen bzw. wiederholter Anwendung von Programmteilen auf Vektoren oder Listen. Im Übungsteil der Veranstaltung werden die nötigen Teile von R allerdings auasführlich geübt. Bitte Rückmeldung geben, wenn zu schnell, zu langsam etc.! Dr. D. Steuer, Tel

4 Begriffsklärung Was ist Gegenstand der Vorlesung? Begriffsklärung Simulation. Begriffsklärung Prognose. Die Programmiersprache R: Das Werkzeug. Dr. D. Steuer, Tel

5 Was ist Simulation? Simulation ist ein Vorgehen zur Analyse von Systemen, die einer theoretischen oder analytischen Analyse nicht zugänglich sind. Häufig gilt dies für dynamische oder rückgekoppelte System. Es gibt Simulation durch Modellbau o.ä., dies ist hier nicht gemeint! Simulation ist hier Computersimulation! Simulation ist hier auch keine Simulation durch deterministische Modellierung (z.b. FEM, Differentialgleichungen) Dr. D. Steuer, Tel

6 Simulation im Rahmen dieser Vorlesung steht immer für eine stochastische Simulation, bei der man versucht, die analytischen Schwierigkeiten bei der Behandlung eines Systems durch vielfache, verrauschte Simulation eines möglicherweise vereinfachten Modells zu umgehen. Ein einfaches Beispiel: Warteschlangenproblem. Wie viel Wechselgeld benötigt man zur Ladenöffnung in n Kassen bei m Schlangen, damit es in weniger als 0.1 % der Fälle zu Problemen mit dem Wechselgeldvorrat kommt? Klar ist der Zusammenhang zur Modellbildung. Eine Simulation kann nur so gut sein, wie das zugrundeliegende Modell! Wichtiges Problem: Woher kommt eigentlich der Zufall? Der Computer arbeitet doch hoffentlich deterministisch? Dr. D. Steuer, Tel

7 Was bedeutet Prognose? Simulationen werden in der Regel durchgeführt, um Eigenschaften von Systemen vorherzusagen, die entweder nicht analytisch zugänglich sind oder die nicht beobachtbar sind, weil sie beispielsweise in der Zukunft liegen. Bekanntestes Beispiel: Meteorologie. Aber auch Validierung statistischer Modelle durch Vorhersage der Ergebnisse von Experimenten bei unbekannten Parametereinstellungen. Prognose beinhaltet hier immer auch die Prognose eines Unsicherheitsniveaus (Schätzung mit ˆσ)! Bekannte Begriffe: Prognoseintervall, Konfidenzintervall. Die Prognose ist also das natürliche Ziel einer Simulation! Dr. D. Steuer, Tel

8 Die Programmiersprache R: Das Werkzeug R ist eine (Interpreter-)Sprache und eine Arbeitsumgebung für statististische Grafik und Analyse. R liefert in der Standardinstallation bereits eine große Zahl von statistischen und grafischen Verfahren der Datenanalyse und ist darüber hinaus entworfen, um leicht erweiterbar zu sein. Es gibt über 2000 Erweiterungspakete für alle Aspekte der Datananalyse. Eine große Stärke von R liegt in der leichten Anfertigung von veröffentlichungsfähigen Plots, inklusive mathematischer Annotationen. Das R-Core Team nennt R eine Umgebung für statistische Berechnugen und Grafik. Dr. D. Steuer, Tel

9 Die Programmiersprache R In dieser Vorlesung: Nicht nur Beschränkung auf die bereits implementierten Teile. R ist eine Art statistischer (Hochleistungs-)Taschenrechner und in dieser Veranstaltung ein geduldiger (Pseudo-)Zufallszahlengenerator. Der typische Ablauf wird die Konstruktion einer einzelnen Simulation in R sein, deren Eigenschaften dann durch vielfache Wiederholung untersucht werden. Dr. D. Steuer, Tel

10 Warum R? R ist Freie Software (kostenlos und open source). R ist plattformunabhängig, d.h. Sie nutzen weiter den Rechner und das Betriebssystem, das sie gewohnt sind, sei es Windows, MacOs oder Unix. Hervorragende Fähigkeiten: Immer mehr Firmen nutzen R, also bekommen Sie ein Werkzeug an die Hand, das Sie fast sicher im beruflichen Umfeld wieder sehen werden. R entwickelt sich im universitären Bereich zur Standardsoftware, ebenso, wenn auch verzögert im industriellen Bereich. Am sogar eine Titelseitengeschichte der NYT! Dr. D. Steuer, Tel

11 Warum R? Hervorragende eingebaute Hilfefunktion! Lokalisiert in etlichen Sprachen. Professioneller (oder besser) Support über Mailinglisten! Professionelle (oder besser) Qualitätskontrolle der Software ( make check ). Validierung der Software und der Rechenergebnisse während der ganzen Entwicklung. Sehr gute Handbücher werden mitinstalliert (Reference Manual > 1800 Seiten). Für Bachelor-, Master- oder Doktorarbeiten: sehr gute Integration mit L A TEXund OpenOffice. (MS Office ist auch ok.) Dr. D. Steuer, Tel

12 Benutzerinterfaces für R Eingebaut ist nur ein CLI. R ist ein Interpreter mit read-eval-loop! Empfehlenswert: Interface zu einem externen Editor (emacs (!), winedt, etc.). Es gibt GUIs: gehören nicht zur Standardinstallation und werden in der Vorlesung nicht behandelt. Windows hat ein rudimentäres Mausinterface, aktuell scheint Tinn-R das einfachste zu sein. Batch mode (skriptgesteuert). etwas ausgefallener: R als Modul des Webservers. oder: R als shared library aus anderen Programmiersprachen aufrufen (python, perl). Dr. D. Steuer, Tel

13 Eine erste R-Sitzung R R version Patched ( r53913) Copyright (C) 2010 The R Foundation for Statistical Computing ISBN R ist freie Software und kommt OHNE JEGLICHE GARANTIE. Sie sind eingeladen, es unter bestimmten Bedingungen weiter zu verbreiten. Tippen Sie license() or licence() für Details dazu. R ist ein Gemeinschaftsprojekt mit vielen Beitragenden. Tippen Sie contributors() für mehr Information und citation(), um zu erfahren, wie R oder R packages in Publikationen zitiert werden können. Tippen Sie demo() für einige Demos, help() für on-line Hilfe, oder help.start() für eine HTML Browserschnittstelle zur Hilfe. Tippen Sie q(), um R zu verlassen. > Dr. D. Steuer, Tel

14 Zuerst: > Sys.setenv(http_proxy=" ### Setzt den Uni-Proxy. Nicht nötig außerhalb des Uni-Netzes! > contributors() ### Liste der Entwickler > citation() ### Zitierung von R als Literaturstelle. ### R hat eine ISBN! Dr. D. Steuer, Tel

15 Erste Schritte: interaktive Nutzung von R R als Taschenrechner > [1] 7 > log(0) [1] -Inf > log(-1) [1] NaN Warning message: NaNs were generated in: log(x) Dr. D. Steuer, Tel

16 Erste Schritte: interaktive Nutzung von R > pi #es kommt auf Groß- oder Kleinschreibung an [1] > x <-.Last.value # x =.Last.value geht "neuerdings" auch > ls() [1] x > rm(x) > seq(1,10)^2 # R ist eine vektororientierte Sprache > q() Dr. D. Steuer, Tel

17 Eingebautes Hilfesystem Das cheat-sheet für R! help oder? : äquivalent zu RTFM: versuchen Sie help(plot) oder?plot. Wenn man das genaue Kommando nicht weiß oder help nicht hilft, dann kann man apropos(), find() oder help.search() versuchen. Versteht man die Hilfeseite nicht, dann kann man mit example(command) oder demo(command) versuchen, den Befehl und seine Nutzung am Beispiel zu lernen. Dr. D. Steuer, Tel

18 Eingebautes Hilfesystem help.start() zeigt die Dokumentation im Standard-Webbrowser an. Die meisten von Nutzern hinzugefügten Pakete enthalten eine sog. Vignette, eine kurzes Handbuch im PDF Format. Mit dem Kommando vignette() kann man sich dieses anzeigen lassen. Dr. D. Steuer, Tel

19 Externe Pakete In erheblichem Umfang zusätzliche Funktionalität in externen packages (oder views) available.packages() gibt eine Liste der aktuell vorhandenen Pakete. Einfaches Einfügen in eine bestehende R Installation: install.packages("scatterplot3d") Laden in eine laufende R-Sitzung mit library(scatterplot3d) or require(scatterplot3d) Entfernen aus einer laufenden Sitzung detach(package:scatterplot3d) Dr. D. Steuer, Tel

20 Mathematische Operatoren Symbol Funktion ˆoder ** Potenz *, /, +, - Multiplikation, Division, Addition, Subtraktion %/%, %% ganzzahlige bzw. modulo Division %*% Matrixmultiplikation Natürlich gibt es alle üblichen mathematischen Operationen: round(), sin(), abs(), sqrt() etc. Wichtig für das Konzeptverständnis: Alle diese Operatoren sind gewöhnliche R-Funktionen: > "+"(3,4) [1] 7 Dr. D. Steuer, Tel

21 Mathematische Operatoren Wichtig sind die Bezeichner für die speziellen Zahlen: NaN : Not a Number, Inf, -Inf : plus resp. minus unendlich, NULL : nichts, leer, TRUE, FALSE : Wahr oder falsch, NA : not available, fehlender Wert, missing value. Achtung: R implementiert IEEE Arithmetik! Internationaler Standard. > round(1.5) ; round(0.5) [1] 2 [1] 0 Achtung: pi ist nicht PI! R beachtet Groß- und Kleinschreibung! Dr. D. Steuer, Tel

22 Logische Operatoren == : beide Objekt sind identisch, all.equal() testet auf ziemliche Gleichheit bis auf eine festgelegte Abweichung. Achtung: Es geht nicht nur um numerische Identität.!= : ungleich, <, >, <=, >= kleiner als, größer als (oder gleich), &,,! : (logisch) AND, OR, NOT. Dr. D. Steuer, Tel

23 Kleine Fallstricke > a <- 3 > b <- 2.1/0.7 > a == b [1] FALSE Was passiert hier? Dr. D. Steuer, Tel

24 Kleine Fallstricke > a <- 3 > b <- 2.1/0.7 > a == b [1] FALSE Was passiert hier? Lösung in R: es gibt die Funktion all.equal() > all.equal(a, b) [1] TRUE >?all.equal all.equal() überprüft die numerische Gleichheit bis auf ein ǫ Standard: sqrt(.machine.double.eps ) Dr. D. Steuer, Tel

25 Kleine Fallstricke Naiver Weise vermutet man, dass das Folgende funktioniert: > a <- NA > a == NA oder > a <- NaN > a == NaN Dr. D. Steuer, Tel

26 Kleine Fallstricke Naiver Weise vermutet man, dass das Folgende funktioniert: > a <- NA > a == NA [1] NA > a <- NaN > a == NaN [1] NA Macht es aber nicht! Für diese Fälle stellt R Folgendes zur Verfügung: > a <- NA ; is.na(a) > a <- NaN ; is.nan(a) Dr. D. Steuer, Tel

27 Erzeugung von Vektoren Da Simulationen oft das Ausprobieren einer Reihe von Parametern oder das Zwischenspeichern von vielen Ergebnissen erfordert, ist der Umgang mit Listen und Vektoren essentiell. R operiert standardmäßig auf Vektoren! > (x <- c(1, 3, 4.5)) [1] > (x <- c(1, x, 3)) [1] > length(x) ### length of vector [1] 3 > t(x) Dr. D. Steuer, Tel

28 Indizierung von Vektoren (Teilmengen) > (x <- c(2, 3, 5, 7, 11, 13, 17, 19, 23)) [1] > x[1] ### Zugriff über Index [1] 2 > x[2:4] ### mehrere Elemente [1] > x[-(2:4)] ### Ausschluss einiger Elemente [1] > x[-c(1, 7, 9)] ### wahlfreier Zugriff [1] > x[] ### ist x [1] Dr. D. Steuer, Tel

29 Indizierung über Eigenschaften der Einträge > which(x < 10) ### Indizes, die eine Bedingung erfüllen [1] > x [1] > x > 10 [1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE > sum(x>10) # Anzahl der Einträge, die eine Bedingung erfüllen 5 > x [ x > 10 ] # Zugriff über boole schen Vektor [1] Dr. D. Steuer, Tel

30 Erzeugung spezieller Vektoren seq(), rep() > 1:5; 5:1 ### Abstand 1 [1] [1] > seq(1,5,2/3) ### Abstand!= 1 [1] > seq(along=x) ### Nummerierung von x [1] > rep(true, 5) [1] TRUE TRUE TRUE TRUE TRUE > rep(c("red","blue"),c(4,7)) [1] "red" "red" "red" "red" "blue" "blue" "blue" "blue" [9] "blue" "blue" "blue" Dr. D. Steuer, Tel

31 Rechnen mit R-Vektoren > (x <- seq(3,7)) [1] > 1+x ### Recycling der 1 [1] > 2*x ### elementweises Rechnen [1] > x*x ### auch Multiplkation [1] > x%*%x ### Skalarproduct, implizite Transposition! [,1] [1,] 135 > 6:1-1:3 ### kürzerer Vektor wird recycled [1] Dr. D. Steuer, Tel

32 Funktionen von Vektoren In R wirken Funktionen in der Regel auf ganzen Vektoren: > sin(seq(0,2*pi,pi/3)) [1] e e e e-16 [5] e e e-16 Selbstdefinerte Funktionen in R sind sehr einfach: > ownodd <- function(x) {if (x%%2) cat("ungerade\n") else cat("gerade\n")} > ownodd(1) ; ownodd(2) # mehrere Befehle in einer Zeile ungerade gerade Dr. D. Steuer, Tel

33 Oft sind selbstgeschriebenen Funktionen einfacher zunächst für skalare Argumente zu formulieren. > ownodd(1:2) # if funktioniert nicht auf Vektoren Warnmeldung: In if (x%%2) cat("ungerade\n") else cat("gerade\n") : Bedingung hat Länge > 1 und nur das erste Element wird benutzt Die Funktion Vectorize() hilft dann: > Vectorize(ownodd)(1:2) ungerade gerade Oft sehr nützlich bei Simulationen! Dr. D. Steuer, Tel

34 Matrizen Eine Matrix kann mit matrix() erzeugt werden. Bsp.: matrix(1:9,nrow=3, byrow=true) WichtigeFunktionen:%*%, crossprod(), solve(), diag(), eigen(), qr(), svd(), t() Vorsicht: Bloß nicht aus Versehen Dimensionen verlieren! > x <- matrix(1:9,nrow=3) > x[1,1] [1] 1 > x[1,1, drop=false] [,1] [1,] 1 Dr. D. Steuer, Tel

35 Indizierung von Matrizen Zwei Indizes beschreiben die Position eines Elements in einer Matrix. x[i,j] ist in der i. Zeile und j. Spalte. Ansonsten pro Dimension Zugriff wie bei Vektoren! Ex.: x[1,], x[2:4, 5:7] Dr. D. Steuer, Tel

36 Listen R hat Wurzeln in LISP, weshalb die Liste ein grundlegender Datentyp ist. Im Gegensatz zu Vektoren können Listen Einträge verschiedener Datentypen enthalten. Erzeugt werden Listen mit dem Befehl list(), wobei den einzelnen Elementen Namen zugewiesen werden können. Der Zugriff auf Listenelement mit Index, z.b. LL[[i]], oder dem Namen des Elements, z.b. LL$ab. > LL <- list(ab="hi", numbers=c(2, 4, 5), xx=matrix(1:4,2)) Dr. D. Steuer, Tel

37 > LL $ab [1] "hi" $zahlen [1] $xx [,1] [,2] [1,] 1 3 [2,] 2 4 > LL[[2]] zahlen [1] > LL$ab [1] "hi" Dr. D. Steuer, Tel

38 Elementare Statistik (Statistik I) Vielzahl eingebauter Funktionen! mean(), var(), sd(), cor() etc. runif(), rnorm() etc. Zufallszahlenerzeugung fivenum(), range(), summary(), stem() Tukey s numbers, Spannweite, Stem-and-leaf plot boxplot(), pie(), hist() grundlegende grafische Darstellungen lm(), t.test() lineare Regression, t-test Dr. D. Steuer, Tel

39 Datenhaltung ls() zeigt in einer R-Sitzung alle aktuell exisitierenden Objekte an. Für etwas mehr Auskünfte über die Objekte kann man ls.str versuchen. Alle Objekte der aktuellen Sitzung werden in der Datei.Rdata im aktuellen Arbeitsverzeichnis gespeichert, wenn man mit y auf q() antwortet. Das aktuelle Arbeitsverzeichis liest und schreibt man mit getwd() und setwd(). Unter Windows kann das ARbeitsverzeichnis über das Menü gesetzt werden. Pro: Automatische Datensicherung! Kontra: Es handelt sich um ein Binärformat! Man sollte dies nicht als Hauptsicherung wichtiger Daten nutzen! Dr. D. Steuer, Tel

40 Siehe auch save() und save.image(). Es bietet sich eine Arbeitsweise an, die pro Projekt ein Verzeichnis vorsieht. Den Verlauf der letzten eingegebenen Befehle findet man in der Datei.Rhistory. Dr. D. Steuer, Tel

41 Verteilungsbezogene Funktionen in R Für viele Verteilungen gibt es Funktionen wie pnorm, qnorm, dnorm, rnorm, die das Ablesen aus Tabellen ersetzen bzw. der Verteilung entsprechende Zufallszahlen erzeugen. Die Verteilungsparameter können jeweils als Funktionsparameter angegeben werden. Hier am Beispiel für die Normalverteilung: pnorm(q, mean=0, sd=1,...) Verteilungsfunktion (probability-), dnorm(x, mean=0, sd=1,...) Dichtefunktion (density-), qnorm(p, mean=0, sd=1,...) Quantilsfunktion (quantile-) und rnorm(n, mean=0, sd=1) Zufallszahlenerzeugung (randomnumber-). Alle üblichen Verteilungen liegen in R bereits derart vor. sample(x, size, replace = FALSE, prob = NULL) Ziehen mit und ohne Zurücklegen Dr. D. Steuer, Tel

42 Ablaufkontrolle in einem R-Programm Um im Ablauf eines Programms Bedingungsabhängig zu verzweigen gibt es die Befehle if, ifelse und switch. Im Einzelnen: if () Syntax: if (Bedingung) { Befehlsblock} [else { Befehlsblock }] - geschweifte Klammern nur nötig, wenn der Befehlsblock mehr als einen Befehl enthält - else ist optional - if operiert nicht auf Vektoren! ifelse() Syntax: ifelse(bedingung, TRUE - Ergebnisse, FALSE - Ergebnisse) - operiert auf Vektoren! switch(expr, list of commands,...) - sehr starke Verallgemeinerung für Programmablauf - für Spezialfälle. Dr. D. Steuer, Tel

43 Beispiele if/ifelse > x <- c( 7, 9) > if (x > 8) {cat (x)} # Nur das erste Element wird genutzt > x <- 5 > if ( x == 5) {x <- x + 1 ; y<-3} else y <- 7 > x ; y > ifelse (x == c(5, 6), c("a1", "A2"), c("a3", "A4")) Dr. D. Steuer, Tel

44 Schleifen in R while Syntax: while(bedingung) { Befehlsblock } - Läuft weiter und startet nur, wenn Bedingung erfüllt. repeat Syntax: repeat{ Befehlsblock } - wiederholen, bis die Schleife explizit abgebrochen wird. for Syntax: for (i in M){ Befehlsblock } - Wiederholt den Befehlsblock für alle Werte i in M. next springt unmittelbar an den Anfang der Schleife. break beendet Schleife sofort. Dr. D. Steuer, Tel

45 Übungsaufgabe zur Programmierung Übung 1: Berechnen Sie die ersten 20 Fibonacci-Zahlen. Erinnerung: Für die Fibonacci Zahlen F i,i N gilt: F i = F i 1 +F i 2 mit F 1 = 1,F 2 = 1. Nutzen Sie eine Schleifenkonstruktion Ihrer Wahl. Tipp: Für Teilnehmer ohne Programmiererfahrung ist es vermutlich sinnvoll zunächst einen Vektor festzulegen, der die ersten 20 Zahlen enthalten soll. Dann kann man von Hand die ersten Werte berechnen und schliesslich versuchen den Ansatz in einer Schleife zu automatisieren. Dr. D. Steuer, Tel

46 Lösung zur Übungsaufgabe 1 Die Aufgabe, die ersten 20 Fibonacci Zahlen zu berechnen, lässt sich mit jeder der eingeführten Schleifenkonstruktionen lösen. Für alle Versionen lassen sich zunächst die Startwerte festlegen: > fib <- c(1,1) # Vektor der Länge 2 Die Lösungen im Einzelnen: Zunächst mit for(): > for (i in 3:20) fib <- c(fib, fib[i-1] + fib[i-2]) Interessant ist an dieser Lösung, dass der Vektor nicht im Vorhinein in der Länge festgelegt werden muss. Neue Werte werden während des Programmlaufs angehängt. Dr. D. Steuer, Tel

47 Zweite Möglichkeit while(): > i <- 3 > while (i < 21) {fib <- c(fib, fib[i-1] + fib[i-2]) i <- i+1 } Schliesslich repeat: > i <- 3 > repeat { fib <- c(fib, fib[i-1] + fib[i-2]) ; i <- i+1 if (i == 21) break} Alle Methoden, die auf der Zuweisung von Werten an Positionen in einem Vektor beruhen, lassen sich erheblich beschleunigen, wenn ein passend langer Ergebnisvektor vor dem Eintritt in die Schleife allokiert wird. Dr. D. Steuer, Tel

48 Einige Laufzeiten > system.time({fib <- c(1,1) ; for (i in 3:1500) {fib <- c(fib, fib[i-1] + fib[i-2]) }} ) User System verstrichen > system.time({ fib <- c(1,1) ; i <- 3 ; repeat { fib <- c(fib, fib[i-1] + fib[i-2]); i <- i+1 ; if (i == 1501) break}}) User System verstrichen > system.time ( { fib <- c(1,1) ;i <- 3; while (i < 1501) {fib <- c(fib, fib[i-1] + fib[i-2]); i <- i+1 }}) User System verstrichen Dr. D. Steuer, Tel

49 Und mit definiertem Ergebnisvektor > system.time({fib <- rep(1,1500) ; for (i in 3:1500) {fib[i] <- fib[i-1] + fib[i-2] }} ) User System verstrichen > system.time({ fib <- rep(1,1500) ; i <- 3 ; repeat { fib[i] <- fib[i-1] + fib[i-2] ; i <- i+1 ; if (i == 1501) break}}) User System verstrichen > system.time ( { fib <- rep(1, 1500) ;i <- 3; while (i < 1501) {fib <- fib[i-1] + fib[i-2] ; i <- i+1 }}) User System verstrichen Dr. D. Steuer, Tel

50 Lösung der Übung 1 mit Rekursion Ein ganz anderer Ansatz ist die Berechnung der Fibonacci Zahlen direkt über die rekursive Definition der Zahlen: > fib <- function(n){ if ((n==1) (n==2)) 1 else fib(n-1) + fib(n-2)} Rekursion ist mit Vorsicht zu geniessen. Einerseits extrem elegant, andererseit mit einem enormen Overhead verbunden. Die Verarbeitung wird sehr schnell sehr langsam. > system.time(fib(30)) User System verstrichen Dr. D. Steuer, Tel

51 Kurze Geschichte des Zufalls Die Idee von Zufall ist sehr alt. Zufall steht hier zum einen für die Nichtvorhersagbarkeit und deshalb auch für das Fehlen einer (guten oder bösen) Absicht, zum anderen, durch die Gleichmäßigkeit, für eine gewisse Gerechtigkeit. Bspw. findet sich in der Bibel, viertes Buch Mose (Numeri) Kap 33, Vers 54: Und ihr sollt das Land austeilen durchs Los unter eure Geschlechter. Dem Geschlecht, das groß ist, sollt ihr ein großes Erbe geben und dem, das klein ist, sollt ihr ein kleines Erbe geben. Worauf das Los für jeden fällt, das soll er haben. Nach den Stämmen eurer Väter sollt ihr s austeilen. Dr. D. Steuer, Tel

52 Einige der ältesten Spiele sind Würfelspiele. Würfel sind aus der Zeit um 700 v. Chr. erhalten! Viele alte, religiöse Riten sind verbunden mit Zufallsmechanismen, bei denen sich der göttliche Wille durch den unvorhersehbaren Ausgang eines Experiments manifestieren soll ( Stäbchenorakel, Eingeweideschau ). Heute haben Zufallsexperimente, neben der Wissenschaft, ihre größte Bedeutung beim Glückspiel. Dr. D. Steuer, Tel

53 Aktuelle Anwendungen von generiertem Zufall Früher waren die Geräte um Zufallsexperiment durchzuführen physisch (Roulettetische, Kartenmischer, Würfel, die Lottotrommel) Heute wird all das auch im Computer simuliert Online-Glückspiel: Poker, Backgammon etc. Deshalb ist eine grosse Gewissheit über die Eigenschaften der verwendeten Zufallsgeneratoren sehr wichtig. Wichtige Rolle in der Kryptographie! Teilweise ist gesetzlich geregelt, wie Zufall erzeugt werden darf! Dr. D. Steuer, Tel

54 Zufall und der freie Wille Eine alte und gerade sehr aktuelle Diskussion rankt sich um die deterministische oder nicht deterministische Natur der Welt. Habe ich den Entschluss gefasst diese Vorlesung zu halten? Oder stand es von Anbeginn der Welt fest, da die Ausgangsbedingungen einen definierten Zustand hatten, den man im Prinzip vollständig erfassen und beschreiben könnte, und es deshalb völlig unausweichlich war, dass es sogar dazu kommen würde? Wenn es nicht feststand, woher kommt die Abweichung vom deterministischen, also berechenbaren, Prozess? Kann man das Zufall nennen? Dr. D. Steuer, Tel

55 Die Diskussion ist keineswegs entschieden, sowohl unter Physikern als auch unter Philosophen gibt es Verfechter beider Sichtweisen. Kant, Kritik der reinen Vernunft: In einer Welt ohne Zufall gibt es keine freien Willen! Einstein: Gott würfelt nicht! Interessantes Buch zu dem Thema: Roger Penrose, Shadows of the Mind (Schatten des Geistes). Er hofft auf Quantenprozess im Gehirn, um den freien Willen für uns zu retten. Dr. D. Steuer, Tel

56 Zufall in der Natur Eine mögliche Definition sagt, dass Zufall einen Prozess beeinflusst, wenn unter vollständiger Kontrolle aller Einstellungen ein Wiederholungsexperiment auch einen anderen Ausgang nehmen kann. In der Natur existieren tatsächliche entsprechende Phänomene. Beispielsweise beim Photonenreflektorexperiment, bei dem einzelne Photonen auf eine spezielle Optik gesendet werden, von der sie mit W keit 0.5 reflektiert werden oder die Optik durchdringen. Das Experiment kann als vollständig kontrolliert angesehen werden, jedoch tritt jeweils eines von zwei möglichen Ergebnissen ein. Physikalische Details zu diesem Experiment unter quantumlab.de. Dr. D. Steuer, Tel

57 Ein anderes Phänomen, bei dem in der Natur Zufall auftritt, ist der radioaktive Zerfall bestimmter Elemente. Betrachtet man die Wartezeit auf den Zerfall eine Atoms, so kann man den Zeitpunkt dieses Ereignisses nicht vorhersagen. (Gedächtnislose Verteilung!) In der Verteilug sind die Zeitdauern bei der Beobachtung vieler Atome allerdings sehr vorhersagbar (Halbwertszeit!). Ein alltägliches Phänomen, dass Zufall in der Natur beobachtbar macht, sind Schwankungen im thermischen Rauschen elektrischer Bauteile. Bsp: Rauschen im Fernseher. Kein Zufall, obwohl es oft danach aussieht sind die sogenannten chaotischen Prozesse (Fraktale, Wetterphänomene etc.) Diese sind (zumindest die Theorie dazu) berechenbar und deterministisch, sind jedoch für uns nicht intuitiv vorhersagbar, wirken also zufällig. Dr. D. Steuer, Tel

58 Übersetzung des Begriffs Zufall in die Mathematik Was bedeutet Zufall oder zufällig als operationaler Begriff? Auf der einen Seite hat jede/r eine Intuition, was er für zufällig hält und was nicht. Zufällig als umgangssprachlicher Begriff korrespondiert stets mit der Annahmen der gleichen Wahrscheinlichkeit vom Elementarereignissen wie Kopf oder Zahl, bzw. der Proportionalität der Wahrscheinlichkeiten zu Mächtigkeiten von Mengen von Elementarereignissen (Intervalllängen!). Schaut man auf der anderen Seite auf zehn unabhängige Würfe einer fairen Münze mit den Ausgängen K oder Z, einem mathematisch sauber Dr. D. Steuer, Tel

59 beschriebenem Ereignis, so sind die Ergebnisfolgen KKKKKKKKKK und KZZKZKKKZK exakt gleich wahrscheinlich, nämlich 1 210! In diesem Sinne scheint es also keine endlichen, zufälligen Folgen geben, denn alle endlichen Folgen identischer Länge sind gleich wahrscheinlich! Dieses Ergebnis steht natürlich im Widerspruch zu unserer Intuition von zufällig. Eine Folge von zehnmal Kopf sind wir nicht bereit als Zufallsfolge zu akzeptieren. Was erwartet man also von einer Folge, die den Namen Zufallsfolge verdient? Wie kann man diesen Begriff der Umgangssprache so präzisieren, dass man die Zufälligkeit messen oder bewerten kann? Eine Definition gegeben von J.N. Franklin (1962): Eine Folge heißt zufällig, wenn sie jede Eigenschaft besitzt, die alle unendlichen Folgen Dr. D. Steuer, Tel

60 unabhängiger Stichproben aus der Gleichverteilung besitzen. Eine mathematisch rigidere, interessante Definition liefert Knuth, The Art of Computer Programming, vol 2: Eine Folge U n von Werten aus [0,1) heißt zufällig, wenn für jede Eigenschaft E für die gilt, dass P(E(V n )) = 1 für jede Folge V n aus unabhängig identisch verteilten Zufallvariablen aus [0,1) gilt: E(U n ) ist wahr. Die Idee ist also, Eigenschaften von Folgen aus Zufallsvariablen auf [0,1) mathematisch herzuleiten und dann zu überprüfen, ob diese Eigenschaften erfüllt sind. Exemplarisch sollen jetzt menschengemachte Zufallszahlen mit einer solchen Eigenschaft verglichen werden. Dr. D. Steuer, Tel

61 Experiment zum Zufallsempfinden Jede/r notiere bitte eine Folge von 20 Ziffern 0 oder 1, die er oder sie als Zufallsfolge empfinden würde. Bitte zählen, wie häufig ein Wechsel von 0 auf 1 oder von 1 auf 0 vorkommt. Verteilung: Dr. D. Steuer, Tel

62 Eine entsprechende Simulation in R In einer Simulation wird nun dasselbe Experiment nachgestellt und empirisch der wahre Wert für die Eigenschaft erwartete Anzahl von Ziffernwechseln hergeleitet. Für den Moment sei akzeptiert, dass die Zufallsfunktionen in R brauchbar programmiert sind! Für eine Simulation zerlegt man das Problem in kleine Schritte, löst diese und setzt dann aus diesen kleinen Teilen die vollständige Simulation zusammen. Dr. D. Steuer, Tel

63 Die Einzelschritte 1. Erzeugen eines Zufallsvektors der Länge 20 mit Einträgen 0 oder 1 > vektor1 <- sample(c(0,1), 20, replace=true) 2. Zählen der Übergänge von einer Zahl zur anderen. 3. Es gibt beliebig viele mögliche Lösungen, z.b. über Schleifen. 4. Elegant über die Funktion diff(). > diff(vektor1) # z.b. [1] Dr. D. Steuer, Tel

64 5. Wie viele Einträge sind ungleich 0? > length(which(diff(s1)!= 0)) [1] 8 6. Diese Zahl ist das Ergebnis eines einzelnen Simulationslaufs. 7. In der großen Simulation wird dann eine große Anzahl Wiederholungen durchgeführt und die Einzelergebnisse einem Ergebnisvektor gespeichert. Dr. D. Steuer, Tel

65 Die vollständige Simulation Als Programm, dass dieses Experiment mal durchführt: results <- rep(na, 10000) for (i in 1:10000){ results[i] <- length( which( diff( sample(c(0,1), 20, replace=true) )!= 0) ) } table(results) mean(results) # Dr. D. Steuer, Tel

66 Analytische Herleitung Das Ergebnis lässt sich in diesem Fall auch analytisch herleiten. Mit W keit 0.5 findet an jeder Stelle ein Übergang statt, der Erwartungswert für die Zahl der Ziffernwechsel ist also exakt 19 * 0.5 = 9.5. In der Literatur finden sich extensive Analysen, die auf eine Wechselwahrscheinlichkeit von ca. 0.6 kommen, wenn Menschen versuchen sich zufällige Zahlenfolgen auszudenken. Der Mensch ist nicht besonders gut darin, eine zufällige Folge als solche zu erkennen! Ein anderes, ebenso verräterisches Merkmal ist die Länge der längsten Folge gleicher Ziffern in einer Zufallsfolge. Ein Mensch traut sich nicht viele gleiche Ziffern in eine Folge zu setzen, die zufällig wirken soll. Dr. D. Steuer, Tel

67 Aufgabe 2: Finden Sie über eine Simulation den mittlere Länge der längsten Ziffernfolge in einem Zufallsvektor der Länge 20! Hinweis: Verwenden Sie die Struktur aus dem obigen Beispiel. Sie benötigen dann noch ein Verfahren die Länge der Ziffernfolgen zu bestimmen. Dr. D. Steuer, Tel

68 Lösung Aufgabe 2 Es muss ein Weg gefunden werden, die Länge des längsten Laufs identischer Ziffern zu identifizieren: maxlaenge<-1 ; aktuellelaenge <- 1 ; old<-vek[1] #Startwerte for (j in 2:20) { if (vek[j] == old) { aktuellelaenge <- aktuellelaenge + 1 if (aktuellelaenge > maxlaenge) maxlaenge <- aktuellelaenge} else { old <- vek[j] aktuellelaenge <- 1 } } Dr. D. Steuer, Tel

69 Hat man dieses Teilproblem gelöst, kann man die Struktur der Simulation von gestern direkt einsetzen. results <- rep(na, 10000) for (i in 1:10000){ vek <- sample(c(0,1), 20, replace=true) maxlaenge<-1; aktuellelaenge <- 1; old<-vek[1] for (j in 2:20) { if (vek[j] == old) aktuellelaenge <- aktuellelaenge + 1 else { if (aktuellelaenge > maxlaenge) maxlaenge <- aktuellelaenge old <- vek[j] aktuellelaenge <- 1 } } results[i]<- maxlaenge } Dr. D. Steuer, Tel

70 In der Regel ist man nicht an solchen One-shot-Lösungen interessiert. Wenn möglich, versucht man die Lösungen so zu verallgemeinern, dass man das Programm in eine Funktion verwandelt, die dann flexibel bestimmte Parameter setzen kann, wie hier den Umfang der Stichprobe. maxrun <- function(stichprobenlaenge){ vek <- sample(c(0,1), stichprobenlaenge, replace=true) maxlaenge<-1 ; aktuellelaenge <- 1 ; old<-vek[1] for (j in 2:stichprobenlaenge) { if (vek[j] == old) aktuellelaenge <- aktuellelaenge + 1 else { if (aktuellelaenge > maxlaenge) maxlaenge <- aktuellelaenge old <- vek[j] ; aktuellelaenge <- 1 } } maxlaenge } Dr. D. Steuer, Tel

71 Dann gehen so nette Dinge, wie die Veranschaulichung der Entwicklung des Durchschnitts der längsten Lauflänge bei wachsender Stichprobenanzahl. Schon für diese Aufgabe ist eine mathematischen Herleitung sehr schwer! plot(1,xlim=c(1,100),ylim= c(1,10), t="n", xlab="stichprobenlänge", ylab="maximale Lauflänge") for (stichprobenlaenge in seq(10,100,10)) { results <- rep(na, 1000) for (i in 1:1000){ results[i] <- maxrun(stichprobenlaenge) } points(stichprobenlaenge, mean(results)) } Dr. D. Steuer, Tel

72 Mit Ausgabe:: maximale Lauflänge Stichprobenlänge Dr. D. Steuer, Tel

73 Zufall im Computer Experimente in unserem Sinne sind Computerexperimente. Problem: Computer sind per Definition deterministisch und sollen es auch sein! Wie bekomme ich zufällige Ergebnisse? Bevor Computer allgemein verfügbar waren, konnte man tatsächlich Tabellen mit Zufallszahlen kaufen. Die erste solche Tabelle erschien 1927 mit Zufallsziffern zufällig aus den Volkszählungsdaten gezogen (Tipett (1927)). Sogar in 2001 war in Bamberg/Bauer, Statistik, noch eine Seite mit Zufallsziffern. Es gab in der Zeit nach dem 2. Weltkrieg sogar spezialisierte Maschinen Dr. D. Steuer, Tel

74 zur Zufallszahlenerzeugung wurde von der RAND Corporation eine Tabelle mit einer Million Zufallsziffern vermarktet. Der Nachteil natürlich: Extrem schlecht handzuhaben, wenig Zahlen! Eine (in der Regel aufwändige) Möglichkeit besteht darin, die bekannten echt zufälligen physikalischen Prozess zur Zufallsgewinnung zu nutzen und einen Computer mit einer Maschine zu koppeln, die diese Prozesse in Zufallszahlen verwandelt. Gibt es tatsächlch, teilweise sogar kommerziell! oder random.org stellen Zufallszahlen auf Basis des Photonenspaltexperiments zur Verfügung. Dr. D. Steuer, Tel

75 stellt Zufallszahlen über Geigerzählermessungen zur Verfügung (sogar mit Sound!). Schon der legendäre Mark I Computer (1951) enthielt eine Schaltung, die jeweils 20 Zufallsbits in ein Register der Maschine schrieb, die über einen widerstandsgesteuerten Rauschgenerator erzeugt wurden. Übrigens auf direkte Empfehlung von Alan Turing! Erst moderne CPUs haben heute teilweise wieder Zufallsgeneratoren in Hardware eingebaut, die auf thermischen Schwankungen beruhen. Es werden mehrere überlagerte Wellen möglichst teilerfremder Frequenzen erzeugt und deren Amplituden dann langsam abgetastet. Die Schwingungsfrequenzen der Generatoren schwanken ständig minimal wegen unvermeidlicher Temperaturschwankungen, weshalb man so Zufallszahlen erhalten kann. Der VIA C3 Nehemiah war die erste CPU der neueren Zeit, die ein solches Device eingebaut hatte (2003). Dr. D. Steuer, Tel

76 Eine kuriose Idee aus der Anfangszeit der Rechenmaschinen war, die letzten Nachkommastellen aufwändiger Multiplikationen als Zufallsziffern zu nutzen, da die mechanische Ungenauigkeit so groß war, dass man die letzten Stellen nicht vorhersagen konnte! Für die Verwendung in der Wissenschaft haben diese Zufallsquellen einige prinzipielle Probleme. Die exakten theoretischen Verteilungen der Zufallszahlen können oft nicht angegeben werden. Viel schlimmer: Versuche können nicht wiederholt werden! Das ist deutlich mehr Zufall, als man gebrauchen kann! Forschungsergebnisse sollten unbedingt reproduzierbar sein, auch wenn man stochastische Simulationen durchführt! Dr. D. Steuer, Tel

77 Rein pragmatisch ist es fast unmöglich ein Programm zu debuggen, wenn man nicht an definierte Stellen im Ablauf springen kann. Konzeptionell verabschiedet man sich also von Konzept des echten Zufalls und gelangt zum Pseudozufall. Dr. D. Steuer, Tel

78 Pseudozufall Pseudozufall soll möglichst viele Eigenschaften von richtigen Zufallsgeneratoren bewahren, andererseits aber als deterministisches Programm implementierbar sein. Er muss also als eine Funktion programmierbar sein, die aus einer endlichen Anzahl von Parametern eine neue Zahl berechnen. x n+1 = f(x n,[x n 1,...],sonstige Parameter). Das historisch älteste Beispiel für einen solchen Algorithmus stammt von John von Neumann (1946), einem der Väter des Computers. Dr. D. Steuer, Tel

79 Sein Vorschlag war, eine große Integerzahl zu quadrieren, was die Anzahl der Stellen verdoppelt, und dann nur die jeweils mittleren Ziffern als nächste Zufallszahl zu behalten. Bsp: Ausgehend von gelangt man durch Quadrieren zu Die nächste Zahl wäre dann usw. Stellt sich die Frage, inwiefern eine so deteriministisch erzeugte Zahlenfolge, bei der gilt x n+1 = f(x n ) zufällig sein kann. Tatsächlich ist sie natürlich nicht zufällig. Durch den Startwert und die Abbildungsvorschrift ist die Folge vollständig determiniert! Dr. D. Steuer, Tel

80 Aber: Für praktische Zwecke erscheint sie zufällig oder zumindest zufällig genug! Dieser konkrete Algorithmus von v. Neumann erwies sich als nicht besonders brauchbar. Es kann gezeigt werden, dass es zur Degeneration des Generators kommen kann, so dass kurze Zyklen auftreten. Frage: Können in einem Computer zyklenfreie Generatoren programmiert werden, die nur von einem Vorgängerwert abhängen? Für manche (große) Startwerte funktioniert das Verfahren aber oft gut. John von Neumanns ad hoc Ansatz entspricht nicht dem Wissen, dass heute vorhanden ist, um gute Generatoren zu programmieren. Dr. D. Steuer, Tel

81 Algorithmische Erzeugung gleichverteilter Zufallszahlen Da man, wie später gezeigt wird, aus gleichverteilten Zufallszahlen beliebig verteilte Zufallszahlen erzeugen kann, beschränken wir uns zunächst auf diese. Da Berechnungen mit ganzen Zahlen exakt in Computern durchzuführen sind, spezialisieren wir uns weiter auf die Erzeugung von gleichverteilten Zufallszahlen auf der Folge von ganzen Zahlen 0,...,m. Der Übergang zu stetig gleichverteilten Zufallszahlen gelingt dann durch einfache Division durch m. Sei X eine Zz gemäß der Gleichverteilung auf 0,...,m, so ist U = X/m eine Zz (ungefähr) gemäß der Gleichverteilung auf [0,1]. Dr. D. Steuer, Tel

82 Haken: Das ist natürlich eine Idealisierung! X/m liegt auf einem Gitter mit Gitterweite 1/m! Die Grenze m sollte deshalb hinreichend groß sein! Oft wird m als die größte in der jeweiligen Computersprache darstellbare, ganze Zahl gewählt. Dr. D. Steuer, Tel

83 Minimalexkurs: Der Restklassenkörper Z m. Sei m eine ganze Zahl. Dann ist Z m die mathematische Struktur, wenn man alle Additionen und Multiplikationen der Zahlen 0,...,m 1 betrachtet und alle Ergebnisse modulo m berechnet. Bsp: 4*5 mod 6 = 2 oder 3+3 mod 6 = 0. Es existiert eine reichhaltige mathematische Theorie zu diesen sogenannten Restklassenkörpern. Hier ist nur interessant, dass man auf allen Rechenergebnissen eine modulo-operation durchführt, um die Menge 0,...,m 1 nicht zu verlassen, sowie die Existenz inverser Elemente bzgl. Addition und Multiplikation in Z m. Dr. D. Steuer, Tel

84 Lineare Kongruenzgeneratoren Die heute gebräuchlichen (Pseudo-)Zufallsgeneratoren stammen alle von der Klasse der sogenannten linearen Kongruenzgeneratoren (LKG) ab. Ein linearer Kongruenzgenerator wird durch vier Zahlen vollständig bestimmt. m, die größte Zahl bzw. der Restklassenkörper; 0 < m, a, ein Multiplikator; 0 a < m, c, ein Inkrement; 0 c < m, X 0, ein Startwert (oder seed); 0 X 0 < m. Der Generator erzeugt dann einen Strom von Zzen gemäß der Abbildung X n+1 = (ax n +c) mod m,n > 0. Dr. D. Steuer, Tel

85 Bsp: setzt man m = 10, X 0 = a = c = 7 dann ergeben sich die nächsten Werte zu 7,6,9,0,7,6,9,0... Schon dieses Beispiel zeigt, dass nicht alle so erzeugten Folgen zufällig wirken! Stattdessen erkennt man hier, dass eine Periodenlänge des Generators von 4 vorliegt! Dr. D. Steuer, Tel

86 Aufgabe: Linearer Kongruenzgenerator in R Erstellen Sie (jetzt!) eine Funktion lnkong(), die aus m, a, X n und c eine neue (Pseudo-)Zufallszahl gemäß obiger Beschreibung erzeugt. Überlegen Sie zunächst, wie ein einzelner Schritt in R formuliert werden müsste, verallgemeinern Sie dann zu einer Funktion! Dr. D. Steuer, Tel

87 Lösung: lnkng <- function ( a, m, c, xn) { (a*xn + c )%% m} Verallgemeinern Sie diese Funktion, so dass die Anzahl der zu berechnenden Zufallszahlen als Parameter übergeben werden kann! Dr. D. Steuer, Tel

88 Wahl der Parameter Wie gesehen, ist nicht jede Wahl der Parameter geschickt. Als entscheidend stellt sich die Kombination vom m und a heraus. Zunächst zur Wahl des Moduls m. Es ist leicht zu überlegen, dass selbst, wenn man nur 0 oder 1 wählen möchte, es nicht geschickt ist m = 2 zu setzen. Die zufälligste, mögliche Folge ist dann 0, 1, 0, 1... (Warum?) m sollte also groß gewählt werden! Dr. D. Steuer, Tel

89 Ein Kriterium für die Auswahl ist die Geschwindigkeit, mit der die modulo Operation für das gewählte m auf dem speziellen Rechner durchzuführen ist, die sogenannte Wortlänge. Eine aus technischer Sicht geschickte Wahl ist m = 2 w, wenn w die Anzahl von bits in der Darstellung einer Integerzahl im gewählten Rechner ist. Additionen werden in einer solchen Maschine automatisch modulo m ausgeführt, bei Multiplikationen nutzt man einfach die hintere Hälfte des Ergebnisses. Wegen der bekannten Eigenschaften von Z p, wenn man m als Primzahl wählt, bietet es sich auch an, m als größte Primzahl kleiner als 2 w zu wählen! Dr. D. Steuer, Tel

90 Generell sind Moduloberechnungen im Computer billig durchzuführen. Wenn schon Periodizitäten nicht vermeidbar sind, so ist es immerhin wünschenswert, wenn die Periodenlänge möglichst groß ist. Untersuchungen dazu führen zu Handreichungen, wie a geschickt zu gegebenen m zu wählen ist. Es kann folgendes Theorem bewiesen werden (Knuth, p. 17) Die linear-kongruente Sequenz, welche durch m, a, c und X 0 festgelegt wird, hat die maximale Periodenlänge m genau dann, wenn 1. c teilerfremd zu m ist, 2. a 1 = b eine Vielfaches jeder Primzahl p ist, die m teilt und 3. b ein Vielfaches von 4 ist, wenn m ein Vielfaches von 4 ist. Untersuchungen der Periodizitäten lassen erkennen, dass c = 0 ohne Schaden gewählt werden kann. Dr. D. Steuer, Tel

91 Aufgabe 4: Konstruieren Sie einige linearen Kongruenzgeneratoren(LKG) mit maximaler Periodenlänge. Nutzen Sie dazu die oben erstellte R Funktion und das vorstehende Theorem. Dr. D. Steuer, Tel

92 Lösung der Zusatzaufgabe Erweitern Sie lnkng() um einen Parameter, so dass dass die Anzahl der zurückzugebenden Parameter wählbar ist. Lösung: lnkng <- function (a, m, c, start, n) { result <- rep(na, n) result[1] <- (a*start+ c)%% m for (i in 2:n) result[i] <- (a*result[i-1]+ c) %% m result } Dr. D. Steuer, Tel

93 Weitere Verfeinerungen in der Konstruktion von LKGen Ergebnisse aus der Zahlentheorie schränken die Wahl für gute Parameter weiter ein. Ohne Details (s. Knuth!) gilt: Ist m = 2 e, so muss a = 3 oder a = 5 mod 8 (bei c = 0) gelten. Wählt man m = 10 e,e > 5, so erhält man die maximal mögliche Periode 5 10 e 2 für X 0 kein Vielfaches von 2 oder 5 und a mod 200 ist einer der Werte 3, 11, 13, 19, 21, 27, 29, 37, 53, 59, 61, 67, 69, 77, 83, 91, 109, 117, 123, 131, 133, 139, 141, 147, 163, 171, 173, 179, 181, 187, 189 oder 197. Dr. D. Steuer, Tel

94 Heuteüblichist,m = 2 p 1,pprim,zuwählen,dadieseWahlenzugroßen Periodenlängen führen. Die Zahlen 2 p 1 sind sehr oft Primzahlen, die sogenannten Mersenne-Primzahlen. Die bisher größte gefunden Primzahl ist auch von dieser Art ist mit ca. 13 Mio Stellen! Problem bei allen LKGen ist, dass nach mehr als m entnommenen Zufallszahlen die Zufälligkeit stark abnimmt. Dies ist nur eine Faustregel, in der Literatur findet man auch m/1000 als Grenze. Deshalb wurden Methoden entwickelt, die Ausbeute an Zufallszahlen weiter zu steigern. Dr. D. Steuer, Tel

95 Andere Methoden der Zufallszahlengenerierung Ein verallgemeinerter Ansatz findet sich in den multipel rekursiven Generatoren, die von mehr als einem vorherigen Wert, nämlich einer ganzen Teilmenge der Vergangenheit abhängen: X n = f(x n i1.x n i2,...,). Das älteste Beispiel für einen solchen Ansatz ist der Fibonacci-Generator (1958) X n = (X n 1 +X n 2 ) mod m. Oft gibt dieser sogar Periodenlängen größer als m! Wieso? (Leider scheitert dieser elegante Generator an einfachen statistischen Tests, wie wir noch sehen werden.) Dr. D. Steuer, Tel

96 Andere Verfahren sezten auf die Permutation des Zufallszahlenstroms, den ein Generator erzeugt. Weiterhin gibt es nichtlineare Kongruenzgeneratoren, bspw. Eichenhauer/Lehn (1986) bei dem x n 1 ersetzt wird durch das inverse Element in Z p : x n = ax n 1 +c mod m. oder auch Knuth (1998) mit der naheliegenden Idee eines quadratischen Generators x n = ax 2 n 1+bx n 1 +c mod m. Der aktuell als das Nonplusultra geltende Generator ist ein auf Mersenne- Primzahlen basierender Generator von Makoto Matsumoto und Takuji Nishimura (1996/7) mit Periodenlänge ! Dr. D. Steuer, Tel

97 Dieser heißt auch liebevoll das große Monster oder Twisted Mersenne Twister! Dieser ist auch der Standardgenerator in R! Dr. D. Steuer, Tel

98 Aufgabe: Implementieren Sie den Fibonacci-Generator als R Funktion! Nutzen Sie hier auch das zweistufige Vorgehen. 1. Im ersten Schritt eine Zufallszahl aus zwei gegebenen. 2. Im zweiten Schritt n Zufallszahlen aus zwei Startwerten. Dr. D. Steuer, Tel

99 Lösung: rfib1 <- function ( x1, x2, m) { (x1+ x2) %% m} rfib <- function (n, x1, x2, m) { result <- rep(na, n) result[1] <- rfib1( x1,x2,m) result[2] <- rfib1(result[1], x2, m ) for (i in 3:n) result[i] <- rfib1( result[i-1], result[i-2], m) result } Dr. D. Steuer, Tel

100 Zusatzaufgabe: RANDU Implementieren Sie RANDU! Für RANDU gilt X n+1 = 65539X n mod 2 31,X 0 ungerade. RANDU gilt als der vielleicht schlechteste Zufallsgenerator der je kommerziell vertrieben wurde. Er gehörte zur Standardausstattung von IBM Großrechnern seit den 1960er Jahren, bis in die 1970er hinein. Viele wissenschaftliche Arbeiten der Zeit, die mit Simulationen gearbeitet haben, gelten seitdem als suspekt. Das Hauptproblem ist allerdings ein anderes: Erzeugt man dreidimensionale Punkte, indem man x n,x n+1,x n+2 als Koordinaten eines Punktes in R 3 auf, so liegen alle Punkte auf genau 15 Ebenen! Dr. D. Steuer, Tel

101 Erzeugen Sie Punkte in R 3 mit RANDU und einem guten Startwert (x 0 1) und plotten Sie diese Punkte mit Hilfe des R Paketes scatterplot3d! Können Sie die Ebenen entdecken? Experimentieren Sie mit dem Blickwinkelparameter! Probieren Sie alternativ das Paket rgl! Dr. D. Steuer, Tel

102 Tests auf Zufälligkeit - Vorüberlegungen Wir haben gesehen, dass die menschliche Intuition sehr schlecht ist, um Zufälligkeit zu beurteilen. Der nahe liegende Ausweg sind statistische Tests. Da wir aber nur Mimikry mit dem Zufall betreiben, sagt das Bestehen eines statistischen Tests für einen Zufallsgenerator nichts über das Bestehen eines anderen Test aus. Bestehen bedeutet hier, dass der Erwartungswert einer Teststatistik für die Gleichverteilung gleich dem Erwartungswert der entsprechenden Teststatistik für die von einem Generator erzeugten Pseudozufallszahlen ist. Dr. D. Steuer, Tel

103 In der Praxis testet man einen neuen Generator an einer Serie von Standardtests (5-10). Bewährt sich der Generator in diesen Tests, gilt er als unverdächtig, bis jemand eine Schwachstelle findet. Bespielhaft wird dies am Fibonacci-Generator gezeigt werden. Dr. D. Steuer, Tel

104 Theoretische Tests Einen Generator nur a posteriori beurteilen zu können, ist eine prinzipiell unbefriedigende Situation. Schön wäre, wenn man z.b. für einen linearen Kongruenzgenerator anhand der Paramter direkt seine Güte ablesen könnte. Beispiele für solche Ergebnisse wurden für die Zykluslänge gegeben. Im Laufe der Jahrzehnte konnten (einige) Tests entwickelt werden, die die vollständige Sequenz von Zufallszahlen eines Generators untersuchen. Es scheint theoretisch sehr schwer zu sein, sinnvolle Dinge über kurze Sequenzen von Zufallszahlen in Bezug auf ihre Zufälligkeit auszusagen. Da die Mathematik dieser Tests sehr aufwändig ist, gehen wir hier nicht weiter in die Tiefe. Dr. D. Steuer, Tel

105 Tests auf Zufälligkeit - Allgemeine Tests Die erste Möglichkeit besteht natürlich darin, die allgemein verfügbaren Tests auf Verteilung zu nutzen. Namentlich sind dies der χ 2 -Test und den Kolmogorov-Smirnoff-Test. Zur Erinnerung: χ 2 -Test ist für diskrete Verteilungen, KS-Test für stetige Verteilungen. Durch Diskretisierung kann der χ 2 -Test auch für jede stetige Verteilung genutzt werden. Details siehe Statistik II! Dr. D. Steuer, Tel

106 Beispiel: Das Scheitern des Fibonacci-Generators Der Fibonacci Generator scheitert am KS-Test. > randomfib <- rfib(1000, 1, 1, 31415) > randomfib <- randomfib[901:1000] ### Die ersten 900 Werte werden als sog. burn-in genutzt > ks.test(randomfib, "punif", 0, 31414) One-sample Kolmogorov-Smirnov test data: randomfib D = , p-value = alternative hypothesis: two-sided > ks.test(runif(100), "punif") > plot(ecdf(randomfib)) > lines(seq(0,31414), seq(0,31414)/31414) Dr. D. Steuer, Tel

107 Vergleich der Verteilungsfunktionen Die emp. Verteilungsfunktion des Fibonacci-Generators und die der Gleichverteilung. ecdf(randomfib) Fn(x) x Dr. D. Steuer, Tel

108 Würfeln mit Fibonacci-Zahlen Generiert man mit denselben Fibonacci-Zahlen Würfelwürfe, so bestehen diese den χ 2 -Test! > randomdice <- randomfib %% 6 > table(randomdice) randomdice > chisq.test(c(11,22,13,22,12,20)) Chi-squared test for given probabilities data: c(11, 22, 13, 22, 12, 20) X-squared = 8.12, df = 5, p-value = Dr. D. Steuer, Tel

109 Empirische Tests - ad hoc Methoden Im Folgenden ist (U n ) stets eine Folge von unabhängig identisch auf [0, 1] gleichverteilten Zufallszahlen. Für Tests, die auf ganzen Zahlen operieren, sei (Y n ) = ( du n ), die Folge der auf {0, 1,..., d-1} gleichverteilten ganzen Zahlen, für einen angemessenen Wert von d. Es gibt einen ganze Reihe derartiger Tests. Während der klassische χ 2 -Test jeweils nur einzelne Glieder der Folgen (U n ), bzw. (Y n ) betrachtet, erweitern die folgenden Methoden den Ansatz jeweils auf n-tupel von Folgengliedern, betrachten also mehrere Zufallszahlen mit ihrer gemeinsamen Verteilung. Dr. D. Steuer, Tel

110 Der serial test. Beim Serial-Test betrachtet man Paare von ganzen Zahlen (Y i,y i+1 ),(Y i+2,y i+3 ),... und zählt die Häufigkeit, mit der die Paare (q,r),q,r {0,1,...,d 1} auftreten. Mit diesen Paaren wird dann der klassische χ 2 -Test durchgeführt. Im Wesentlichen handelt es sich also beim Serial-Test um den χ 2 -Test für alle d 2 möglichen Ausprägungen von Paaren erzeugter Zufallszahlen. Der Ansatz lässt sich natürlich auf Tripel, Quadrupel etc. erweitern. Bei der Durchführung muss darauf geachtet werden, dass der realisierte Stichprobenumfang n so groß ist, dass man eine valide χ 2 -Teststatistik erhält. Z. B. n > 5d 2 für Paare. (Besetzung der Zellen!) Dr. D. Steuer, Tel

Lösung Aufgabe 2. Es muss ein Weg gefunden werden, die Länge des längsten Laufs identischer Ziffern zu identifizieren:

Lösung Aufgabe 2. Es muss ein Weg gefunden werden, die Länge des längsten Laufs identischer Ziffern zu identifizieren: Lösung Aufgabe 2 Es muss ein Weg gefunden werden, die Länge des längsten Laufs identischer Ziffern zu identifizieren: maxlaenge

Mehr

Lösung der Zusatzaufgabe

Lösung der Zusatzaufgabe Lösung der Zusatzaufgabe Erweitern Sie lnkng() um einen Parameter, so dass dass die Anzahl der zurückzugebenden Parameter wählbar ist. Lösung: lnkng

Mehr

Erzeugung spezieller Vektoren seq(), rep()

Erzeugung spezieller Vektoren seq(), rep() Erzeugung spezieller Vektoren seq(), rep() > 1:5; 5:1 ### Abstand 1 [1] 1 2 3 4 5 [1] 5 4 3 2 1 > seq(1,5,2/3) ### Abstand!= 1 [1] 1.000000 1.666667 2.333333 3.000000 3.666667 4.333333 5.000000 > seq(along=x)

Mehr

Datenanalyse I und II

Datenanalyse I und II Datenanalyse I und II Datenanalyse I WT 2012 Dr. Detlef Steuer steuer@hsu-hh.de, Tel: 2819, H1 R1373 Rechnergestützte Statistik Helmut-Schmidt-Universität Hamburg 10. Januar 2012 Struktur der Veranstaltung

Mehr

Programmiertechnik II

Programmiertechnik II Zufallszahlen Motivation Simulation Frisörbeispiel Stichprobenauswahl Telefonumfragen Numerische Algorithmen naives Beispiel: Berechnung von Pi Automatisiertes Testen Beispiel aus Übungsaufgabe "Faire"

Mehr

15 Grundlagen der Simulation

15 Grundlagen der Simulation 15 Grundlagen der Simulation 15.1 Einführung Komplexe Problemstellungen, die einer analytischen Behandlung nur sehr schwer oder gar nicht zugänglich sind Lösung von diskreten (oder analytischen) Optimierungsaufgaben,

Mehr

Zufallszahlen. Diskrete Simulation. Zufallszahlengeneratoren - Zufallszahlen

Zufallszahlen. Diskrete Simulation. Zufallszahlengeneratoren - Zufallszahlen Zufallszahlen Zufallszahlengeneratoren Transformation von Zufallszahlen Test von Zufallszahlengeneratoren Otto-von-Guericke-Universität Magdeburg Thomas Schulze Zufallszahlengeneratoren - Zufallszahlen

Mehr

Klaus Schliep. 16. Februar 2004

Klaus Schliep. 16. Februar 2004 Einführung in R Klaus Schliep 16. Februar 2004 Allgemeines R besteht ausschließlich aus Objekten. Die meisten Objekte sind entweder Daten oder Funktionen. Alle Funktionen werden mit runden Klammern geschrieben,

Mehr

Statistische Software (R)

Statistische Software (R) Statistische Software (R) Paul Fink, M.Sc. Institut für Statistik Ludwig-Maximilians-Universität München Verteilungen und Zufallszahlen Übersicht Statistik-Funktionen Funktion mean() median() exp(mean(log(

Mehr

Statistische Software (R)

Statistische Software (R) Statistische Software (R) Paul Fink, M.Sc., Eva Endres, M.Sc. Institut für Statistik Ludwig-Maximilians-Universität München Verteilungen und Zufallszahlen Übersicht Statistik-Funktionen Funktion mean()

Mehr

Lineare Kongruenzgeneratoren und Quicksort

Lineare Kongruenzgeneratoren und Quicksort Seminar Perlen der theoretischen Informatik Dozenten: Prof. Johannes Köbler und Olaf Beyersdorff Lineare Kongruenzgeneratoren und Quicksort Ausarbeitung zum Vortrag Mia Viktoria Meyer 12. November 2002

Mehr

Zufallszahlen Mathematik zum Nachbilden von Zufälligkeit SommerUni 2013 Bergische Universität Wuppertal Autor: Prof. Dr.

Zufallszahlen Mathematik zum Nachbilden von Zufälligkeit SommerUni 2013 Bergische Universität Wuppertal Autor: Prof. Dr. Zufallszahlen Mathematik zum Nachbilden von Zufälligkeit SommerUni 23 Bergische Universität Wuppertal Autor: Prof. Dr. Roland Pulch Aufgabe: Konstruiere Zufallszahlen aus der Menge {,, 2, 3, 4, 5, 6, 7,

Mehr

Pseudozufallsgeneratoren

Pseudozufallsgeneratoren Pseudozufallsgeneratoren In welchen kryptographischen Verfahren werden keine Zufallszahlen benötigt? Wie generiert man Zufallszahlen in einer deterministischen Maschine wie dem Computer? Wenn man eine

Mehr

Zufälle gibt s, oder gibt s die nicht? Martin Köhler Science Café Hamburg, 25. Juni 2014

Zufälle gibt s, oder gibt s die nicht? Martin Köhler Science Café Hamburg, 25. Juni 2014 Zufälle gibt s, oder gibt s die nicht? Martin Köhler Science Café Hamburg, 25. Juni 2014 Grundfrage und Gliederung Gibt es einen echten Zufall, oder wissen wir einfach nicht genug für eine exakte Vorhersage?

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen? Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

7 Zufallszahlen, Simulation

7 Zufallszahlen, Simulation 7 Zufallszahlen, Simulation Es ist nützlich, Folgen von i.i.d. R[0, 1]-verteilten Zufallszahlen auf einem Rechner erzeugen zu können vgl. Simulation, Monte-Carlo-Verfahren). Letztere sind i.a. keine echten

Mehr

Erzeugung von Pseudozufallszahlen mit Computern

Erzeugung von Pseudozufallszahlen mit Computern Erzeugung von Pseudozufallszahlen mit Computern Basisgeneratoren und deren Einfluss auf die Qualität der Ergebnisse Lorenz Hauswald IKTP, TU Dresden 7 Dezember 2011 1 / 26 Gliederung Grundlagen 1 Grundlagen

Mehr

Übersicht deskriptiver Maße & anderer. Nützliche Funktionen. Statistische Software (R) artihmetische Mittel median() mean()

Übersicht deskriptiver Maße & anderer. Nützliche Funktionen. Statistische Software (R) artihmetische Mittel median() mean() Übersicht deskriptiver Maße & anderer nützlicher Funktionen Statistische Software (R) Paul Fink, M.Sc. Institut für Statistik Ludwig-Maximilians-Universität München Pseudo Zufallszahlen, Dichten, Verteilungsfunktionen,

Mehr

Zufallszahlen in AntBrain

Zufallszahlen in AntBrain Zufallszahlen SEP 291 Zufallszahlen in AntBrain Spezifikation, Teil II: Zum Beispiel könnte ein Objekt vom Typ Match die Spielfelder nach jeweils 1000 Spielrunden speichern; bei einer Anfrage nach den

Mehr

IT-Security. Teil 15: Zufall

IT-Security. Teil 15: Zufall IT-Security Teil 15: Zufall 09.05.17 1 Literatur [15-1] http://de.wikipedia.org/wiki/kryptographisch_sicherer_zufallszahlen generator [15-2] https://gnupg.org/documentation/manuals/gcrypt/fips-prng- Description.html

Mehr

Wahrscheinlichkeitsrechnung und Statistik

Wahrscheinlichkeitsrechnung und Statistik 8. Vorlesung Pseudozufallszahlen sind, wie der Name schon sagt, keine echten Zufallszahlen, sondern werden durch Generatoren erzeugt. Als Pseudozufallszahlen bezeichnet man Zahlenfolgen die durch einen

Mehr

Mathematische Computer-Software

Mathematische Computer-Software Mathematische Computer-Software Kommerzielle Computeralgebrasysteme (CAS) Beispiele: Mathematica, Maple, Numerisches und symbolisches Verarbeiten von Gleichungen: Grundrechenarten Ableitung und Integration

Mehr

Nr. 4: Pseudo-Zufallszahlengeneratoren

Nr. 4: Pseudo-Zufallszahlengeneratoren Proseminar: Finanzmathematische Modelle und Simulationen Martin Dieckmann WS 09/0 Nr. 4: Pseudo-Zufallszahlengeneratoren Begriff Pseudo-Zufallszahl Zufallszahlen im Rechner entstehen letztlich immer durch

Mehr

1 Zahlentheorie. 1.1 Kongruenzen

1 Zahlentheorie. 1.1 Kongruenzen 3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern

Mehr

Simulation von Zufallszahlen. Grundlage: zufällige Quelle von Zufallszahlen, durch einfachen rekursiven Algorithmus am Computer erzeugt

Simulation von Zufallszahlen. Grundlage: zufällige Quelle von Zufallszahlen, durch einfachen rekursiven Algorithmus am Computer erzeugt Simulation von Zufallszahlen Grundlage: zufällige Quelle von Zufallszahlen, durch einfachen rekursiven Algorithmus am Computer erzeugt Definition: Eine Folge von Pseudo-Zufallszahlen U i ist eine deterministische

Mehr

Stochastik-Praktikum

Stochastik-Praktikum Stochastik-Praktikum Zufallszahlen und Monte Carlo Peter Frentrup Humboldt-Universität zu Berlin 17. Oktober 2017 (Humboldt-Universität zu Berlin) Zufallszahlen und Monte Carlo 17. Oktober 2017 1 / 23

Mehr

Die grundlegenden Konzepte von R

Die grundlegenden Konzepte von R Die grundlegenden Konzepte von R I R ist ein klassischer Interpreter, der in einer sogenannten read-eval-print-loop arbeitet. I Es wird Zeile für Zeile eingelesen, jeweils bis der Interpreter das Ende

Mehr

Beispiel 37. Wir werfen eine Münze so lange, bis zum ersten Mal

Beispiel 37. Wir werfen eine Münze so lange, bis zum ersten Mal Beispiel 37 Wir werfen eine Münze so lange, bis zum ersten Mal Kopf erscheint. Dies geschehe in jedem Wurf unabhängig mit Wahrscheinlichkeit p. Wir definieren dazu die Zufallsvariable X := Anzahl der Würfe.

Mehr

Einheit 1. Einführung in R. IFAS JKU Linz c 2018 Programmieren mit Statistischer Software 1 0 / 11

Einheit 1. Einführung in R. IFAS JKU Linz c 2018 Programmieren mit Statistischer Software 1 0 / 11 Einheit 1 Einführung in R IFAS JKU Linz c 2018 Programmieren mit Statistischer Software 1 0 / 11 Einführung R ist ein Software-Paket für Statistisches Rechnen und Graphik. Es ist die Open Source Implementierung

Mehr

Wahrscheinlichkeitsrechnung und Statistik

Wahrscheinlichkeitsrechnung und Statistik Babeş-Bolyai Universität Fakultät für Mathematik und Informatik Oktober 2018 Im Alltag... Laut den meteorologischen Vorhersagen wird es morgen regnen. Ob ich riskiere und die Wette verlieren werde? Ich

Mehr

Wichtige Definitionen und Aussagen

Wichtige Definitionen und Aussagen Wichtige Definitionen und Aussagen Zufallsexperiment, Ergebnis, Ereignis: Unter einem Zufallsexperiment verstehen wir einen Vorgang, dessen Ausgänge sich nicht vorhersagen lassen Die möglichen Ausgänge

Mehr

Einführung in die Simulation. Dr. Christoph Laroque Wintersemester 11/12. Dresden,

Einführung in die Simulation. Dr. Christoph Laroque Wintersemester 11/12. Dresden, Fakultät Informatik, Institut für Angewandte Informatik, Professur Modellierung und Simulation Einführung in die Simulation Dr. Christoph Laroque Wintersemester 11/12 Dresden, 11.10.2011 01.11.2011 Einführung

Mehr

06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen

06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen 06 While-Schleifen While-Schleifen 1/7 Wiederholung: Schleifen Eine Schleife ist eine Struktur, welche den Computer anweist, eine Liste von Befehlen mehrmals auszuführen. Falls Du ein Verfahren hast, das

Mehr

Dipl.-Volksw. Markus Pullen Wintersemester 2012/13

Dipl.-Volksw. Markus Pullen Wintersemester 2012/13 Statistische Auswertungen mit R Universität Kassel, FB 07 Wirtschaftswissenschaften Dipl.-Volksw. Markus Pullen Wintersemester 2012/13 Beispiele 2. Sitzung Wertzuweisungen zu Objekten, Vektoren, Matrizen,

Mehr

Primzahlen und Programmieren

Primzahlen und Programmieren Primzahlen Wir wollen heute gemeinsam einen (sehr grundlegenden) Zusammenhang zwischen Programmieren und Mathematik herstellen. Die Zeiten in denen Mathematiker nur mit Zettel und Stift (oder Tafel und

Mehr

Übersicht Statistik-Funktionen. Statistische Software (R) Nützliche Funktionen. Nützliche Funktionen

Übersicht Statistik-Funktionen. Statistische Software (R) Nützliche Funktionen. Nützliche Funktionen Übersicht Statistik-Funktionen Statistische Software (R) Paul Fink, M.Sc. Institut für Statistik Ludwig-Maximilians-Universität München Pseudo Zufallszahlen, Dichten, Verteilungsfunktionen, etc. Funktion

Mehr

Dipl.-Volksw. Markus Pullen Wintersemester 2012/13

Dipl.-Volksw. Markus Pullen Wintersemester 2012/13 Statistische Auswertungen mit R Universität Kassel, FB 07 Wirtschaftswissenschaften Dipl.-Volksw. Markus Pullen Wintersemester 2012/13 Beispiele 1. Sitzung Einstieg, Berechnungen und Funktionen, Zuweisungen

Mehr

Übersicht deskriptiver Maße & anderer. Nützliche Funktionen. Statistische Software (R-Vertiefung) artihmetische Mittel median() mean()

Übersicht deskriptiver Maße & anderer. Nützliche Funktionen. Statistische Software (R-Vertiefung) artihmetische Mittel median() mean() Übersicht deskriptiver Maße & anderer nützlicher Funktionen Statistische Software (R-Vertiefung) Paul Fink, M.Sc. Institut für Statistik Ludwig-Maximilians-Universität München Pseudo Zufallszahlen, Dichten,

Mehr

Übersicht deskriptiver Maße & anderer. Nützliche Funktionen. Statistische Software (R-Vertiefung) artihmetische Mittel median() mean()

Übersicht deskriptiver Maße & anderer. Nützliche Funktionen. Statistische Software (R-Vertiefung) artihmetische Mittel median() mean() Übersicht deskriptiver Maße & anderer nützlicher Funktionen Statistische Software (R-Vertiefung) Paul Fink, M.Sc. Institut für Statistik Ludwig-Maximilians-Universität München Pseudo Zufallszahlen, Dichten,

Mehr

Kryptographische Protokolle

Kryptographische Protokolle Kryptographische Protokolle Lerneinheit 2: Generierung von Primzahlen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2018/2019 15.11.2018 Einleitung Einleitung Diese Lerneinheit

Mehr

1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben?

1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben? Die Themen 1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben? Er sollte von wirklichen Zufallsgeneratoren nicht unterscheidbar sein?! Eine viel zu starke Forderung: Stattdessen sollte ein

Mehr

13 Mehrdimensionale Zufallsvariablen Zufallsvektoren

13 Mehrdimensionale Zufallsvariablen Zufallsvektoren 3 Mehrdimensionale Zufallsvariablen Zufallsvektoren Bisher haben wir uns ausschließlich mit Zufallsexperimenten beschäftigt, bei denen die Beobachtung eines einzigen Merkmals im Vordergrund stand. In diesem

Mehr

Die mathematische Seite

Die mathematische Seite Kellerautomaten In der ersten Vorlesung haben wir den endlichen Automaten kennengelernt. Mit diesem werden wir uns in der zweiten Vorlesung noch etwas eingängiger beschäftigen und bspw. Ansätze zur Konstruktion

Mehr

Marcel Dettling. GdM 2: LinAlg & Statistik FS 2017 Woche 12. Winterthur, 17. Mai Institut für Datenanalyse und Prozessdesign

Marcel Dettling. GdM 2: LinAlg & Statistik FS 2017 Woche 12. Winterthur, 17. Mai Institut für Datenanalyse und Prozessdesign Marcel Dettling Institut für Datenanalyse und Prozessdesign Zürcher Hochschule für Angewandte Wissenschaften marcel.dettling@zhaw.ch http://stat.ethz.ch/~dettling Winterthur, 17. Mai 2017 1 Verteilung

Mehr

Wahrscheinlichkeitsrechnung und Statistik

Wahrscheinlichkeitsrechnung und Statistik 6. Vorlesung - 2018 Diskrete ZG eine diskrete ZG X wird vollständig durch ihre Wahrscheinlichkeitsverteilung beschrieben ( ) x1 x X 2... x i... = p 1 p 2... p i... P(X (a, b]) = und die Verteilungsfunktion

Mehr

1. Grundbegri e der Stochastik

1. Grundbegri e der Stochastik . Grundbegri e der Stochastik Raum der Ereignisse. Die einelementigen Teilmengen f!g heißen auch Elementarereignisse. Das Ereignis A tritt ein, wenn ein! A eintritt. A ist ein geeignetes System von Teilmengen

Mehr

Grundlagen der Monte-Carlo-Simulation

Grundlagen der Monte-Carlo-Simulation Grundlagen der Monte-Carlo-Simulation Prof. Dr. V. Schmidt und S. Luck j 8. November 2007 page 2 Contents Motivation Erzeugung von SPZZ Software Transformation von SPZZ page 3 Motivation Motivation fur

Mehr

Definition: Ein endlicher Ergebnisraum ist eine nichtleere Menge, deren. wird als Ereignis, jede einelementige Teilmenge als Elementarereignis

Definition: Ein endlicher Ergebnisraum ist eine nichtleere Menge, deren. wird als Ereignis, jede einelementige Teilmenge als Elementarereignis Stochastische Prozesse: Grundlegende Begriffe bei zufälligen Prozessen In diesem Abschnitt beschäftigen wir uns mit den grundlegenden Begriffen und Definitionen von Zufallsexperimenten, also Prozessen,

Mehr

Grundlagen der Theoretischen Informatik: Übung 10

Grundlagen der Theoretischen Informatik: Übung 10 Grundlagen der Theoretischen Informatik: Übung 10 Joachim Selke Fachgebiet Theoretische Informatik Universität Hannover 20. Januar 2005 Turing-Maschinen als Rechenmaschinen gegeben sei eine Funktion f

Mehr

73 Hypothesentests Motivation Parametertest am Beispiel eines Münzexperiments

73 Hypothesentests Motivation Parametertest am Beispiel eines Münzexperiments 73 Hypothesentests 73.1 Motivation Bei Hypothesentests will man eine gewisse Annahme über eine Zufallsvariable darauf hin überprüfen, ob sie korrekt ist. Beispiele: ( Ist eine Münze fair p = 1 )? 2 Sind

Mehr

1 Algorithmische Grundlagen

1 Algorithmische Grundlagen 1 Algorithmische Grundlagen Klocke/17.03.2003 1.1 1.1 Begriffsklärung Fragen Begriffsklärungen Abstraktionsebenen für Algorithmen und Datenstrukturen Algorithmus Qualität von Algorithmen Klocke/17.03.2003

Mehr

Modellbildung und Simulation

Modellbildung und Simulation Modellbildung und Simulation 6. Vorlesung Wintersemester 2007/2008 Klaus Kasper Value at Risk (VaR) Gaußdichte Gaußdichte der Normalverteilung: f ( x) = 1 2π σ x e 2 2 x ( x µ ) / 2σ x Gaußdichte der Standardnormalverteilung:

Mehr

WAHRSCHEINLICHKEITSRECHNUNG

WAHRSCHEINLICHKEITSRECHNUNG WAHRSCHEINLICHKEITSRECHNUNG Mathematischer Teil In der Wahrscheinlichkeitsrechnung haben wir es mit Zufallsexperimenten zu tun, d.h. Ausgang nicht vorhersagbar. Grundbegriffe Zufallsexperiment und Ergebnisse

Mehr

Lösungsmenge L I = {x R 3x + 5 = 9} = L II = {x R 3x = 4} = L III = { }

Lösungsmenge L I = {x R 3x + 5 = 9} = L II = {x R 3x = 4} = L III = { } Zur Einleitung: Lineare Gleichungssysteme Wir untersuchen zunächst mit Methoden, die Sie vermutlich aus der Schule kennen, explizit einige kleine lineare Gleichungssysteme. Das Gleichungssystem I wird

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 8. Zufallszahlen Generatoren Anwendungen

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 8. Zufallszahlen Generatoren Anwendungen UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 8 Zufallszahlen Generatoren Anwendungen Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69, A-4040

Mehr

Zufallszahlenerzeugung

Zufallszahlenerzeugung Zufallszahlenerzeugung Anwendunsgebiete: z.b.: - Computerspiele - Kryptographie - Monte-Carlo-Methoden - Simulation Melanie Kaspar, Prof. Dr. B. Grabowski 1 Wie erzeuge ich Zufallszahlen, die sich so verhalten,

Mehr

Simulation von Zufallsvariablen und Punktprozessen

Simulation von Zufallsvariablen und Punktprozessen Simulation von Zufallsvariablen und Punktprozessen 09.11.2009 Inhaltsverzeichnis 1 Einleitung 2 Pseudozufallszahlen 3 Punktprozesse Zufallszahlen Definition (Duden): Eine Zufallszahl ist eine Zahl, die

Mehr

Zufallsvariablen. Erwartungswert. Median. Perzentilen

Zufallsvariablen. Erwartungswert. Median. Perzentilen Zufallsvariablen. Erwartungswert. Median. Perzentilen Jörn Loviscach Versionsstand: 22. Januar 2010, 10:46 1 Zufallsvariablen Wenn ein Zufallsexperiment eine Zahl als Ergebnis liefert, nennt man diese

Mehr

Lineare Algebra I 5. Tutorium Die Restklassenringe /n

Lineare Algebra I 5. Tutorium Die Restklassenringe /n Lineare Algebra I 5. Tutorium Die Restklassenringe /n Fachbereich Mathematik WS 2010/2011 Prof. Dr. Kollross 19. November 2010 Dr. Le Roux Dipl.-Math. Susanne Kürsten Aufgaben In diesem Tutrorium soll

Mehr

Statistik I für Betriebswirte Vorlesung 14

Statistik I für Betriebswirte Vorlesung 14 Statistik I für Betriebswirte Vorlesung 14 Dr. Andreas Wünsche TU Bergakademie Freiberg Institut für Stochastik 13. Juli 017 Dr. Andreas Wünsche Statistik I für Betriebswirte Vorlesung 14 Version: 8. Juli

Mehr

Simulation und Prognose

Simulation und Prognose Simulation und Prognose WT 2012 PD Dr. Gabriel Frahm Tel.: 2791, E-Mail: frahm@hsu-hh.de 20. März 2012 PD Dr. G. Frahm Orgakram Sprechstunde: Jederzeit an den Veranstaltungstagen. Sonst bin ich per E-Mail

Mehr

Lösungsmenge L I = {x R 3x + 5 = 9} = L II = {x R 3x = 4} = L III = { }

Lösungsmenge L I = {x R 3x + 5 = 9} = L II = {x R 3x = 4} = L III = { } Zur Einleitung: Lineare Gleichungssysteme Wir untersuchen zunächst mit Methoden, die Sie vermutlich aus der Schule kennen, explizit einige kleine lineare Gleichungssysteme. Das Gleichungssystem I wird

Mehr

4 Probabilistische Analyse und randomisierte Algorithmen

4 Probabilistische Analyse und randomisierte Algorithmen Algorithmen und Datenstrukturen 96 4 Probabilistische Analyse und randomisierte Algorithmen Bei der Algorithmenanalyse ist es sehr hilfreich, Aspekte berücksichtigen zu können, die vom Zufall abhängen.

Mehr

Statistisches Testen

Statistisches Testen Statistisches Testen Grundlegendes Prinzip Erwartungswert Bekannte Varianz Unbekannte Varianz Differenzen Anteilswert Chi-Quadrat Tests Gleichheit von Varianzen Prinzip des Statistischen Tests Konfidenzintervall

Mehr

3: Zahlentheorie / Primzahlen

3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 96 3: Zahlentheorie / Primzahlen 3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 97 Definition 37 (Teiler, Vielfache, Primzahlen,

Mehr

5. Spezielle stetige Verteilungen

5. Spezielle stetige Verteilungen 5. Spezielle stetige Verteilungen 5.1 Stetige Gleichverteilung Eine Zufallsvariable X folgt einer stetigen Gleichverteilung mit den Parametern a und b, wenn für die Dichtefunktion von X gilt: f x = 1 für

Mehr

WiMa-Praktikum 1. Woche 8

WiMa-Praktikum 1. Woche 8 WiMa-Praktikum 1 Universität Ulm, Sommersemester 2017 Woche 8 Lernziele In diesem Praktikum sollen Sie üben und lernen: Besonderheiten der For-Schleife in Matlab Wiederholung des Umgangs mit Matrizen und

Mehr

Informationssicherheit III

Informationssicherheit III Zufall im Rechner Präsentation im Rahmen der Lehrveranstaltung Informationssicherheit III WS 2001/2002 Jochen Rondorf 17.01.2002 Zufall im Rechner WS 2001/02 1 Agenda Arten von Zufall Anwendungsgebiete

Mehr

Algorithmische Kryptographie

Algorithmische Kryptographie Algorithmische Kryptographie Walter Unger Lehrstuhl für Informatik I 16. Februar 2007 Public-Key-Systeme: Rabin 1 Das System nach Rabin 2 Grundlagen Körper Endliche Körper F(q) Definitionen Quadratwurzel

Mehr

Zufallsvariablen. Diskret. Stetig. Verteilung der Stichprobenkennzahlen. Binomial Hypergeometrisch Poisson. Normal Lognormal Exponential

Zufallsvariablen. Diskret. Stetig. Verteilung der Stichprobenkennzahlen. Binomial Hypergeometrisch Poisson. Normal Lognormal Exponential Zufallsvariablen Diskret Binomial Hypergeometrisch Poisson Stetig Normal Lognormal Exponential Verteilung der Stichprobenkennzahlen Zufallsvariable Erinnerung: Merkmal, Merkmalsausprägung Deskriptive Statistik:

Mehr

Die Familie der χ 2 (n)-verteilungen

Die Familie der χ 2 (n)-verteilungen Die Familie der χ (n)-verteilungen Sind Z 1,..., Z m für m 1 unabhängig identisch standardnormalverteilte Zufallsvariablen, so genügt die Summe der quadrierten Zufallsvariablen χ := m Z i = Z 1 +... +

Mehr

Die Familie der χ 2 (n)-verteilungen

Die Familie der χ 2 (n)-verteilungen Die Familie der χ (n)-verteilungen Sind Z 1,..., Z m für m 1 unabhängig identisch standardnormalverteilte Zufallsvariablen, so genügt die Summe der quadrierten Zufallsvariablen χ := m Z i = Z 1 +... +

Mehr

Programm. Wiederholung. Gleichverteilung Diskrete Gleichverteilung Stetige Gleichverteilung. Binomialverteilung. Hypergeometrische Verteilung

Programm. Wiederholung. Gleichverteilung Diskrete Gleichverteilung Stetige Gleichverteilung. Binomialverteilung. Hypergeometrische Verteilung Programm Wiederholung Gleichverteilung Diskrete Gleichverteilung Stetige Gleichverteilung Binomialverteilung Hypergeometrische Verteilung Wiederholung verschiedene Mittelwerte für verschiedene Skalenniveaus

Mehr

10:Exkurs MATLAB / Octave

10:Exkurs MATLAB / Octave 10:Exkurs MATLAB / Octave MATLAB (bzw. Octave als freie Version) ist eine numerische Berechnungsumgebung wurde vorrangig zum Rechnen mit Vektoren und Matrizen entworfen ist interaktiv benutzbar, vergleichbar

Mehr

Clevere Algorithmen programmieren

Clevere Algorithmen programmieren ClevAlg 2017 Theoretische Informatik Clevere Algorithmen programmieren Dennis Komm, Jakub Závodný, Tobias Kohn 06. Dezember 2017 Die zentralen Fragen sind... Was kann man mit einem Computer nicht machen?

Mehr

Vorlesung Diskrete Strukturen Die natürlichen Zahlen

Vorlesung Diskrete Strukturen Die natürlichen Zahlen Vorlesung Diskrete Strukturen Die natürlichen Zahlen Bernhard Ganter WS 2009/10 Alles ist Zahl? Wenn in der modernen Mathematik alles auf Mengen aufgebaut ist, woher kommen dann die Zahlen? Sind Zahlen

Mehr

1 Grundlagen der Wahrscheinlichkeitsrechnung Wahrscheinlichkeitsräume. Ein erster mathematischer Blick auf Zufallsexperimente...

1 Grundlagen der Wahrscheinlichkeitsrechnung Wahrscheinlichkeitsräume. Ein erster mathematischer Blick auf Zufallsexperimente... Inhaltsverzeichnis 1 Grundlagen der Wahrscheinlichkeitsrechnung 1 1.1 Wahrscheinlichkeitsräume Ein erster mathematischer Blick auf Zufallsexperimente.......... 1 1.1.1 Wahrscheinlichkeit, Ergebnisraum,

Mehr

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II

Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II Matrixzugriff Wir wollen nun unsere Einführung in die Arbeit mit Vektoren und Matrizen in MATLAB

Mehr

Lösung parametrischer Bootstrap

Lösung parametrischer Bootstrap Lösung parametrischer Bootstrap Aus Statistik II ist der Momentenschätzer für die Exponentialverteilung bekannt: ˆλ = 1 x = 1 1 n n 1 x. i Damit ergibt sich der Schätzer ˆλ = 1/mean(x) 0.00289 aus den

Mehr

6. Vorlesung. Rechnen mit Matrizen.

6. Vorlesung. Rechnen mit Matrizen. 6. Vorlesung. Rechnen mit Matrizen. In dieser Vorlesung betrachten wir lineare Gleichungs System. Wir betrachten lineare Gleichungs Systeme wieder von zwei Gesichtspunkten her: dem angewandten Gesichtspunkt

Mehr

Formale Methoden der Ökonomik: Einführung in die empirische Wirtschaftsforschung

Formale Methoden der Ökonomik: Einführung in die empirische Wirtschaftsforschung Übung Formale Methoden der Ökonomik: Einführung in die empirische Wirtschaftsforschung BACHELOR FT 2013 (HSU) Übung Emp. WiFo FT 2013 1 / 17 Organisatorisches (HSU) Übung Emp. WiFo FT 2013 2 / 17 Organisatorisches

Mehr

k np g(n, p) = Pr p [T K] = Pr p [T k] Φ. np(1 p) DWT 4.1 Einführung 359/467 Ernst W. Mayr

k np g(n, p) = Pr p [T K] = Pr p [T k] Φ. np(1 p) DWT 4.1 Einführung 359/467 Ernst W. Mayr Die so genannte Gütefunktion g gibt allgemein die Wahrscheinlichkeit an, mit der ein Test die Nullhypothese verwirft. Für unser hier entworfenes Testverfahren gilt ( ) k np g(n, p) = Pr p [T K] = Pr p

Mehr

Statistik I für Betriebswirte Vorlesung 4

Statistik I für Betriebswirte Vorlesung 4 Statistik I für Betriebswirte Vorlesung 4 Prof. Dr. Hans-Jörg Starkloff TU Bergakademie Freiberg Institut für Stochastik 25. April 2016 Prof. Dr. Hans-Jörg Starkloff Statistik I für Betriebswirte Vorlesung

Mehr

15 Wahrscheinlichkeitsrechnung und Statistik

15 Wahrscheinlichkeitsrechnung und Statistik 5 Wahrscheinlichkeitsrechnung und Statistik Alles, was lediglich wahrscheinlich ist, ist wahrscheinlich falsch. ( Descartes ) Trau keiner Statistik, die du nicht selbst gefälscht hast. ( Churchill zugeschrieben

Mehr

3: Primzahlen. 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen

3: Primzahlen. 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen 3: Primzahlen 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen Definition 40 (Teiler, Vielfache, Primzahlen, zusammengesetzte Zahlen) Seien a, b N. a ist ein Teiler von b ( a b ), falls es ein k N gibt

Mehr

Woche 2: Zufallsvariablen

Woche 2: Zufallsvariablen Woche 2: Zufallsvariablen Patric Müller ETHZ WBL 19/21, 29.04.2019 Wahrscheinlichkeit und Statistik Patric Müller WBL 2019 Teil III Zufallsvariablen Wahrscheinlichkeit

Mehr

Kurze Einführung in R

Kurze Einführung in R Dr. Katharina Best Sommersemester 2011 Kurze Einführung in R WiMa-Praktikum Erste Schritte R wird durch Eintippen von R in der Konsole gestartet. Beendet wird es durch q() oder quit(). Es existieren auch

Mehr

In einem mathematischen Modell wird dies beschrieben durch einen funktionalen Zusammenhang: x = f (t).

In einem mathematischen Modell wird dies beschrieben durch einen funktionalen Zusammenhang: x = f (t). Aktueller Überblick 0 Einführende Worte ( ) 1 Geschichtlicher Überblick ( ) 2 Zufall 3 Perfekte Sicherheit und ihre Grenzen 4 Angriffsszenarien 5 Der komplexitätstheoretische Ansatz 6 Pseudozufallsgeneratoren

Mehr

Übungen mit dem Applet Zentraler Grenzwertsatz

Übungen mit dem Applet Zentraler Grenzwertsatz Zentraler Grenzwertsatz 1 Übungen mit dem Applet Zentraler Grenzwertsatz 1 Statistischer Hintergrund... 1.1 Zentraler Grenzwertsatz... 1. Beispiel Würfeln... 1.3 Wahrscheinlichkeit und relative Häufigkeit...3

Mehr