Mu Stochastik mit PAD - Mathematik

Werbung
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
Herunterladen