Mathematik 1 × anders Band 3 Stochastik mit MuPAD Julia Faflek Materialien und Werkzeuge für computerunterstütztes Lernen Julia Faflek Stochastik mit MuPAD Mathematik 1 x anders: Materialien und Werkzeuge für computerunterstütztes Lernen SciFace Software Julia Faflek Universität Paderborn AutoMATH Institut Warburger Straße 100 33095 Paderborn [email protected] Stochastik mit MuPAD/ von Julia Faflek. Mathematik 1 x anders: Materialien und Werkzeuge für computerunterstütztes Lernen, Band 3. Paderborn: SciFace Software GmbH & Co. KG, 2002. SciFace Software GmbH & Co. KG Paderborn Die Publikation einschließlich aller seiner Teile ist urheberrechtlich geschützt. Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung der Firma SciFace Software GmbH & Co. KG unzulässig und strafbar. © 2002 SciFace Software GmbH & Co. KG, Paderborn Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichenund Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürfen. Printed in Germany Druck und Binden: SciFace Software GmbH & Co. KG, Paderborn Einbandgestaltung: SciFace Software GmbH & Co. KG, Paderborn Vorwort Die Entwicklung von MuPAD begann 1990 an der Universität Paderborn mit einem Forschungsprojekt zur Lösung spezieller Problemstellungen im Bereich der Dynamischen Systeme. MuPAD wurde jedoch sehr bald zu einem universellen Werkzeug zum symbolisch-algebraischen und exakten sowie numerischen Rechnen ausgebaut. Darüber hinaus können mit MuPAD zwei- und dreidimensionale mathematische Sachverhalte in hoher Darstellungsqualität visualisiert und interaktiv manipuliert werden. Die Entwicklung von MuPAD wurde bereits 1993 von der Forschungsgemeinschaft mit dem Deutsch-Österreichischen Hochschul-Software Preis und 1994 mit dem European Academic Software Award honoriert. Im Februar 1997 wurde als Teilausgliederung aus der Universität Paderborn das Unternehmen SciFace Software GmbH & Co. KG gegründet, um MuPAD in enger Kooperation mit der MuPAD-Forschungsgruppe weiterzuentwickeln und den zunehmenden Anforderungen der Benutzer u.a. hinsichtlich vielfältiger und mehrsprachiger Dokumentationen zum System und modernen Benutzerschnittstellen gerecht zu werden. Forschungsergebnisse aus der Universität werden von SciFace Software aufgegriffen, zu marktreifen Entwicklungen ausgebaut und in das System MuPAD integriert. Aufgrund dieser erfolgreichen und engen Zusammenarbeit von SciFace Software mit der Universität Paderborn wurde das Unternehmen 1998 mit dem Förderpreis des Technologie Forum Paderborn e.V. für hervorragende Leistungen auf dem Gebiet der Zusammenarbeit zwischen Wirtschaft und Wissenschaft ausgezeichnet. MuPAD wird u.a. zur Forschung und Lehre an Universitäten eingesetzt und findet verstärkt Einzug in den Mathematikunterricht der gymnasialen Oberstufe. MuPAD trägt dabei ergänzend und unterstützend zur Lehre von Mathematik bei. Das starke Interesse und die vielfältigen Tätigkeiten von SciFace Software in dem Bereich der Lehre von Mathematik zeigt sich auch an der engen Zusammenarbeit mit bedeutenden deutschen Verlagen und Herstel- lern von Unterrichtssoftware mit dem Ziel, über gemeinsame Anstrengungen Lösungen zu schaffen, den Schülern und Studenten u.a. einen interaktiven, explorativen Zugang zu mathematischen Sachverhalten und ein Web-unterstütztes Lernen zu ermöglichen. Schreiben Sie uns, wenn Sie Fragen oder Anregungen zum Thema „MuPAD in der Lehre“ haben. Nehmen Sie Teil an der Entwicklung einer modernen Mathematiksoftware und senden Sie uns Ihre Vorschläge, Kritiken und Fragen an [email protected]. Paderborn im September 2002 Dr. Andreas Sorgatz, SciFace Software Über dieses Buch Dieser Band zeigt, wie mit MuPAD Probleme aus der Stochastik gelöst werden können. Dabei werden grundlegende MuPAD-Kenntnisse vorausgesetzt. Daher empfehle ich den ersten Band „Eine praktische Einführung“ aus dieser Reihe, die sich an all diejenigen wendet, die sich für den Einsatz von Computeralgebrasystemen insbesondere im Schulunterricht interessieren. Desweiteren befindet sich am Anfang jedes Kapitels eine Angabe, welche theoretischen Kenntnisse zur weiteren Bearbeitung vorausgesetzt werden, da ich nicht näher auf theoretische Grundlagen eingehe. Zur Vertiefung der vorgestellten Problematik ist es dem Leser möglich, die Aufgaben, die am Ende jedes Kapitels gestellt werden, zu bearbeiten. Die bearbeiteten Themen richten sich im allgemeinen nach dem Lehrstoff gängiger Schulbücher. Jedoch findet man auch Problemstellungen, die über den üblichen Lehrstoff hinausgehen. So werden nicht nur typische Aufgaben gelöst, sondern auch z.B. mit Hilfe der MuPAD plot-Bibliothek stochastische Sachverhalte grafisch veranschaulicht. Besonders zu beachten ist, dass die in Kapitel 3 verwendeten Funktionen der Statistik-Bibliothek erst mit der MuPAD Version 2.5 zur Verfügung stehen. Neben der Implementierung einfacher Prozeduren stellt MuPAD eine Reihe von Funktionen zum Lösen komplexer Sachverhalte zur Verfügung. Dies hilft dem Benutzer, sich auf mathematische Problemlösungsstrategien zu konzentrieren, ohne sich um die technische, algorithmische Umsetzung der Verfahren kümmern zu müssen. Die meisten Methoden, die hier zur Lösung der Probleme vorgestellt werden, sind übertragbar auf ähnliche Aufgabenstellungen. So hoffe ich, dass nicht nur die Möglichkeiten, die MuPAD zur Problembewältigung bereitstellt, kennengelernt werden, sondern darüber hinaus der Leser angeregt wird, seine Kenntnisse im Umgang mit MuPAD zu vertiefen. Julia Faflek Paderborn, September 2002 Inhaltsverzeichnis Vorwort .........................................................................................3 Über dieses Buch ............................................................................5 Inhaltsverzeichnis ...........................................................................7 1. Wahrscheinlichkeiten ................................................................9 1.1 Laplace-Experimente..............................................................9 1.2 Relative Häufigkeiten ........................................................... 10 1.3 Wahrscheinlichkeiten bei Laplace-Experimenten ....................... 13 1.4 Kombinatorik ...................................................................... 17 2. Zufallsgrößen ........................................................................ 20 2.1 Wahrscheinlichkeitsverteilung einer Zufallsgröße ...................... 20 2.2 Erwartungswert, Varianz und Standardabweichung................... 23 3. Spezielle Wahrscheinlichkeitsverteilungen im Statistik-Paket ........ 28 3.1 Binomialverteilung ............................................................... 29 3.2 Poissonverteilung................................................................. 34 3.3 Näherung von DeMoivre-Laplace ............................................ 35 3.4 Tschebyscheff-Ungleichung und Approximationen..................... 39 4. Erzeugung von Zufall.............................................................. 43 4.1 Der lineare Kongruenzgenerator ............................................ 43 4.2 Zufallsreise ......................................................................... 46 4.3 Der Chi - Quadrat –Test........................................................ 50 5. Boxplots ............................................................................... 53 5.1 Schulweg............................................................................ 54 6. Gemischtes aus der Praxis....................................................... 59 6.1 Hochrechnungen und Wahlprognosen ..................................... 59 6.2 Qualitätskontrolle ................................................................ 61 6.3 Lineare Regression und Korrelation ........................................ 63 Literaturverzeichnis ....................................................................... 69 Wahrscheinlichkeiten 9 1. Wahrscheinlichkeiten 1.1 Laplace-Experimente Zum Verständnis dieses Kapitels sollte der Leser mit dem Begriff des Zufalls und des Laplace-Experimentes vertraut sein. In MuPAD können wir Laplace-Experimente mit Hilfe der Funktion random simulieren. Wir betrachten ein einführendes Beispiel, das die Anwendung der Funktion random verdeutlicht: In einer Gruppe von 10 Personen schreibt jeder eine einstellige Zahl auf. Für dieses Zufallsexperiment definieren wir eine Variable Zahl, die für die zufällig notierte Zahl einer Person steht. Um die aufgeschriebenen Zahlen von 10 Personen zu simulieren, schreiben wir den Befehl in eine Schleife und lassen uns jedes Ergebnis durch die Funktion print ausgeben. • Zahl := random(0..9): for i from 1 to 10 do print(Zahl()) end_for 1 0 4 7 8 7 8 8 2 9 10 1.2 Relative Häufigkeiten Wir interessieren uns für das Ereignis A: „Die notierte Zahl ist gerade“. Der Ausdruck a mod 2 liefert den Rest bei Division der Zahl a durch 2. Ist der Rest 0, so war die notierte Zahl gerade. Alternativ kann die Funktion is(a, Type::Even) verwendet werden. Sie liefert true zurück, falls die Zahl a gerade ist. Wir lassen uns das Ergebnis für Ereignis A ausgeben. • for i from 1 to 10 do a := Zahl(): if a mod 2 = 0 then print(a) end_if: end_for 0 0 8 6 So erhalten wir eine Ausgabe, die das Ereignis A protokolliert, wenn 10 Personen Zahlen aufschreiben. Übungen Eine Runde eines Spiels besteht aus zweimaligem Würfeln. Die beiden Augenzahlen werden addiert und man gewinnt, wenn die so erhaltene Zahl gerade ist. Simulieren Sie mit Hilfe der Variablen Wuerfeln eine Runde des Spiels und benutzen Sie die Funktion mod, um zu testen, ob man gewonnen oder verloren hat. 1.2 Relative Häufigkeiten Dem Leser sollte die relative Häufigkeit eines Ereignisses und möglichst auch das Empirische Gesetz der großen Zahlen bekannt sein, bevor dieser Abschnitt bearbeitet wird. Wir führen das Beispiel aus dem vorherigen Abschnitt fort. Nun interessiert uns die relative Häufigkeit für das Ereignis A: „Die Zahl ist gerade“. Dazu schreiben wir eine Prozedur, der wir die Anzahl n der Personen, die mitmachen, übergeben und die uns die relative Häufigkeit für das Er- 1 Wahrscheinlichkeiten 11 eignis A zurückliefert. Um die Ergebnisse der Prozedur für verschiedene n besser miteinander vergleichen zu können, lassen wir uns die relative Häufigkeit mittels des Befehls float in Gleitkommadarstellung ausgeben. • RelativeHaeufigkeit := proc(n) local Zahl, Zaehler, i, a; begin Zahl := random(0..9); Zaehler := 0; for i from 1 to n do a := Zahl(); if a mod 2 = 0 then Zaehler := Zaehler + 1 end_if; end_for; return(float(Zaehler / n)); end_proc proc RelativeHaeufigkeit(n) ... end Wir können mit den Aufrufen • RelativeHaeufigkeit(10) 0.3 • RelativeHaeufigkeit(50) 0.38 • RelativeHaeufigkeit(100) 0.44 die relativen Häufigkeiten für das Ereignis A bestimmen, wenn 10, 50 oder 100 Personen eine Zahl aufschreiben. Je mehr Personen teilnehmen, desto näher liegt die relative Häufigkeit bei 0.5. Dieses Verhalten wollen wir grafisch veranschaulichen. Wir berechnen die relativen Häufigkeiten, wenn 2, 4, 6, 8,..., 500 Personen bei dem Spiel mitmachen. Dazu erzeugen wir eine Sequenz Punkte mittels des $-Operators. Die Elemente der Sequenz sind Listen, in denen die Anzahl der Personen und die dazugehörige relative Häufigkeit eingetragen werden. 12 • 1.2 Relative Häufigkeiten Punkte := [2 * j, RelativeHaeufigkeit(2 * j)] $ j = 1..250: Wir lassen die Liste nicht auf dem Bildschirm erscheinen, da sie aus 250 Listen besteht, die jeweils 2 Einträge haben. Dazu schließen wir die Eingabe mit einem Doppelpunkt ab, um die Ausgabe des Ergebnisses einer interaktiven Berechnung zu unterdrücken. Bei dieser Größe würde die Ausgabe mehr verwirren als veranschaulichen. Mit Hilfe des Befehls plot::Pointlist können wir Punkte grafisch darstellen. Jedes Element von Punkte ist eine Liste [xi, yi] und lässt sich als ein Punkt auffassen, wobei der erste Eintrag den Wert auf der x-Achse und der zweite den Wert auf der y-Achse darstellt. Weiterhin können wir den Punkten mit Hilfe der Option Color eine Farbe zuweisen: • f1 := plot::Pointlist(Punkte), Color = RGB::Grey) plot::Pointlist() Zum Vergleich lassen wir die konstanten Funktionen x=1/2 sowie x=0 und x=1 mittels plot::Function2d zeichnen. Nun fassen wir die vier Funktionen mit dem Befehl plot::Scene in einer Grafik zusammen: • f2 := plot::Function2d(1/2, x f3 := plot::Function2d(0, x f4 := plot::Function2d(1, x Grafik := plot::Scene(f1, f2, plot(Grafik) y = 1..500, Color = RGB::Black): = 1..500, Color = RGB::Black): = 1..500, Color = RGB::Black): f3, f4): 1 0.75 0.5 0.25 0 125 250 375 500 x 1 Wahrscheinlichkeiten 13 Wir können beobachten, dass sich die relativen Häufigkeiten stabilisieren und sich bei großem n dem Wert 0.5 nähern. Formalisiert wird dieses Phänomen im Empirischen Gesetz der großen Zahlen. Übungen Modifizieren Sie die Prozedur RelativeHaeufigkeit so, dass nun die relative Häufigkeit für das Ereignis „Die Zahl ist durch 3 teilbar“ ausgegeben wird. Legen Sie eine Sequenz Punkte an und stellen Sie diese grafisch dar. Berechnen Sie die Wahrscheinlichkeit für das Ereignis und lassen sie diese als konstante Funktion mit in die Grafik plotten. 1.3 Wahrscheinlichkeiten bei Laplace-Experimenten Um die nun folgenden Erläuterungen nachvollziehen zu können, sollte sich der Leser mit der Definition von Wahrscheinlichkeiten bei LaplaceExperimenten vertraut machen, insbesondere auch mit dem Begriff der bedingten Wahrscheinlichkeit. Desweiteren sollte die Unabhängigkeit von Ereignissen bekannt sein. Hier gilt für die Wahrscheinlichkeit P(A) eines Ereignisses A: P( A) = A Ω = Anzahl der für A günstigen Elementarereignisse Anzahl aller möglichen Elementarereignisse Da wir ein Ereignis als Teilmenge des zugehörigen Ergebnisraums auffassen, können wir die Wahrscheinlichkeit eines Ereignisses in MuPAD mittels Mengen umsetzen. Dazu benötigen wir mengentheoretische Operationen wie minus (Differenz), union (Vereinigung) oder intersect (Schnitt). Wir betrachten ein einfaches Beispiel, das beliebig ausgebaut werden kann: Eine Scheibe hat 25 gleichgroße Felder, die mit den Zahlen von 1 bis 25 durchnummeriert sind. Nun wird ein Pfeil auf die Scheibe geworfen, wobei es auch möglich ist, dass der Pfeil die Scheibe verfehlt. Dies bedeu- 14 1.3 Wahrscheinlichkeiten bei Laplace-Experimenten tet, dass man 0 Punkte erhält. Trifft man eins der 25 Felder, so erhält man die Punktzahl, die auf dem Feld steht. Nun definieren wir uns den Ergebnisraum als Menge Scheibe und einige weitere Ereignisse als Teilmengen davon. Ein Spieler gewinnt, wenn die erreichte Punktzahl durch 3 teilbar ist. • Scheibe := {k $ k = 0..25}; Gerade := {2 * k $ k = 0..12}; Ungerade := Scheibe minus Gerade; Gewinn := {3 * k $ k = 1..8}; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25 3, 6, 9, 12, 15, 18, 21, 24 Wir schreiben nun eine Prozedur, die die Wahrscheinlichkeit P(A) eines Ereignisses A zurückgibt. Dazu brauchen wir zwei Eingabeparameter: A für die Menge der Elementarereignisse, bei denen A eintritt und Omega für die Grundmenge. Dazu benötigen wir den Befehl nops, der die Anzahl der Elemente einer Menge bestimmt. • P := proc(A, Omega) local Anzahl; begin Anzahl := nops(A); return(Anzahl / nops(Omega)) end_proc: Nun liefert uns der Aufruf • P(Gewinn, Scheibe) 4 13 die Wahrscheinlichkeit zu gewinnen. Wichtig ist hierbei, dass die Grundmenge immer an zweiter Stelle eingegeben wird und nicht umgekehrt, denn sonst werden falsche Ergebnisse zurückgegeben. 1 Wahrscheinlichkeiten 15 Jetzt können wir in ähnlicher Weise eine Prozedur angeben, die P(A ∩ B) berechnet. Dazu benutzen wir die mengentheoretische Operation intersect, die den Durchschnitt zweier Mengen berechnet: • P_geschnitten := proc(A, B, Omega) local Anzahl; begin Anzahl := nops(A intersect B); return(Anzahl / nops(Omega)) end_proc: Wir erhalten durch • P_geschnitten(Gewinn, Ungerade, Scheibe) 2 13 die Wahrscheinlichkeit P(Gewinn ∩ Ungerade) . Nun können wir auch eine Prozedur für die bedingte Wahrscheinlichkeit schreiben, indem wir die schon definierten Prozeduren verwenden und diese innerhalb einer neuen Prozedur P_bedingt aufrufen. • P_bedingt := proc(A, B, Omega) local p; begin p := P_geschnitten(A, B, Omega); return(p / P(B, Omega)) end_proc: P und p werden von MuPAD erkannt, denn es wird zwischen Groß- und Kleinschreibung unterschieden. Die Reihenfolge der Eingabeparameter ist besonders zu beachten. Geben wir • P_bedingt(Gewinn, Ungerade, Scheibe) 4 13 ein, so erhalten wir die Wahrscheinlichkeit des Ereignis „Gewinn unter der Bedingung Ungerade“. Mit dem Aufruf 16 • 1.3 Wahrscheinlichkeiten bei Laplace-Experimenten P_bedingt(Ungerade, Gewinn, Scheibe) 1 2 dagegen erhält man die Wahrscheinlichkeit für das Ereignis „Ungerade unter der Bedingung Gewinn“. Zwei Ereignisse A und B heißen unabhängig genau dann, wenn P(A|B) = P(A) (⇔ P(B|A) = P(B)). Dies können wir überprüfen, indem wir die uns schon bekannten Prozeduren für die Wahrscheinlichkeit und die bedingte Wahrscheinlichkeit eines Ereignisses benutzen. In MuPAD können wir mittels dem Befehl is (A=B) testen, ob zwei Ausdrücke A und B den gleichen Wert liefern. • is(P(Gewinn, Scheibe) = P_bedingt(Gewinn, Gerade, Scheibe)) false Also sind das Ereignis „Gewinn“ und das Ereignis „Gerade“ nicht unabhängig. Übungen Schreiben Sie eine Prozedur für die Wahrscheinlichkeit P(A ∪ B). Benutzen Sie dabei die mengentheoretische Operation union (Vereinigung), die MuPAD zur Verfügung stellt. Modifizieren Sie das Beispiel so, dass jetzt 5 mal auf die Scheibe geworfen wird. Beachten Sie dabei, dass die Mengen Scheibe, Gerade, Ungerade und Gewinn entsprechend verändert werden müssen. Man kann Unabhängigkeit auch anders überprüfen: Zwei Ereignisse A und B heißen unabhängig genau dann, wenn P(A ∩ B) = P(A) ⋅ P(B). Schreiben Sie eine Prozedur, die als Eingabeparameter A, B und die Grundmenge Omega bekommt und die testet, ob A und B unabhängig sind. Benutzen Sie dabei die Funktionen intersect und is. 1 Wahrscheinlichkeiten 17 1.4 Kombinatorik Für das Verständnis dieses Kapitels sollte der Leser mit den vier verschiedenen kombinatorischen Grundformeln, die auf dem Urnenmodell basieren, vertraut sein. Dieser Abschnitt dient dem Leser dazu, sich mit den MuPAD-Funktionen zum Lösen kombinatorischer Probleme vertraut zu machen. Daher werden nur einführende Beispiele behandelt, die deutlich aufzeigen, dass mit MuPAD die Grenzen eines Taschenrechners überschritten werden können. Jedes der hier aufgeführten Beispiele kann in beliebiger Weise erweitert werden. Wir betrachten zunächst geordnete Stichproben mit Zurücklegen. Aus einer Urne, in der sich 18 unterschiedliche Konsonanten und 2 verschiedene Vokale befinden, wird dreimal ein Buchstabe mit Zurücklegen gezogen. Wie viele Wörter mit 5 Buchstaben sind möglich? • Moegliche := 20^5 3200000 Mit welcher Wahrscheinlichkeit zieht man ein Wort der Länge 5, das nur aus Konsonanten besteht? • Konsonanten := 18^5 / Moegliche 59049 100000 Nun beschäftigen wir uns mit geordneten Stichproben ohne Zurücklegen. Dazu müssen wir die Fakultät einer ganzen Zahl n berechnen, dies erfolgt in MuPAD mittels n! oder fact(n). Wir betrachten das Beispiel von oben und wollen nun wissen, wie viele Wörter mit 5 Buchstaben möglich sind, wenn jeder Buchstabe höchstens einmal vorkommen darf. 18 • 1.4 Kombinatorik 20! / (20 - 5)! 1860480 Jetzt werden wir sehen, wie wir ungeordnete Stichproben ohne Zurücklegen in MuPAD simulieren können. Der Binomialkoeffizient wird mit der Funktion binomial(n, k) bestimmt. Wir betrachten ein weiteres Beispiel: Auf wie viele Arten kann man aus 250 Personen eine Gruppe von 10 Personen auswählen? • binomial(250, 10) 219005316087032475 Eine spezielle Anwendung einer ungeordneten Stichprobe ohne Zurücklegen stellt die Hypergeometrische Verteilung dar. In einer Urne befinden sich N Kugeln, von denen M schwarz und N- M weiß sind. Es werden n Kugeln ohne Zurücklegen gezogen. X beschreibe die Anzahl der schwarzen unter den n gezogenen Kugeln. Dann gilt: M N − M ⋅ k n−k P( X = k ) = für k = 0,1,...,n N n Diese Verteilung ist in dem sogenannten Lottoproblem von großer Bedeutung: Wie groß ist die Wahrscheinlichkeit 6 Richtige zu haben? • Richtige := (binomial(6, 6) * binomial(43, 0)) / binomial(49, 6) 1 13983816 Mittels % greifen wir auf den zuletzt berechneten Wert zu. Durch den Aufruf • float(%) 0.00000007151123842 sehen wir, wie gering diese Wahrscheinlichkeit ist. 1 Wahrscheinlichkeiten 19 Wir können für diese Verteilung auch eine Prozedur schreiben, die die vier Eingabeparameter N, M, n und k erhält und die Wahrscheinlichkeit P(X=k) ausrechnet. • HYG := proc(N, n, M, k) begin (binomial(M, k) * binomial(N - M, n - k)) / binomial(N, n); end_proc: Auf return kann an dieser Stelle verzichtet werden; MuPAD liefert dann den in der Prozedur als letztes berechneten Wert zurück. Damit erhalten wir durch den Aufruf • HYG(49, 6, 6, 6) 1 13983816 die gesuchte Wahrscheinlichkeit. Wir beschäftigen uns nun mit ungeordneten Stichproben mit Zurücklegen. Auch hierzu betrachten wir ein Beispiel: Wie viele Möglichkeiten gibt es, 25 nicht unterscheidbare Würfel aufzuwerfen? • binomial((6 + 25 - 1), 25) 142506 Übungen In einer Schulklasse befinden sich k Schüler. Man fragt sich, mit welcher Wahrscheinlichkeit mindestens 2 Schüler an dem gleichen Tag des Jahres Geburtstag haben und bezeichnet dieses Ereignis mit A. Schreiben Sie nun eine Prozedur Geburtstag für die Wahrscheinlichkeit des Ereignisses A. Übergeben Sie ihr den Wert k und zeichnen Sie mit Hilfe von plot::Pointlist den Graphen der Zuordnung für die Werte k=2,...,80. Was stellen Sie fest? (Tipp: Berechnen Sie die Wahrscheinlichkeit des Gegenereignisses.) 20 2.1 Wahrscheinlichkeitsverteilung einer Zufallsgröße 2. Zufallsgrößen 2.1 Wahrscheinlichkeitsverteilung einer Zufallsgröße Die Definitionen einer Zufallsgröße und deren Wahrscheinlichkeit wird im weiteren als bekannt vorausgesetzt. Zunächst betrachten wir ein einführendes Beispiel. In einer Urne sind 6 weiße und 9 schwarze Kugeln enthalten. Man entnimmt ohne Zurücklegen 4 Kugeln. Die Zufallsvariable X bezeichne die Anzahl der weißen Kugeln unter den gezogenen. Also kann X die Werte 0, 1, 2, 3 und 4 annehmen. Mit den kombinatorischen Formeln erhält man durch folgenden Aufruf die Wahrscheinlichkeit P(X=0). • P0 := binomial(9, 4) / binomial(15, 4) 6 65 Entsprechend werden die Wahrscheinlichkeiten P(X=1), P(X=2) sowie P(X=3) berechnet. • P1 := (binomial(6, 1) * binomial(9, 3)) / binomial(15, 4) 24 65 • P2 := (binomial(6, 2) * binomial(9, 2)) / binomial(15, 4) 36 91 • P3 := (binomial(6, 3) * binomial(9, 1)) / binomial(15, 4) 12 91 2 Zufallsgrößen 21 Schließlich lassen wir uns noch die Wahrscheinlichkeit für X=4 ausgeben • P4 := binomial(6, 4) / binomial(15, 4) 1 91 Nun können wir diese sogenannte Wahrscheinlichkeitsverteilung als Stabdiagramm darstellen. Dazu definieren wir uns eine Sequenz Punkte, in die wir die Werte für X und die dazugehörigen Wahrscheinlichkeiten eintragen. • Punkte := [0, P0], [1, P1], [2, P2], [3, P3], [4, P4] 6 36 24 12 1 0, , 1, , 3, , 2, , 4, 65 91 91 65 91 Wir benutzen den schon bekannten Befehl plot::Pointlist. • p := plot::Pointlist(Punkte, Color = RGB::Black): Mit folgendem Aufruf lassen wir die Punkte mit der x-Achse verbinden. • p::DrawMode := Vertical: plot(p) y 0.4 0.3 0.2 0.1 0 0 1 2 3 4 x So erhalten wir ein Stabdiagramm, an dem wir die Wahrscheinlichkeitsverteilung der Zufallsvariablen X schnell und einfach ablesen können. 22 2.1 Wahrscheinlichkeitsverteilung einer Zufallsgröße Eine weitere grafische Darstellungsweise von Wahrscheinlichkeitsverteilungen ist das Histogramm. Bei obigem Beispiel konnte die Zufallsvariable X die Werte 0,1,..,4 annehmen. Nun wird jedem Wert i ein Intervall der Länge 1 zugeordnet und darüber ein Rechteck der Höhe P(X=i) gezeichnet. In MuPAD erstellen wir Histogramme mittels des Befehls plot::bars. Wir nehmen die Wahrscheinlichkeitsverteilung von oben und lassen diese als Histogramm zeichnen. • plot(plot::bars([[P0, P1, P2, P3, P4]], GridLines = Automatic, Ticks = [None, Steps = 0.1])) 0.4 0.3 0.2 0.1 0 Übungen Ein Spieler wirft zwei ideale Würfel. Sei X die Zufallsvariable, die die Augensumme bezeichnet, und die Zufallsvariable Y gebe das Maximum der geworfenen Augenzahlen an. Berechnen Sie die Wahrscheinlichkeitsverteilung der jeweiligen Zufallsvariablen und stellen Sie diese sowohl als Stabdiagramm wie auch als Histogramm dar. 2 Zufallsgrößen 23 2.2 Erwartungswert, Varianz und Standardabweichung Für das nun Folgende sollte der Leser mit den Begriffen des Erwartungswertes, der Varianz sowie der Standardabweichung vertraut sein. In einem Schokoriegel befindet sich eins von neun verschiedenen Bildern. Eine Person kauft 3 Riegel und öffnet diese. X gebe die Anzahl der unterschiedlichen Bilder an, die man auf diese Weise erhalten kann. Wie viele verschiedene Bilder kann man beim Auspacken der drei Riegel im Durchschnitt erwarten? Dieses Problem werden wir nun durch eine Simulation mit Zufallszahlen lösen. Dazu ziehen wir aus den Zahlen von 1 bis 9 drei zufällige Ziffern und notieren uns die Anzahl X der unterschiedlichen Ziffern. Das ganze wiederholen wir n mal. Danach bilden wir das arithmetische Mittel über die n Werte, die wir für X berechnet haben. Wir schreiben eine Prozedur. • Schokoriegel := proc(n) local Zufallsbild, Riegel1, Riegel2, Riegel3, anzahl, durchschnitt, i; begin Zufallsbild := random(1..9); anzahl := [0 $ n]; for i from 1 to n do Riegel1 := Zufallsbild(); Riegel2 := Zufallsbild(); Riegel3 := Zufallsbild(); if Riegel1 <> Riegel2 then if Riegel2 <> Riegel3 and Riegel1 <> Riegel3 then anzahl[i] := 3 else anzahl[i] := 2 end_if elif Riegel2 <> Riegel3 then anzahl[i] := 2 else anzahl[i] := 1 end_if: /*print(Unquoted, "Es sind " .anzahl[i]. " verschiedene Bilder. "); print(Unquoted, "Die Bilder sind " .Riegel1. ", " .Riegel2. " und " .Riegel3. "."); */ 24 2.2 Erwartungswert, Varianz und Standardabweichung end_for; durchschnitt := stats::mean(anzahl); print(Unquoted, "Durchschnittlich sind " .expr2text(float(durchschnitt)). " Bilder zu erwarten."); end_proc: Die Prozedur legt eine Liste anzahl an, in der die Anzahl der verschiedenen Bilder pro Schleifendurchlauf festgehalten werden. Über diese Liste bilden wir mittels stats::mean das arithmetische Mittel. Die in /* */ eingebetteten Zeilen sind Kommentare, die MuPAD nicht mit in die Berechnung der Prozedur einbezieht. Wenn wir die Kommentarzeichen weglassen, liefern uns diese Zeilen die zusätzlichen Informationen, welche Bilder (simuliert durch Zahlen) pro Schleifendurchlauf vorhanden waren und wie viele verschiedene Bilder darunter waren. Wir lassen uns durch den print Befehl eine Zeichenkette ausgeben, die wir mit Anführungsstrichen kennzeichnen. Damit diese nicht mit ausgegeben werden, benutzen wir die Option Unquoted. Der Aufruf expr2text() bettet die in Klammern gesetzte Variable als Wert in die Zeichenkette ein. Die Ausgabe der Prozedur Schokoriegel sieht –ohne die Kommentarzeichen- dann so aus: • Schokoriegel(10) Es sind 3 verschiedene Bilder. Die Bilder sind 6, 7 und 9. Es sind 2 verschiedene Bilder. Die Bilder sind 6, 1 und 6. Es sind 3 verschiedene Bilder. Die Bilder sind 9, 1 und 7. Es sind 3 verschiedene Bilder. Die Bilder sind 3, 1 und 9. Es sind 2 verschiedene Bilder. Die Bilder sind 5, 5 und 7. Es sind 3 verschiedene Bilder. Die Bilder sind 8, 1 und 7. Es sind 2 verschiedene Bilder. Die Bilder sind 2, 6 und 6. 2 Zufallsgrößen 25 Es sind 2 verschiedene Bilder. Die Bilder sind 7, 5 und 5. Es sind 2 verschiedene Bilder. Die Bilder sind 1, 5 und 1. Es sind 3 verschiedene Bilder. Die Bilder sind 7, 2 und 6. Durchschnittlich sind 2.5 Bilder zu erwarten. Mit Kommentarzeichen liefert der Aufruf • Schokoriegel(20) Durchschnittlich sind 2.8 Bilder zu erwarten. lediglich die durchschnittliche Anzahl der verschiedenen Bilder, wenn man 20 mal den Kauf der drei Schokoriegel simuliert und weiter: • Schokoriegel(100) Durchschnittlich sind 2.7 Bilder zu erwarten. • Schokoriegel(1000) Durchschnittlich sind 2.675 Bilder zu erwarten. Nun wollen wir sehen, wie wir den Erwartungswert in MuPAD berechnen können. Wir schreiben eine Prozedur EW, die als Eingabe eine Liste L erhält, die die Wahrscheinlichkeitsverteilung einer Zufallsvariablen angibt. Die Prozedur basiert genau auf der formelmäßigen Berechnung des Erwartungswertes. • EW := proc(L) local n, summe, i; begin n := nops(L); summe := 0; for i from 1 to n do summe := summe + (L[i][1] * L[i][2]); end_for; return(summe); end_proc: Nun können wir der Prozedur die Wahrscheinlichkeitsverteilung aus dem Beispiel des Schokoriegels übergeben. 26 2.2 Erwartungswert, Varianz und Standardabweichung Es gilt hier P(X=1)=1/81, P(X=2)=24/81 und P(X=3)=56/81. Also definieren wir zuerst eine Liste, die die Wahrscheinlichkeitsverteilung darstellt. • L := [[1, 1/81], [2, 24/81], [3, 56/81]] 1 8 56 1, , 2, , 3, 81 27 81 Nun übergeben wir der Prozedur EW die Liste L. • EW(L) 217 81 • float(%) 2.679012346 Vergleichen wir nun dieses theoretisch berechnete Ergebnis mit den Ergebnissen der Simulation Schokoriegel für große n, so können wir beobachten, dass sich die Werte der Simulation dem theoretischen Erwartungswert annähern. Ähnlich können wir nun mit der Varianz vorgehen. In MuPAD berechnen wir die empirische Varianz von Daten mittels dem Aufruf stats::variance. Wir ersetzen nun in der Prozedur Schokoriegel die Zeilen durchschnitt := stats::mean(anzahl); print(Unquoted, "Durchschnittlich sind " .expr2text (float(durchschnitt)). " Bilder zu erwarten."); durch varianz := stats::variance(anzahl); return(varianz); So erhalten wir die Varianz der simulierten Daten. Andererseits können wir die Varianz wieder in einer Prozedur theoretisch berechnen. • Varianz := proc(L) local n, summe, j, abweichung, produkt; begin 2 Zufallsgrößen 27 n := nops(L); summe := 0; for j from 1 to n do abweichung := (L[j][1] – EW(L))^2; produkt := abweichung * L[j][2]; summe := summe + produkt; end_for; return(summe); end_proc: So erhalten wir mit dem Aufruf • Varianz(L) 1592 6561 die Varianz für die Anzahl der Bilder in den Schokoriegeln. Übungen Schreiben Sie eine Prozedur, die die Standardabweichung berechnet. Benutzen Sie dazu die schon bekannten Prozeduren für den Erwartungswert und die Varianz. Modifizieren Sie mittels des Aufrufs stats::stdev die Prozedur Schokoriegel so, dass nun die Standardabweichung zurückgegeben wird. Rufen Sie die Prozedur für n von 1 bis 300 auf und halten Sie die Ergebnisse in einer Liste mit dem jeweiligen n fest. Lassen Sie sich die Punkte grafisch auf dem Bildschirm ausgeben und zeichnen Sie zum Vergleich die Standardabweichung mit in die Grafik. konstante Funktion der 28 2.2 Erwartungswert, Varianz und Standardabweichung 3. Spezielle Wahrscheinlichkeitsverteilungen im Statistik-Paket In diesem Kapitel werden wir mit der stats-Bibliothek in MuPAD arbeiten. Einige dieser Funktionen sind erst ab der Version MuPAD 2.5 verfügbar. Es ist ratsam, am Anfang jedes Notebooks zuerst den Befehl export(stats) einzugeben, da dann alle Funktionen aus der StatistikBibliothek direkt verfügbar sind. Die folgende Tabelle liefert einen Überblick über einige von MuPAD 2.5 zur Verfügung gestellten Wahrscheinlichkeitsverteilungen: binomialPF diskrete Wahrscheinlichkeitsfunktion der Binomialverteilung (probability function) binomialCDF Verteilungsfunktion der Binomialverteilung (cumulative distribution function) exponentialPDF stetige Dichtefunktion der Exponentialverteilung (probability density function) exponentialCDF Verteilungsfunktion der Exponentialverteilung normalPDF stetige Dichtefunktion der Normalverteilung normalCDF Verteilungsfunktion der Normalverteilung poissonPF diskrete Wahrscheinlichkeitsfunktion der Poissonverteilung poissonCDF Verteilungsfunktion der Poissonverteilung Näheres zu stats können Sie in der MuPAD Online-Hilfe nachlesen. Geben Sie in MuPAD dazu den Befehl ?stats bzw. ?stats::binomialPF ein. 3 Spezielle Wahrscheinlichkeitsverteilungen im Statistik-Paket 29 3.1 Binomialverteilung Die Definition und die praktische Anwendung der Binomialverteilung sowie die Begrifflichkeit des Bernoulli-Experiments werden im folgenden als bekannt vorausgesetzt. Hier gilt für eine Zufallsvariable X, die die Anzahl der Treffer bei n Durchführungen eines Bernoulli-Experimentes angibt, und für eine Erfolgswahrscheinlichkeit p : n P( X = k ) = ⋅ pk ⋅ (1 − p)n−k k Diese Formel können wir in MuPAD durch eine Prozedur berechnen lassen. Ich möchte noch einmal darauf hinweisen, dass im folgenden davon ausgegangen wird, dass der Befehl • export(stats): einmal ausgeführt wurde. Ansonsten müssen die Funktionen in der Form stats::funktion aufgerufen werden. • Bi := proc(n, p, k) begin binomial(n, k) * (p^k) * (1 - p)^(n - k); end_proc: Damit liefert uns der Aufruf • Bi(10, 1/2, 8) 45 1024 die Wahrscheinlichkeit für P(X=8) bei 10 Durchführungen eines Ber- noulli-Experimentes mit der Erfolgwahrscheinlichkeit ½. Ab MuPAD 2.5 steht in der Statistik-Bibliothek die Funktion binomialPF(n, p)(k) zur Verfügung, die das gleiche leistet wie die selbst definierte Prozedur Bi. 30 • 3.1 Binomialverteilung binomialPF(10, 1/2)(8) 45 1024 Wir wollen uns nun im wesentlichen darauf beschränken mit diesen von MuPAD bereitgestellten Funktionen zu arbeiten. Diese helfen uns dabei, auch Aufgaben zu lösen, die sonst nur durch Nachschlagen in einer Tabelle durchzuführen sind. Wir betrachten einen idealen Würfel. Wie oft muss man wenigstens werfen, um mit einer Wahrscheinlichkeit von mehr als 99% mindestens eine Sechs zu erhalten? Sei X die Anzahl der Sechsen. X ist binomialverteilt mit Parametern n und p = 1/6. Also ist nun P(X ≥ 1) ≥ 0.99 zu berechnen. Durch Umformen erhält man folgende Ungleichung 1– P(X < 1) ≥ 0.99 ⇔ 1– P(X = 0) ≥ 0.99. • term := 1 - binomialPF(n, 1/6)(0) 5 n 1 − 6 Wir lösen die obige Ungleichung mit Hilfe des Befehls solve. • solve(term >= 0.99) n ∈ 25.25850627, ∞ So wissen wir, dass mindestens 26 mal gewürfelt werden muss, um mindestens eine Sechs mit 99prozentiger Wahrscheinlichkeit zu erhalten. Nun ist es auch hier von großer Bedeutung, dass wir die Wahrscheinlichkeitsverteilung einer binomialverteilten Zufallsvariable auch graphisch darstellen können. Wir wollen daher eine Prozedur definieren, die ein Stabdiagramm für Zufallsvariablen mit beliebigen Parametern n und p zeichnet. 3 Spezielle Wahrscheinlichkeitsverteilungen im Statistik-Paket • 31 Stabdiagramm := proc(n, p) begin Punkte := [j, binomialPF(n, p)(j)] $ j = 0..n; plot(plot::Pointlist(Punkte, Color = RGB::Black, DrawMode = Vertical)) end_proc: Wir lassen das Stabdiagramm einer binomialverteilten Zufallsvariable mit den Parametern n = 10 und p = 1/2 zeichnen. • Stabdiagramm(10, 1/2) y 0.2 0.15 0.1 0.05 0 0 2.5 5 7.5 10 x Wir wollen nun Stabdiagramme für festes n und wachsendes p betrachten. Dazu benutzen wir eine Schleife und lassen uns pro Schleifendurchlauf ein neues Stabdiagramm zeichnen. Wir setzen n = 10 und p = i/10, wobei i der Schleifenindex ist. Dadurch erreichen wir, dass p in jedem Schleifendurchlauf größer wird. • for i from 1 to 9 do Stabdiagramm(10, i/10) end_for; 32 3.1 Binomialverteilung n = 10, p = 1/10 n = 10, p = 2/10 y y 0.3 0.25 0.3 0.2 0.2 0.15 0.1 0.1 0.05 0 0 2.5 5 7.5 0 10 0 2.5 5 7.5 x 10 x n = 10, p = 3/10 n = 10, p = 4/10 y y 0.25 0.25 0.2 0.2 0.15 0.15 0.1 0.1 0.05 0.05 0 0 2.5 5 7.5 0 10 0 2.5 5 7.5 x n = 10, p = 5/10 n = 10, p = 6/10 y y 0.25 0.2 0.2 0.15 0.15 0.1 0.1 0.05 0.05 0 0 2.5 5 10 x 7.5 10 x 0 0 2.5 5 7.5 10 x 3 Spezielle Wahrscheinlichkeitsverteilungen im Statistik-Paket n = 10, p = 7/10 33 n = 10, p = 8/10 y y 0.3 0.25 0.25 0.2 0.2 0.15 0.15 0.1 0.1 0.05 0 0.05 0 2.5 5 7.5 10 0 0 2.5 x 5 7.5 10 x n = 10, p = 9/10 y 0.3 0.2 0.1 0 0 2.5 5 7.5 10 x Die Graphiken sind zeilenweise von links nach rechts zu betrachten. Wir können nun beobachten, dass bei wachsendem p der Gipfel von links nach rechts wandert. Übungen Schreiben Sie eine Prozedur, die die Wahrscheinlichkeit P(X ≤ a) berechnet, wobei X eine binomialverteilte Zufallsvariable und a eine natürliche Zahl ist. Vergleichen Sie die Ergebnisse dieser Prozedur mit denen der Funktion binomialCDF(n, p)(a). Zeichnen Sie Stabdiagramme für eine feste Wahrscheinlichkeit p und wachsendes n. Was beobachten Sie? 34 3.2 Poissonverteilung 3.2 Poissonverteilung Der Leser sollte die Poissonverteilung und die Approximation der Binomialverteilung durch diese kennen. Wir werden nun grafisch zeigen, dass sich die Binomialverteilung für wachsendes n und kleiner werdendes p der Poissonverteilung annähert, wenn der Erwartungswert der Binomialverteilung ungefähr gleich bleibt. Dazu definieren wir zwei Prozeduren. In der einen wird ein Stabdiagramm für eine binomialverteilte Zufallsvariable erzeugt, in der anderen eins für eine poissonverteilte Zufallsvariable. Wir benutzen die Befehle binomialPF und poissonPF zur Berechnung der jeweiligen Wahrscheinlichkeiten. • Binomial := proc(n, p) local Punkte; begin Punkte := [j, binomialPF(n, p)(j)] $ j = 0..n; plot(plot::Pointlist(Punkte, Color = RGB::Black, DrawMode = Vertical)) end_proc: • Poisson := proc(n, p) local Punkte; begin Punkte := [j, poissonPF(n * p)(j)] $ j = 0..n; plot(plot::Pointlist(Punkte, Color = RGB::Black, DrawMode = Vertical)) end_proc: Nun zeichnen wir die beiden Stabdiagramme der Verteilungen für die Parameter n = 50, p = 0.3 und vergleichen die beiden Graphiken miteinander. • Binomial(50, 0.3); Poisson(50, 0.3) 3 Spezielle Wahrscheinlichkeitsverteilungen im Statistik-Paket Binomialverteilung 35 Poissonverteilung y y 0.1 0.1 0.075 0.075 0.05 0.05 0.025 0.025 0 0 12.5 25 37.5 50 0 0 12.5 25 37.5 x 50 x Wir beobachten, dass die beiden Graphiken fast gleich sind. So sehen wir grafisch, dass die Binomialverteilung durch die Poissonverteilung approximiert werden kann. Dies ist nützlich, wenn man z.B. nur einen Taschenrechner zur Verfügung hat, mit dem man die Wahrscheinlichkeiten einer binomialverteilten Zufallsgröße für sehr große Werte n nicht mehr berechnen kann. Übungen Eine Buchbestellung besteht aus 5000 Büchern, von denen 100 einen beschädigten Einband besitzen. Berechnen Sie die Wahrscheinlichkeit, dass unter 500 zufällig (ohne Zurücklegen) herausgenommenen Büchern genau zwanzig einen defekten Einband besitzt. Nun approximieren Sie diese mittels der Binomialverteilung. Anschließend nähern Sie die so berechneten Wahrscheinlichkeiten mit Hilfe der Poissonverteilung. 3.3 Näherung von DeMoivre-Laplace Wir wollen nun das Verhalten des Stabdiagramms der Binomialverteilung bei festem p und wachsendem n untersuchen. Wir werden feststellen, dass das Stabdiagramm immer flacher und breiter wird je größer das n ist. Wir schreiben eine Prozedur, mit der bei Eingabe von n und p eine Glocke der binomialverteilten Zufallsvariable gezeichnet werden kann. Zum Zeichnen der Glocke verwenden wir wieder die Funktion plot::Pointlist 36 3.3 Näherung von DeMoivre-Laplace und die zusätzliche Option DrawMode=Connected, die die Stäbe miteinander verbindet. • Glocke := proc(n, p) local Punkte; begin Punkte := [j, binomialPF(n, p)(j)] $ j = 0..n; plot::Pointlist(Punkte, Color = RGB::Black, DrawMode = {Vertical, Connected}) end_proc: Nun erhalten wir mit dem Aufruf • plot(Glocke(10, 1/2)) y 0.2 0.15 0.1 0.05 0 0 2.5 5 7.5 10 x die gewünschte Glocke der Verteilung mit den Parametern n = 10 und p = 1/2. Um den Zusammenhang zwischen den Parametern und der Form der Glocke zu erkennen, zeichnen wir drei Glocken in eine Graphik. • plot(Glocke(4, 0.5), Glocke(16, 0.5), Glocke(64, 0.5)) 3 Spezielle Wahrscheinlichkeitsverteilungen im Statistik-Paket 37 y 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 0 12.5 25 37.5 50 62.5 x Bei genauerem Betrachten dieser Graphik fällt auf, dass sich die Glockenhöhe bei jedem Übergang ungefähr halbiert und die Breite wird ungefähr verdoppelt. Im Vergleich zu den Parametern können wir folgenden Zusammenhang feststellen: Die Gipfelhöhe wird durch den Faktor 1/Standardabweichung verkleinert und die Breite wird mit der Standardabweichung multipliziert. Um dieses Verhalten auszugleichen, standardisieren wir die binomialverteilte Zufallsvariable, das heißt wir setzen für die Werte auf der x-Achse x = (j – µ)/σ und für die y-Werte y = σ ⋅ binomialPF(n,p)(j), wobei σ die Standardabweichung und µ den Erwartungswert bezeichnet. Wir verändern die Prozedur Glocke wie folgt: • Glocke := proc(n, p) local mue, sigma, Punkte; begin mue := n * p; sigma := sqrt(n * p * (1 - p)); Punkte := [(j - mue) / sigma, sigma * binomialPF(n,p)(j)] $ j = 0..n; plot::Pointlist(Punkte, Color = RGB::Black, DrawMode = {Vertical, Connected}); end_proc: Damit können wir nun Glocken zeichnen lassen, deren Gipfel sich auf der y-Achse befindet und die alle ungefähr die gleiche Fläche unter der Glocke beschreibe. 38 • 3.3 Näherung von DeMoivre-Laplace plot(Glocke(4, 0.5), Glocke(16, 0.5), Glocke(64, 0.5)) y 0.4 0.3 0.2 0.1 0 -7.5 -5 -2.5 0 2.5 5 7.5 x Die so erzeugten Glocken nähern sich der sogenannten Gauß-Glocke an. Zum direkten Vergleich zeichnen wir die Gauss-Funktion. Dazu greifen wir mittels normalPDF(0, 1) auf die Dichtefunktion der Standardnormalverteilung zurück, welche die Gauß-Glocke liefert. • f := normalPDF(0, 1) proc f(x) ... end • plot(plot::Function2d(f(x), x = -7.5..7.5, Color = RGB::Black)); plot(Glocke(4, 0.5), Glocke(16, 0.5), Glocke(64, 0.5)) Gauß-Glocke y standardisierte Binomialverteilung 0.4 y 0.3 0.3 0.2 0.2 0.1 0.1 0 -7.5 -5 -2.5 0.4 0 0 2.5 5 7.5 -7.5 -5 -2.5 0 2.5 5 x 7.5 x Diese Grafiken zeigen deutlich, dass die Binomialverteilung für große Werte n durch die Normalverteilung approximiert werden kann. 3 Spezielle Wahrscheinlichkeitsverteilungen im Statistik-Paket 39 Übungen Angenommen die Reichweit eines Pkw mit vollem Tank hat einen Erwartungswert von 500 km und eine Standardabweichung von 11 km. Wie hoch ist das Risiko unter Annahme einer Normalverteilung, unterwegs stehen zu bleiben, wenn man eine Strecke von 480 km ohne nachzutanken fahren möchte? Berechnen sie die maximal zulässige Entfernung zwischen zwei Tankstellen, wenn man nur ein Risiko von 2% eingehen möchte, stehen zu bleiben. 3.4 Tschebyscheff-Ungleichung und Approximationen Für das weitere Verständnis dieses Abschnitts sollte der Leser mit der Ungleichung von Tschebyscheff und der Normalapproximation vertraut sein. Wir würfeln 1000 mal mit einem idealen Würfel. Sei X die Anzahl der Sechsen. Wie groß ist die Wahrscheinlichkeit höchstens 450 Sechsen zu würfeln? Wir berechnen zunächst die exakte Wahrscheinlichkeit mit Hilfe der Funktion binomialCDF. • P_450 := float(binomialCDF(1000, 1/2)(450)) 0.0008652680425 Wir wollen nun einmal sehen, wie sehr sich die unterschiedlichen Approximationsmethoden in ihrer Güte unterscheiden. Eine erste Näherung wollen wir mit Hilfe der Poissonverteilung erzielen. • float(poissonCDF(1000 * 1/2)(450)) 0.01240835055 Wir sehen, dass diese Näherung doch sehr stark von dem exakten Wert abweicht. 40 3.4 Tschebyscheff-Ungleichung und Approximationen Nun approximieren wir die Wahrscheinlichkeit P(X ≤ 450) mittels der Tschebyscheff-Ungleichung d i P X−µ ≥a ≤ σ2 a2 , wobei µ den Erwartungswert und σ die Standardabweichung bezeichnet. Dazu gehen wir folgenderweise vor: P ( X ≤ 450) = P ( X − µ ≤ 450 − µ ) ≤ P ( X − µ ≥ 450 − µ ) ≤ σ2 450 − µ 2 Zu berechnen ist also • sigma := sqrt(1000 * 1/2 * 1/2): mue := 1000 * 1/2: Schranke := (sigma^2) / (abs(450 – mue))^2 1 10 Der so berechnete Wert ist zwar schon etwas näher an der exakt berechneten Wahrscheinlichkeit. Die Abweichung ist dennoch sehr groß: • abs(P_450) – Schranke) 0.09913473196 Daher versuchen wir jetzt die Normalapproximation und benutzen die Verteilungsfunktion der Normalverteilung. Mittels des Aufrufs nor- malCDF(m, v)(x) wird der Wert an der Stelle x der Verteilungsfunktion einer normalverteilten Zufallsvariable mit Erwartungswert m und Varianz v berechnet. • float(normalCDF(0, 1)((450 - mue) / sigma)) 0.000782701129 Dieser Wert kommt schon viel näher an das tatsächliche Ergebnis heran. Eine weitere Verbesserung erreichen wir, indem wir eine Stetigkeitskorrektur vornehmen. Wir nutzen aus, dass folgendes gilt: P(X ≤ k) = P(X < k + 1) = P(X < k + ½) Und berechnen nun 3 Spezielle Wahrscheinlichkeitsverteilungen im Statistik-Paket • 41 float(normalCDF(0, 1)((450.5 - mue) / sigma)) 0.0008720849937 Der so berechnete Wert liegt schon sehr nah an der tatsächlichen Wahrscheinlichkeit. Dieses Vorgehen liefert also brauchbare Näherungswerte für die Wahrscheinlichkeit einer binomialverteilten Zufallsvariable. Eine weitere interessante Problemstellung ist: Wie oft muss man einen idealen Würfel werfen, damit der Mittelwert der Augenzahlen mit einer Wahrscheinlichkeit von mindestens 0.99 um weniger als 1% vom Erwartungswert abweicht? Sei im weiteren X eine Zufallsvariable, die die Summe der Augenzahlen bei n Würfen angibt. Der Erwartungswert bei einmaligem Würfeln beträgt bekanntlich 3.5 und die Varianz gerundet 2.917. Diese Werte können mit den Prozeduren aus dem Kapitel über den Erwartungswert und die Varianz berechnet werden. Demnach ist E(X) = n ⋅ 3.5 der Erwartungswert von X und Var(X) = n ⋅ 2.917 die Varianz von X. Zu berechnen ist nun die Wahrscheinlichkeit: P(|X – n ⋅ 3.5| < n ⋅ 0.01) ≥ 0.99 Zunächst schätzen wir die Wahrscheinlichkeit mit Hilfe der TschebyscheffUngleichung ab: P(|X – n⋅ 3.5|< n ⋅ 0.01) = 1 – P(|X – n ⋅ 3.5| ≥ n ⋅ 0.01) ≥ 1 – Var(X)/(n ⋅ 0.01)2 In MuPAD setzen wir das wie folgt um: • E_X := n * 3.5: Var_X := n * 2.917: Schranke := 1 – Var_X / (n * 0.01)^2 29170.0 1 − n Wir wollen, dass n eine positive ganze Zahl ist. Dazu benutzen wir den Aufruf: 42 • 3.4 Tschebyscheff-Ungleichung und Approximationen assume(n, Type::PosInt) : Nun lösen wir folgende Gleichung: • solve(Schranke >= 0.99) n ∈ [2917000.0, ∞) ∩ Z Jetzt wissen wir, dass man mindestens 2917000 mal würfeln muss, damit der Mittelwert der gewürfelten Augenzahlen mit 99%iger Wahr- scheinlichkeit nicht mehr als 0.01 vom Erwartungswert abweicht. Übungen Eine alternative Approximation von Wahrscheinlichkeiten basiert auf folgender Näherung: a⋅ n − 1, P ( h − p ≤ a) ≈ 2 ⋅ Φ p (1 − p) wobei h die relative Häufigkeit eines Ereignisses, p dessen Wahrscheinlichkeit und n die Anzahl der Versuchsdurchführungen bezeichnet. Benutzen Sie diese Formel um zu bestimmen, wie oft man einen idealen Würfel werfen muss, damit der Mittelwert der Augenzahlen mit einer Wahrscheinlichkeit von 0.99 um weniger als 1% vom Erwartungswert abweicht. Berechnen Sie die Wahrscheinlichkeiten P(X ≤ k), k = 0..1000 für eine binomialverteilte Zufallsgröße X mit Parametern n = 1000 und p = 1/8 und für die poissonverteilte Zufallsvariable mit m = 1000 ⋅ 1/8. Stellen Sie die beiden Wahrscheinlichkeitsverteilungen in einer Grafik dar (Stabdiagramm, Histogramm o.ä.) und berechnen Sie die maximale Abweichung dieser Approximation. 4 Erzeugung von Zufall 43 4. Erzeugung von Zufall In den folgenden Kapiteln wird grundlegendes Wissen über Testverfahren, wie der Chi-Quadrat-Test, sowie Pseudozufall vorausgesetzt. 4.1 Der lineare Kongruenzgenerator Wir wollen selbst versuchen Zufall zu erzeugen. Wir können Zufall nur simulieren, d.h. wir geben Zahlen aus, die zufällig zu sein scheinen. Sie können jedoch niemals wirklich zufällig sein, da wir die Zahlen berechnen. Daher spricht man auch von „Pseudozufall“. Der hier vorgestellte lineare Kongruenzgenerator erzeugt eine Folge von Zahlen, die zufällig aussehen sollen. Wir haben 3 natürliche Zahlen a, b und n sowie eine „Saat“ x0, d.h. eine beliebige Startzahl, die in den Generator zum Beginn der Berechnung eingegeben wird. Nun wird durch folgende Berechnungsvorschrift iterativ eine Zahlenfolge generiert: xi =(a ⋅ xi-1 + b) mod n, für i ≥ 1 Damit ist festgelegt, dass die erzeugten Zahlen nur zwischen 0 und n-1 liegen können. Wie zufällig die berechneten Zahlen aussehen hängt von der Wahl der Parameter ab. Wir definieren nun eine Prozedur, die eine Ausgabe der Länge m eines linearen Kongruenzgenerators für beliebige Parameter a, b, n und x0 berechnet. • LKG := proc(x0, a, b, n, m) local x, i; begin x := [0 $ m]; x[1] := x0; for i from 2 to m do x[i] := (a * x[i - 1] + b) mod n; end_for; return(x); end_proc: Übergeben wir der Prozedur nun die Saat x0 = 1 und die Parameter a = 2, b = 3, n = 13, so erhalten wir folgende Ausgabe. 44 • 4.1 Der lineare Kongruenzgenerator LKG(1, 2, 3, 13, 30) 1, 5, 0, 3, 9, 8, 6, 2, 7, 4, 11, 12, 1, 5, 0, 3, 9, 8, 6, 2, 7, 4, 11, 12, 1, 5, 0, 3, 9, 8 Wir können erkennen, dass die Folge zyklisch ist. Nach jeweils 12 Zahlen wiederholen sich die Zahlen in gleicher Reihenfolge. Damit ist klar, dass diese Wahl der Parameter nicht sehr glücklich war. Denn schaut man kurz auf die ausgegebene Liste der Zahlen, so erkennt man sofort, dass die Folge berechnet worden und keinesfalls zufällig ist. Ein besseres Ergebnis erhält man bei Eingabe der folgenden Parameter: • LKG(143, 1896, 467, 1301, 30) [143, 987, 981, 13, 396, 606, 660, 265, 721, 132, 947, 599, 398, 495, 966, 195, 703, 1131,795, 1229, 560, 611, 1033, 1030, 546, 87, 192, 219, 672, 900, 1256, 1013, 839, 88, 787,372, 637, 891, 1105, 937, 1154, 169, 845, 1056, 404, 162, 583, 1286, 649, 225] Diese Zahlenfolge sieht zufällig aus. Die so erzeugten Pseudozufallszahlen zwischen 0 und 1300 werden nun zu Pseudozufallszahlen aus dem Intervall [0, 1[ transformiert, indem wir jedes Listenelement durch 1301 teilen. Wir wollen nun graphisch veranschaulichen, wie zufällig diese transformierten Zahlen tatsächlich sind und damit zugleich einfache visuelle Tests für Zufallsgeneratoren vorstellen. Je zwei aufeinanderfolgende Listenelemente fassen wir als einen Punkt in der Ebene auf. Demnach liegen alle Punkte im Einheitsquadrat, da jedes Element aus [0, 1[ ist. Wir legen also eine Liste an, die um ein Element kleiner ist als die Liste, die beim Aufruf von LKG ausgegeben wird, da wir jeweils zwei aufeinanderfolgende Elemente als ein Element der neuen Liste auffassen. • L := LKG(143, 1896, 467, 1301, 500): Punkte := [L[i] / 1301, L[i + 1] / 1301] $ i = 1..499: • plot(plot::Pointlist(Punkte, Color = RGB::Black)) 4 Erzeugung von Zufall y 45 1 0.75 0.5 0.25 0.25 0.5 0.75 1 x Die Punkte scheinen ziemlich gleichverteilt im Einheitsquadrat zu liegen. Wir nehmen daher an, dass der lineare Kongruenzgenerator mit obigen Parametern ziemlich „guten“ Zufall simuliert. Zum Vergleich stellen wir auch den ersten Generator mit den Parametern a = 2, b = 3 und n = 13 graphisch dar: y 0.8 0.6 0.4 0.2 0 0 0.2 0.4 0.6 0.8 x Hier sehen wir, dass die sogenannte Güte eines linearen Kongruenzgenerators entscheidend von der Wahl der Parameter abhängt. Wir werden noch weitere Kriterien kennenlernen, mit denen wir testen können, wie zufällig die Ausgaben wirklich sind. 46 4.2 Zufallsreise Übungen Testen Sie den Linearen Kongruenzgenerator mit anderen Parametern und stellen Sie die Ausgaben grafisch dar. 4.2 Zufallsreise Der hier beschriebene Test ist so wie der oben kennengelernte Test visuell. Er basiert auf sogenannten Turtle-Grafiken. Die Idee die dahinter steckt ist folgende: Eine Schildkröte befindet sich auf dem Bildschirm und erhält Anweisungen in welche Richtung sie sich bewegen soll. Sie kann nach oben, nach unten, nach rechts und nach links laufen. Dabei hinterlässt sie Spuren, d.h. auf dem Bildschirm sind Linien zu sehen, die angeben, wie die Schildkröte gelaufen ist. Wir werden uns nun wieder darauf beschränken Pseudozufallszahlen aus dem Intervall ]0, 1[ zu betrachten. Sei zn so eine Zahl, dann wird sie durch die Vorschrift tn = [4 ⋅ zn] + 1 in eine ganze Zahl zwischen 1 und 4 transformiert. Die Zahl in den eckigen Klammern wird zu der nächst kleineren ganzen Zahl abgerundet. Diese Funktion können wir in MuPAD mit dem Befehl floor simulieren. Den 4 Zahlen ordnen wir nun Richtungen zu, in die die Schildkröte laufen soll. Wir legen fest, wenn tn = 1, dann soll die Schildkröte nach oben laufen, bei tn = 2 nach rechts, tn = 3 steht für eine Bewegung nach unten und falls tn = 4 soll die Schildkröte eine Bewegung nach links machen. In MuPAD steht dazu der Befehl plot::Turtle bereit. Mit den Kommandos T::left(g) und T::right(g) befehlen wir der Schildkröte T sich um g Grad nach links bzw. nach rechts zu drehen. T::line(l) sagt der Schildkröte, dass sie einen Weg der Länge l zurück- legen soll. Wir definieren eine Prozedur Zufallsreise, die eine gegebene Liste von Zufallszahlen zwischen 0 und 1 als Laufvorschriften für die Schildkröte T wie oben beschrieben interpretiert und diese visualisiert. Durch eine case-Anweisung geben wir der Schildkröte die entsprechenden Befehle. 4 Erzeugung von Zufall • 47 RandomWalk := proc(ZahlenListe:DOM_LIST) local T; begin T := plot::Turtle(): T::color(RGB::Black): for i from 1 to nops(ZahlenListe) do Richtung := floor(4 * ZahlenListe[i]) + 1; case (Richtung) of 1 do /*T::right(0)*/ T::line(1); break; of 2 do T::right( 90): T::line(1); break; of 3 do T::right(180): T::line(1); break; of 4 do T::right(270): T::line(1); break; otherwise error(“Ungültiger Wert in Zahlenliste”); end_case: end_for: plot(T, Axes = None) end_proc: Wir testen nun den MuPAD-Zufallsgenerator random, indem wir die Zufallsreise für zwei Zufallsfolgen durchführen. Dazu erzeugen wir 1000 zufällige Zahlen zwischen 1 und 99 und teilen diese durch 100. • Zufall := random(1..99): randomWalk([Zufall()/100 $ i = 1..1000]): randomWalk([Zufall()/100 $ i = 1..1000]): 48 4.2 Zufallsreise Die so erhaltenen Grafiken scheinen zufällig zu sein, da man keine Strukturen oder Bewegungsmuster erkennen kann. Zur Unterstützung dieser Annahme wollen wir auch den „schlechten“ linearen Kongruenzgenerator aus dem vorherigen Abschnitt auf diese Weise überprüfen. Auch dazu müssen wir die Ausgaben des Generators wieder normieren, indem wir durch den Maximalwert teilen. Dies realisieren wir mit dem Befehl map(LKG(x0, 2, 3, 97, n), `/`, 97), der alle Elemente der ausgege- benen Liste des Generators durch 97 teilt. Damit wir eine Zahlenliste erhalten, schreiben wir eine kleine Prozedur: • Zufall := proc(x0, n) local Liste; begin Liste := map(LKG(x0, 2, 3, 97, n), `/`, 97): 4 Erzeugung von Zufall 49 return(Liste); end_proc: Wir prüfen wieder zwei zufällige Folgen: • randomWalk(Zufall(1, 1000)): randomWalk(Zufall(4, 1000)): In diesen Grafiken können wir deutlich Bewegungsmuster erkennen. Zur weiteren Kontrolle können wir auch die Graphiken erneut erzeugen lassen. Wir werden dann feststellen, dass der randomWalk, der als Eingabe Zahlen des Zufallsgenerators random erhält immer unterschiedliche Grafiken erzeugt, der mit den Eingaben des linearen Kongruenzgenerators dagegen immer das gleiche Muster. Daher nehmen wir an, dass die Funktion 50 4.3 Der Chi - Quadrat –Test random in MuPAD „guten“ Zufall simuliert, das heißt die Ausgaben dieser Funktion sind nicht direkt von echtem Zufall zu unterscheiden. 4.3 Der Chi - Quadrat –Test Wir werden nun einen Test kennenlernen, der nicht mehr auf visuellen Beobachtungen basiert, sondern auf theoretischen Erkenntnissen. Mit diesem Test können wir überprüfen, ob die Ausgaben eines Zufallsgenerators gleichverteilt sind. Wir wollen erneut die Funktion random in MuPAD testen. Dazu simulieren wir 600maliges Würfeln, berechnen die absolute Häufigkeit der sechs möglichen Zahlen und speichern diese in einer Tabelle: • Wuerfel := random(1..6): Experiment := [Wuerfel() $ i = 1..600]: H := table(): for i from 1 to 6 do H[i] := nops(select(Experiment, Wurf -> Wurf = i)) end_for: H 6 5 4 3 2 1 = = = = = = 105 104 117 96 90 88 Bei einer Gleichverteilung wären im Mittel für jede der sechs Zahlen jeweils 100 Würfe zu erwarten gewesen. In unserem Experiment jedoch schwanken die Häufigkeiten zwischen 88 und 117. Die Frage ist nun, ob diese beobachteten Schwankungen noch im Rahmen der „normalen“ Schwankungen einer Gleichverteilung liegen oder ob sie so stark sind, dass man die Hypothese einer Gleichverteilung verwerfen muss und damit von einem manipulierten Würfel ausgehen muss. Wir testen die Nullhypothese H0: pi = 1/6 für i = 1,..,6, wobei pi die Wahrscheinlichkeit für die Augenzahl i im Einzelexperiment ist. Als Testgröße dient die (approximativ) Chi-Quadrat-verteilte Zufallsvariable 4 Erzeugung von Zufall χ 2 Test 6 (Hi − n ⋅ pi ) i =1 n ⋅ pi =∑ 51 2 , wobei Hi die im Experiment beobachtete Häufigkeit für i, n = 600 die Anzahl der Versuchsdurchführungen und n ⋅ pi = 600 ⋅ 1/6 = 100 die bei Gleichverteilung zu erwartenden mittleren Häufigkeiten sind. In MuPAD können wir das folgenderweise mit Hilfe des Befehls _plus, der die Summe berechnet, umsetzen: • chiquadrat := _plus((H[i] - 100)^2 / 100 $ i = 1..6) 59 10 Je größer dieser beobachtete Wert ist, desto stärker weicht das Experiment vom bei Gleichverteilung im Mittel zu erwartenden Ergebnis ab. Wir müssen uns also fragen, ob der von uns beobachtete Wert ungewöhnlich groß ist, oder ob er im Rahmen der zu erwartenden Abweichungen liegt. Um diese Frage zu beantworten, betrachten wir genauer die Chi-QuadratVerteilung: Das Einzelexperiment kann k = 6 verschiedene Ergebnisse liefern. Die hier vorliegende Chi-Quadrat-Verteilung hat k – 1 = 5 Freiheitsgrade. Die 2 Wahrscheinlichkeit, Werte von χTest zu beobachten, die kleinergleich sind als der Wert chiquadrat, ist durch die kumulative Verteilungsfunktion (CDF) gegeben: • stats::chisquareCDF(5)(float(chiquadrat)) 0.6839286908 Der beobachtete Wert chiquadrat ist also keineswegs ungewöhnlich: Mit einer Wahrscheinlichkeit von gut 68% sind Werte bis zur beobachteten Größe 5.9 zu erwarten. Nun stellt sich die Frage: Wie groß muss der beobachtete Wert chiquadrat werden, damit man ihn als 'ungewöhnlich' bezeichnen und Zwei- fel an der Nullhypothese der Gleichverteilung haben sollte? 52 4.3 Der Chi - Quadrat –Test Dazu geben wir uns ein Niveau α = 0.01 vor und verwerfen die Hypothese H0, wenn die Wahrscheinlichkeit ( ) ( ) 2 2 P χTest > chiquadrat = 1 − P χTest ≤ chiquadrat das Niveau α unterschrei- tet. Es ist also nach dem (1-α)-Quantil (hier 0.99-Quantil) der ChiQuadrat-Verteilung mit 5 Freiheitsgraden gefragt: • stats::chisquareQuantile(5)(0.99) 15.08627247 Damit darf chiquadrat Werte bis zu 15.086.. annehmen, ohne dass die Hypothese H0 auf dem 0.01-Niveau abgelehnt werden sollte. Der von uns beobachtete Wert 5.9 von chiquadrat liegt weit unterhalb der kritischen Grenze 15.086. Daher wird H0 nicht abgelehnt und wir gehen davon aus, dass es sich bei dem simulierten Würfel mittels der Funktion random um einen idealen Würfel handelt. Übungen Die Statistik-Bibliothek stellt mit der Routine stats::csGOFT den ChiQuadrat-Test direkt zur Verfügung. Man benötigt dafür eine Zelleinteilung der reellen Achse, die die möglichen Werte der Einzelexperiment umfasst. Legen Sie die 6 Intervalle [i - 0.1, i + 0.1] an, von denen jedes genau eine der 6 möglichen Zahlen i = 1, 2, ..., 6 enthält. Definieren Sie die kumulative Verteilungsfunktion einer Gleichverteilung auf den ganzen Zahlen i = 1, 2, ..., 6 (Treppenfunktion). Führen Sie nun den Chi-Quadrat-Test mittels stats::csGOFT durch. Lesen Sie dazu die Hilfeseite ?stats::csGOFT. Wir wollen überprüfen, ob es sich bei dem Roulettespiel wirklich um ein Laplace-Experiment handelt. Simulieren Sie 1000 Ausspielungen und berechnen die absoluten Häufigkeiten der 37 Zahlen 0,...,36. Kann mit α = 0.05 die Nullhypothese, dass es sich um ein LaplaceExperiment handelt, abgelehnt werden? 5 Boxplots 53 5. Boxplots Der Boxplot wird in der Statistik eingesetzt, um die Verteilung der Daten einer Stichprobe zu veranschaulichen. Mit seiner Hilfe können die wichtigsten statistischen Merkmale eines Datensatzes schnell und einfach erkannt werden, ohne einzelne Standardwerte wie z.B. den Median per Hand ausrechnen zu müssen. Zunächst benötigen wir einige Definitionen: Die Daten seien in aufsteigender Reihenfolge angeordnet. Dann ist der Median, der Wert des mittleren Elementes, falls der Datensatz eine ungerade Anzahl Daten hat. Bei gerader Anzahl bildet man den Mittelwert über die Werte der beiden mittleren Elemente. Die empirische Verteilungsfunktion gibt für jeden Wert x an, wie groß der Anteil der Daten ist, die kleiner oder gleich x sind. Ein weiteres Merkmal zur Charakterisierung von Stichproben sind die Quantile. Für jedes beliebige p zwischen 0 und 1 bezeichnet man xp als p-Quantil, wenn für die Verteilungsfunktion F einer Verteilung bzw. für die empirische Verteilungsfunktion F gilt: F(xp) = p. Demnach ist das ½Quantil der Median, auch 2.Quartil genannt. Das ¼-Quantil wird als 1.Quartil und das ¾-Quantil als 3.Quartil bezeichnet. Betrachten wir nun die grafische Darstellung des Boxplots, die man mittels plot:boxplot erhält: Es wird nun folgenderweise vorgegangen. In einem Koordinatensystem, an dessen y-Achse eine Skala für das betrachtete Merkmal abgetragen ist, wird der Interquartilsabstand q, das ist der Abstand zwischen dem 54 5.1 Schulweg dritten und ersten Quartil, als Kasten („box“) eingezeichnet. Vom oberen Ende der Box wird eine Strecke bis zum Maximum des Datensatzes gezogen, der allerdings nicht weiter als das 1.5-fache des Interquartilsabstand vom 3.Quartil entfernt sein darf. Falls es noch höhere Werte gibt, werden diese als Ausreisser benannt und einzeln als Punkte eingezeichnet. Analog verfährt man am unteren Ende des Kastens mit dem minimalen Wert. Zusätzlich wird die Position des empirischen Medians mittels einer Linie markiert. Mit der in MuPAD zur Verfügung gestellten Option Notched erzeugt man an der Box seitliche Einkerbungen, deren Länge sich als eine Art Konfidenzintervall des Medians interpretieren lässt. Dies hilft dabei, zu entscheiden, ob zwei zufällige Datensätze die gleiche Verteilung haben. Stimmen die Einkerbungen der beiden Boxplots nicht überein, so kann man davon ausgehen, dass die beiden Stichproben unterschiedlichen Verteilungen folgen. Schauen wir uns nun am Beispiel an, wie Boxplots verwendet werden. 5.1 Schulweg An drei unterschiedlichen Schulen wurden Schüler der Jahrgangsstufe 11 befragt, wie lange sie unterwegs sind bis sie ihre Schule erreicht haben. • Schulen := [SchuleA, SchuleB, SchuleC] [SchuleA, SchuleB, SchuleC] Für jede der drei Schulen erstellen wir eine Liste, die die Schulwegzeiten enthält: • Zeit[SchuleA] := [5, 10, 35, 2, 20, 14, 15, 45, 60, 16, 9, 8, 38, 29, 30, 7, 33, 39, 46, 22, 27, 3, 2, 35, 90, 32, 5, 23, 52, 43, 39, 9, 44, 40, 23, 4, 49, 4, 2, 39, 37, 34, 23, 32, 34, 22, 25, 19, 33, 35, 46, 28, 29, 30, 34, 35, 40, 33, 31, 55, 50, 49, 63, 48, 57, 59, 50, 53, 47, 45, 39, 40, 54, 56, 59, 64, 62]: 5 Boxplots 55 Zeit[SchuleB] := [19, 16, 11, 21, 10, 20, 15, 18, 11, 11, 20, 25, 10, 21, 21, 17, 10, 25, 16, 12, 30, 30, 36, 40, 33, 38, 32, 38, 40, 38, 11, 30, 37, 17, 17, 10, 11, 33, 35, 31, 55, 5, 2, 60, 34, 7, 14, 32, 15, 10, 5, 3, 29,23, 18, 15, 20, 17, 10]: Zeit[SchuleC] := [6, 5, 10, 1, 3, 3, 4, 8, 10, 6, 2, 9, 4, 18, 19, 8, 8, 15, 6, 8, 3, 10, 13, 5, 6, 6, 19, 19, 17, 16, 15, 4, 1, 20, 2, 9, 8, 14, 6, 5, 12, 17, 20, 2, 17, 36, 24, 5, 14, 20, 27, 11, 27, 31, 36, 26, 37, 37, 27, 23, 8, 32, 25,10]: Wir möchten die Zeiten der Schulwege der einzelnen Schule vergleichen und ermitteln, an welcher Schule die längsten und an welcher die kürzesten Wege zurückzulegen sind. Weiterhin wollen wir wissen, wie sich die mittlere Schulwegzeit verhält und in welchem Bereich 50 % der Schulwegzeiten an jeder Schule liegen. Dazu stellen wir die Verteilung der Schulwege für alle Schulen in Form von Boxplots dar: • plot(plot::boxplot(Zeit[s] $ s in Schulen), Ticks = [None, Steps = 5], GridLines = Automatic) y 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 5 x Nun können wir die Grafik interpretieren: Der zusehende Punkt wird als Ausreißer bezeichnet. Dieser Wert ist so hoch, dass er nicht in den Datensatz mit einbezogen wird, sondern meist als Messfehler interpretiert wird. Über mögliche Gründe kann man nur spekulieren. Es könnte z.B. sein, dass der Schüler den Wohnort gewech- 56 5.1 Schulweg selt hat, aber seine alte Schule weiterhin besuchen will. Dieser Wert kann auf folgende Weise mit MuPAD berechnet werden: • for s in Schulen do Boxlaenge := 1.5 * (stats::empiricalQuantile(Zeit[s])(0.75) stats::empiricalQuantile(Zeit[s])(0.25)): Hilfe := select(Zeit[s], y -> y > stats::empiricalQuantile(Zeit[s])(0.75) + Boxlaenge): if Hilfe <> [] then Ausreisser := max(op(Hilfe)): print(Unquoted, “Der Ausreisser für “ .s. “ beträgt “ .Ausreisser. “ Minuten.”): else print(Unquoted, “Für “ .s. “ existieren keine Ausreisser.”) end_if: end_for: Der Ausreisser für SchuleA beträgt 90 Minuten. Für SchuleB existieren keine Ausreisser. Für SchuleC existieren keine Ausreisser. Maximum bzw. Minimum der Daten werden durch die obere bzw. untere waagerechte Linie gekennzeichnet. Wir können nun beobachten, dass SchuleA (links) mit knapp 65 Minuten den längsten Schulweg aufweist, dicht gefolgt von SchuleB mit 60 Minuten. SchuleC verzeichnet die kürzesten Schulwege mit unter 40 Minuten. Die Maxima lassen sich folgenderweise algorithmisch aus dem Datensatz bestimmen: Wir berechnen das 1.5-fache der Boxlänge und addieren dieses auf den Wert des 3.Quartils. Dazu benutzen wir die Funktion stats::empiricalQuantile. • for s in Schulen do Boxlaenge:= 1.5 * (stats::empiricalQuantile(Zeit[s])(0.75) stats::empiricalQuantile(Zeit[s])(0.25)): Hilfe:= select(Zeit[s], y -> y < stats::empiricalQuantile(Zeit[s])(0.75) + Boxlaenge): Maximum:= max(op(Hilfe)): print(Unquoted,"An " .s. " beträgt der längste Schulweg " 5 Boxplots 57 .Maximum. " Minuten."): end_for: An SchuleA beträgt der längste Schulweg 64 Minuten. An SchuleB beträgt der längste Schulweg 60 Minuten. An SchuleC beträgt der längste Schulweg 37 Minuten. Die Boxen stellen den Abstand zwischen dem 0.25-Quantil und dem 0.75-Quantil dar. Dies bedeutet, dass 25% der Daten unterhalb der Box und 75% des Stichprobenumfangs unterhalb der oberen Begrenzungslinie des Kastens liegen. Damit liegen also 50% der Daten innerhalb der Box. Wir können also sehen, dass an der SchuleA 50% der Schulwege zwischen ca. 22 und 46 Minuten dauern und damit die Schule mit den längsten Schulwegen ist, gefolgt von SchuleB und SchuleC. Auch diese Werte können wir mit MuPAD exakt berechnen: • for s in Schulen do print(Unquoted, “50% der Schulwege zu “ .s. “ dauern zwischen “.stats::empiricalQuantile(Zeit[s])(0.25). “ und “ .stats::empiricalQuantile(Zeit[s])(0.75). “ Minuten.“) end_for: 50% der Schulwege zu SchuleA dauern zwischen 22 und 46 Minuten. 50% der Schulwege zu SchuleB dauern zwischen 11 und 32 Minuten. 50% der Schulwege zu SchuleC dauern zwischen 6 und 19 Minuten. Eine große Box bedeutet, dass die Zeiten starken Schwankungen ausgesetzt sind. Je geringer die Höhe der Box ist, desto stabiler sind die Schulzeiten. Für SchuleC ist die Box im Vergleich zu den anderen sehr schmal. Die Schulwegzeiten sind dort sowohl kurz als auch stabil. Betrachten wir nun den Median, die waagerechte Linie innerhalb der Box, an ihr können wir die mittlere Schulwegdauer ablesen. An SchuleB und SchuleC ist diese Linie sehr niedrig, unterhalb der Mitte der Box. Dies bedeutet, dass 50% der Schüler Zeiten unter 20 bzw. 10 Minuten zurücklegen müssen bis sie ihre Schule erreicht haben. Wenn dort ein Schüler einen längeren Schulweg hat, dann meist einen sehr viel längeren. Für 58 5.1 Schulweg SchuleA ist der Median fast in der Mitte der Box, d.h. die mittleren 50% der Daten sind relativ gleichverteilt. In MuPAD können wir den Median mittels stats::median berechnen: • for s in Schulen do print(Unquoted, “Die mittlere Schulwegdauer zu “ .s. “ beträgt “ .stats::median(Zeit[s]). “ Minuten.“) end_for: Die mittlere Schulwegdauer zu SchuleA beträgt 34 Minuten. Die mittlere Schulwegdauer zu SchuleB beträgt 19 Minuten. Die mittlere Schulwegdauer zu SchuleC beträgt 10 Minuten. Da Boxplots auf statistischen Kenngrößen basieren, können die wesentlichen Informationen eines Datensatzes direkt abgelesen und verglichen werden, ohne die einzelnen statistischen Werte von Hand berechnen zu müssen. Übungen Erzeugen Sie mit Hilfe stats::cauchyRandom der und Funktionen stats::normalRandom, stats::exponentialRandom normal-, cauchy- und exponentialverteilte Zufallszahlen. Erzeugen Sie für jede Verteilungssituation Boxplots und vergleichen Sie diese miteinander. 10 Käufer eines Autos wurden nach der Höhe ihrer Investition befragt. Es ergaben sich folgende Werte: 6000€, 140000€, 4000€, 3500€, 10500€, 20000€, 1500€, 9000€, 15500€, 1200€. Zeichnen Sie den zugehörigen Boxplot und versuchen Sie ihn zu interpretieren. An einem anderen Ort wurde die gleiche Umfrage gemacht. Dort stellte man folgende Investitionen fest: 22500€, 35000€, 1050€, 56000€, 4500€, 62500€, 35000€, 45000€, 11000€, 65000€. Erstellen Sie einen Boxplot und vergleichen Sie diesen mit dem vorherigen. Welche Aussagen können Sie machen? 6 Gemischtes aus der Praxis 59 6. Gemischtes aus der Praxis Zur Vertiefung der vorgestellten Problematiken finden Sie hier eine Ansammlung von Aufgabenstellungen, die einen starken Bezug zur Praxis haben. 6.1 Hochrechnungen und Wahlprognosen Stellen wir uns vor, es ist Wahlabend. Nachdem ein Wahllokal ausgezählt hat, ist bekannt, dass von 2178 Personen 734 die Partei XYZ gewählt haben. Daher ergibt sich eine relative Häufigkeit von • h := float(734 / 2178) 0.3370064279 für diesen Wahlbezirk. Das Wahllokal kann damit der Zentrale melden, dass die Partei XYZ 33,7 % erreicht hat. Mit der Zeit melden immer mehr Wahllokale ihre Ergebnisse der Zentrale, so dass man um 19 Uhr weiß, dass von n = 539407 Stimmen 186439 für die Partei XYZ zählen. Damit haben wir eine relative Häufigkeit von • h := float(186439 / 539407) 0.345636968 Aus diesen Fakten wollen wir nun die Wahrscheinlichkeit p bestimmen, die zu 99,7% mit der relativen Häufigkeit h verträglich ist. Dazu betrachten wir die Wahrscheinlichkeit P(|X - µ| ≤ 3 ⋅ σ), dass eine binomialverteilte Zufallsvariable X in der sogenannten 3 ⋅ σ - Umgebung liegt, wobei µ den Erwartungswert und σ die Standardabweichung bezeichnet. Da die Binomialverteilung durch die Normalverteilung approximiert werden kann, stellt diese Wahrscheinlichkeit die Fläche unterhalb der Gauss’schen Dichtefunktion ϕ in den Grenzen von –3 bis 3 dar: P ( X − µ ≤ 3 ⋅σ ) = 3 ∫ ϕ(x)dx ≈ 0.997 −3 60 6.1 Hochrechnungen und Wahlprognosen Wir gehen also von der Ungleichung |X – µ| ≤ 3 ⋅ σ aus. Da X = n ⋅ h und µ = n ⋅ p gilt, teilen wir die Ungleichung durch n und erhalten: |h – p| ≤ 3 ⋅ σ/n. Nun wollen wir ein p berechnen, das diese Ungleichung erfüllt: • h := 186439 / 539407; n := 539407; sigma := sqrt(n * p * (1 - p)) 16949 49037 539407 539407 ⋅ p ⋅ (1 − p) Und nun die Lösung der Ungleichung: • Loesungen := solve(abs(h - p) <= 3 * sigma/n) 3 ⋅ 3 ⋅ 1173468152803857 1173468152803857 372887 − , p = + 372887 p = 1078832 1078832 52902684784 52902684784 Die so erhaltenen Lösungen geben uns das Intervall an, indem sich die Wahrscheinlichkeit p befindet: • untereSchranke := float(Loesungen[1]); obereSchranke := float(Loesungen[2]) [ p = 0.3436969622] [ p = 0.3475821248] Somit wissen wir, dass die Partei XYZ mit einer Wahrscheinlichkeit von 99,7% mit einem Wahlergebnis zwischen 34,37% und 34,76% rechnen kann. Übungen 872353 Leute wurden zu ihrer Meinung bezüglich der anstehenden Steuerreform befragt. 236898 Personen waren nicht damit einverstanden, 352926 dagegen äußerten sich positiv. Die anderen enthiel- 6 Gemischtes aus der Praxis 61 ten sich ihrer Meinung. Rechnen Sie den Anteil der Bevölkerung hoch, der der Steuerreform negativ gegenübersteht. Der Bundeskanzler behauptet, dass drei Viertel der Bevölkerung positiv über die Steuerreform denkt. Lässt sich dies statistisch belegen? 6.2 Qualitätskontrolle In vielen Fällen spielt die Qualitätskontrolle eine wichtige Rolle. Stellen Sie sich vor, Sie sind in einem Unternehmen, das Bier herstellt, dafür verantwortlich, dass der Biertrinker auch genug Bier in seiner Flasche hat. Pro Stunde werden in Ihrem Betrieb 5400 Flaschen Bier abgefüllt. Nun ist die Maschine aber nicht exakt und es passiert, dass manchmal ein wenig Bier daneben läuft. Wenn allerdings mehr als 3% der Flaschen zu wenig Bier enthalten, müssen Sie sofort die Produktion stoppen. Um die Füllmenge zu gewährleisten, werden stündlich 150 Flaschen auf ihren Inhalt überprüft. Um ihre Aufgabe gut zu machen, stellen Sie sich folgende Fragen: 1. Wie viele Flaschen aus der Stichprobe, müssen zu leicht sein, damit sie die Maschine anhalten? 2. Wie oft würden Sie die Abfüllung irrtümlicherweise aufhalten, falls die Anlage genau 3% der Flaschen mit zu wenig Bier füllt? 3. Wie groß ist die Wahrscheinlichkeit, dass Sie nicht bemerken, dass die Abfüllanlage zu wenig Bier in die Flaschen gefüllt hat, falls die Anlage in Wirklichkeit doppelt so viel Ausschuss produziert? Zur Beantwortung dieser Fragen, überlegen wir uns folgendes: Bei einer Gesamtheit von 5400 Flaschen pro Stunde, erwarten wir nicht mehr als 162 (3% von 5400) zu wenig befüllte Flaschen, falls die Produktion in Ordnung ist. Bei den zufällig ausgewählten 150 Flaschen, müssten wir also mit 4.5 zu leichten Flaschen rechnen. Die Frage ist nun: Ist die Produktion schon zu stoppen, wenn 5 der ausgesuchten Flaschen nicht in Ordnung sind? Sie wollen aus Sicherheitsgründen die Maschine nicht un- 62 6.2 Qualitätskontrolle nötig anhalten und entscheiden sich, dass Sie sich nur mit einer Wahrscheinlichkeit α ≤ 4% irren dürfen. α ist also die Wahrscheinlichkeit, dass sich mehr als X zu leichte Flaschen unter den 150 befinden. Testen wir nun, ob X = 5 gelten darf, wobei X eine hypergeometrisch verteilte Zufallsvariable ist (s.S.13). • alpha := float(1 - sum(binomial(162,i)* binomial(5400-162,150-i)/ binomial(5400,150), i = 0..5)) 0.2944320602 Wenn Sie also die Produktion schon bei 5 Flaschen, die nicht in Ordnung sind, anhalten würden, würden Sie ein zu hohes Risiko (nämlich 29,4%) eingehen, falsch entschieden zu haben. Durch Erhöhung der Werte für X finden wir: • alpha := float(1 - sum(binomial(162,i)* binomial(5400-162,150-i)/ binomial(5400,150), i = 0..8)) 0.03561572482 Sie entscheiden sich dazu, die Produktion erst anzuhalten, wenn sich mehr als 8 zu leichte Flaschen in der Stichprobe befinden. Damit hätten wir die 1. Frage beantwortet, nun zur nächsten. Bei dieser Vorgehensweise entscheiden Sie also in 4 von 100 Fällen falsch, d.h. 4 mal innerhalb von 100 Stunden. Angenommen Sie arbeiten 35 Stunden pro Woche, dann macht das im Jahr – abzüglich 6 Wochen Urlaub – • 35*(52-6) 1610 Stunden Arbeit. Da Sie eine Fehlerquote von 4% haben, werden Sie die Maschinen ca. 64 mal im Jahr fälschlicherweise anhalten, wenn die Anlage exakt 3% Ausschuss produzieren würde. Ob Ihrem Chef das zu viel ist? Kommen wir nun zur Beantwortung der 3. Frage. Zunächst formulieren wir die Frage um: Wie hoch ist die Wahrscheinlichkeit β, dass unter den 150 zufällig entnommenen Flaschen, weniger als 9 zu leichte Flaschen 6 Gemischtes aus der Praxis 63 enthalten sind, obwohl sich 324 (6% von 5400) Flaschen, die nicht in Ordnung sind, in der Produktion befinden? • b := float(sum(binomial(324,i) * binomial(5400-324,150-i) / binomial(5400,150), i = 0..8)) 0.4497564862 Damit werden Sie in 44% aller Fälle nicht merken, dass der Ausschussanteil auf das Doppelte des Erlaubten angestiegen ist. Sie haben also gerade mal eine Fifty-Fifty-Chance, zu erkennen, ob die Maschine in 6% aller Flaschen zu wenig Bier gefüllt hat. Ändern können Sie dies nur, wenn Sie die Irrtumswahrscheinlichkeit α erhöhen. Dann würden Sie die Produktion schon bei weniger zu leichten Flaschen anhalten und eher erkennen, wenn die Ausschussquote angestiegen ist. An diesem Beispiel können wir gut sehen, dass man meist Kompromisse auf der einen oder anderen Seite eingehen muss. Die wesentliche Aufgabe der Qualitätskontrolle ist es, diese beiden Fehler in Einklang zu bringen. 6.3 Lineare Regression und Korrelation Oft ist es wichtig, zwei Zufallsvariablen auf ihren Zusammenhang zu überprüfen. In einer Jahrgangsstufe 13 wurden die Schüler über ihre Größe und ihr Körpergewicht befragt. Es äußerten sich 30 Schüler. Aus den gewonnenen Daten erstellen wir eine Sequenz aus Zahlenpaaren, für jeden Schüler ein Zahlenpaar von folgender Form: [Körpergröße in cm, Gewicht in kg] • Daten := [156, [166, [187, [176, [195, [173, [150, [173, 50], 60], 90], 75], 94], 70], 45], 63], [167, [167, [170, [152, [180, [165, [172, [188, 55], 58], 58], 49], 75], 55], 67], 78]: [192, [164, [193, [197, [183, [183, [168, 86], 54], 92], 95], 85], 80], 62], [174, [197, [150, [163, [174, [169, [188, 70], 97], 49], 60], 65], 59], 85], Diese Zahlenpaare tragen wir nun als Punkte in ein Koordinatensystem ein. Dazu benutzen wir den Befehl plot::Pointlist. 64 • 6.3 Lineare Regression und Korrelation plot(plot::Pointlist(Daten, Color = RGB::Black), Ticks = [Steps = 5, Steps = 5], GridLines = Automatic, Labels = [“Körpergröße in cm”, “Gewicht in kg”]) Gewicht in kg 95 90 85 80 75 70 65 60 55 50 45 150 155 160 165 170 175 180 185 190 195 Körpergröße in cm So erhalten wir die grafische Darstellung der gemeinsamen Verteilung der beiden Zufallsvariablen „Körpergröße“ und „Gewicht“. Machen wir uns nun auf die Suche nach einem Zusammenhang zwischen den beiden Variablen. Schon bei der Betrachtung der Grafik, fällt auf, dass größere Personen auch mehr wiegen. Um diesen Zusammenhang zu untersuchen, versuchen wir eine Gerade y = b ⋅ x + a so durch die Punkte zu legen, dass möglichst viele Punkte auf der Gerade liegen. Für diese Gerade soll also gelten, dass die Summe der Abweichung der Paare [Körpergröße, Gewicht] von den Punkten [Körpergröße, y(Körpergröße)] möglichst klein ist. Am besten lässt sich diese Abweichung durch die Größe (Gewicht – y(Körpergröße))2 kennzeichnen. Die Parameter a und b sind also so zu bestimmen, dass die Summe 30 ∑ (Gewicht − y(Koerpergroesse))2 = i =1 30 ∑ (Gewicht − b ⋅ Koerpergroesse − a) i =1 minimal wird. Dazu definieren wir erst einmal die Summe über die Funktion sum, indem wir mit Daten[i][2] auf das Gewicht und mit Daten[i][1] auf die Größe des Schülers i zugreifen. 2 6 Gemischtes aus der Praxis • 65 summe := expand(sum((Daten[i][2] – b * Daten[i][1] – a)^2, i = 1..30)) 2 2 10464 ⋅ a ⋅ b − 737902 ⋅ b − 4162 ⋅ a + 30 ⋅ a + 917910 ⋅ b + 151443 Diese Summe soll jetzt minimal werden. Dazu halten wir erst einmal die Variable b fest und definieren folgende Funktion mittels des ->Operators: • f := a -> 10464*a*b – 737902*b – 4162*a + 30*a^2 + 917910*b^2 + 151443 2 2 a → 10464 ⋅ a ⋅ b − 737902 ⋅ b − 4162 ⋅ a + 30 ⋅ a + 917910 ⋅ b + 151443 Nun berechnen wir das Minimum dieser Funktion, indem wir die Ableitung auf Null setzen. Wir können die Ableitung jetzt bequem per f’(a) berechnen. • Min_a := solve(f’(a) = 0, a) 2081 − 872 ⋅ b 5 30 Diesen Wert setzen wir jetzt für a in die Funktion ein und betrachten die Funktion nun unter der Variablen b: • g := b -> f(Min_a[1]) b → f (Min_a1) Auch wenn dieser Ausdruck etwas befremdlich erscheint, können wir mit dieser Funktion jetzt das Minimum berechnen: • Min_b := solve(g’(b) = 0, b) 10041 9082 Damit haben wir jetzt die Werte für a und b gefunden: • b := Min_b[1] 10041 9082 66 • 6.3 Lineare Regression und Korrelation a := Min_a[1] 3363487 − 27246 und können die Funktion der Geraden angeben, mittels plot::Function2d zeichnen, sowie mit den ursprünglichen Punkten zu- sammen in eine Grafik bringen. • y := x -> b*x + a x → b⋅x+a • Gerade := plot::Function2d(y(x), x = 150..200, Color = RGB ::Grey): Punkte := plot::Pointlist(Daten, Color = RGB::Black): plot(Gerade, Punkte, Labels = [“Körpergröße”, “Gewicht”]) Gewicht 87.5 75 62.5 50 150 162.5 175 187.5 200 Körpergröße So ist es möglich zu jedem Wert der Zufallsvariablen „Körpergröße“ einen dazugehörigen geschätzten Wert für die Zufallsvariable „Gewicht“ zu berechnen. Alternativ hätten wir die Werte für a und b mit der Funktion stats::linReg berechnen können. Wir erhalten mittels eines einzigen Be- fehls die gesuchten Werte: • stats::linReg([Daten]) 3363487, 10041 − 27246 9082 6 Gemischtes aus der Praxis 67 Die Frage nach einem linearen Zusammenhang zwischen den Werten der beiden Zufallsvariablen ist damit fast beantwortet. Wir können sehen, dass die Punkte sehr nah an der Geraden liegen. Ein geeignetes Kriterium, um den Zusammenhang zu charakterisieren, ist der sogenannte Korrelationskoeffizient. Mit MuPAD lässt er sich sehr schnell ausrechnen: • stats::correlation([Daten]) 30123 ⋅ 966002389 966002389 • float(%) 0.9691904398 Was sagt uns nun dieser Wert? Der Korrelationskoeffizient kann nur Werte zwischen –1 und 1 annehmen. Beträgt er |1|, so liegen alle Zahlenpaare auf einer Geraden und es besteht lineare Abhängigkeit. Da unser berechneter Korrelationskoeffizient nah bei 1 liegt, können wir auch von linearer Abhängigkeit ausgehen. Befindet sich der Korrelationskoeffizient dagegen in der Nähe von Null, so besteht kein linearer Zusammenhang und die Zahlenpaare bilden eine Art Wolke. Übungen Analog ist es auch möglich den Werten der Variable „Gewicht“ einen Schätzwert für die Variable „Körpergröße“ zu zuordnen. Bestimmen Sie für die Gerade x = b ⋅ y + a die Parameter a und b und zeichnen Sie diese zusammen mit der Gerade y und den Punkten in ein Koordinatensystem. Versuchen Sie einen Zusammenhang zwischen den beiden Geraden zu finden. 68 6.3 Lineare Regression und Korrelation Literaturverzeichnis 69 Literaturverzeichnis Einige der Beispiele und Übungen dieses Buches sind der folgenden Literatur entnommen, ohne dass jeweils unmittelbar darauf verwiesen wurde: Bosch: Training Wahrscheinlichkeitsrechnung und Statistik. Klett, 1986 Feuerpfeil; Heigl: Wahrscheinlichkeitsrechnung und Statistik N Leistungskurs. BSV Mathematik, 1997 Grabinger: Stochastik mit DERIVE. Dümmler, 1997 Schmid; Schweizer: LS Stochastik Leistungskurs. Klett 1999 Detailierte Informationen zu MuPAD entnehmen Sie bitte: MuPAD – Eine praktische Einführung C. Creutzig, J. Gerhard, W. Oevel, S. Wehmeier; Das MuPAD Tutorium. Deutsche Ausgabe, 2. Auflage. Springer Verlag Berlin; Heidelberg 2002, ISBN 3-540-43573-5 Index der MuPAD-Funktionen ' .........................................65 Scene .................................12 ! .........................................17 Turtle .................................46 $ .........................................11 print ................................. 9, 24 % ........................................18 random ............................. 9, 50 /* ........................................24 return ...................................11 _plus ....................................51 solve ....................................30 _plus, sum ............................65 sqrt ......................................37 -> ........................................65 stats.....................................28 assume.................................41 binomialCDF .............28, 33, 39 binomial................................18 binomialPF .................... 28, 29 case .....................................46 cauchyRandom ....................58 Color ....................................12 chisquareCDF ......................51 DrawMode .............................21 correlation ..........................67 export ..................................28 empiricalQuantile .................56 expr2text ..............................24 exponentialCDF....................28 fact ......................................17 exponentialPDF ....................28 float .....................................11 exponentialRandom ..............58 floor .....................................46 linReg.................................66 for..........................................9 mean .................................24 if .........................................10 median ...............................58 intersect ...............................15 normalCDF .................... 28, 40 is ................................... 10, 16 normalPDF .................... 28, 38 map .....................................48 normalRandom ....................58 minus ...................................13 poissonCDF ................... 28, 39 mod .....................................10 poissonPF...................... 28, 34 nops.....................................14 stdev..................................27 plot ......................................12 variance..............................26 bars ...................................22 Type boxplot ......................... 53, 55 Even ..................................10 Function2d ..........................12 PosInt ................................41 Pointlist ........................ 12, 21 union .............................. 13, 16 Mathematik 1 × anders Band 3 MuPAD ist ein Computeralgebra-System, mit dem Problemstellungen der Mathematik sowie der Natur- und Ingenieurwissenschaften behandelt werden können. Es ist ein wertvolles Hilfsmittel für Schüler und Studenten, Lehrer und Wissenschaftler. Dieser Band zur Stochastik und Statistik zeigt, wie entsprechende Problemstellungen in MuPAD bearbeitet und grafisch veranschaulicht werden können. Die Themenauswahl entspricht weitgehend dem Lehrstoff gängiger Schulbücher, enthält aber auch Problemstellungen, die darüber hinausgehen. Zu Beginn jedes Kapitels wird angegeben, welche theoretischen Kenntnisse vorausgesetzt werden, da hier nicht auf diese Grundlagen eingegangen werden kann. Zur Vertiefung der vorgestellten Problematik werden dem Leser am Ende jedes Kapitels Aufgaben zur Bearbeitung empfohlen. SciFace Software • Paderborn Sci Face