Initialisierung

`>` restart:
with(stats):with(statplots):with(plots):with(statevalf):
with(binomi);

`>`

Überblick

Die Pakete stats, statevalf und statplots sind etwas spröde bezüglich der Benutzung für den Unterricht, da sie auf ein anderes Zielpublikum ausgerichtet sind. Es empfiehlt sich daher, diese Pakete durch einige eigene Funktionen zu kapseln. Außerdem scheint statevalf bezüglich der summierten diskreten Verteilungen fehlerhaft zu sein, was ebenfalls eigene Lösungen erfordert.

Inhaltsverzeichnis

Sie können von hier aus über den entsprechenden Link direkt zu den einzelnen Abschnitten springen

Berechnen und erzeugen von B(n,p)

Summenverteilung

Histogramme

Umkehrung der Summenverteilung

Wert aus einem Intervall

Testen von Hypothesen

Erwartungswert, Varianz und Standardabweichung

-----------------------

zurück zur Startseite

`>`

Bedienungserklärung

Die Berechnungen auf diesem Arbeitsblatt können unter MapleV durch Drücken der Enter-Taste zeilenweise oder aber komplett über den Menüpunkt Edit - Execute - Worksheet ausgelöst werden.

Über die Bildlaufleisten kann ein beliebiger Ausschnitt ausgewählt werden.

Die einzelnen Sektionen sind unabhängig voneinander. Deshalb kann über das Inhaltsverzeichnis an jede beliebige Sektion gesprungen werden. Die Befehle innerhalb einer Sektion sind jedoch nicht unbedingt unabhängig. Hier empfiehlt sich das schrittweise Abarbeiten der einzelnen Befehle.

Einige, entsprechend markierte Plots sind als Animationen vorbereitet. Diese können schrittweise ausgelöst werden, wenn man in der Symbolleiste auf klickt. Die Symbolleiste ist allerdings erst sichtbar, wenn vorher auf den Plot geklickt worden ist.

Binomialverteilung

Berechnen und erzeugen von B(n,p)

Will man die Binomialverteilung B(n,p) berechnen, so kann man zunächst die Wahrscheinlichkeit P(X=k) wie folgt berechnen:

(hier ist n=10, p=0,5 und k=3):

`>` statevalf[pf,binomiald[10,0.5]](3);

Dieser komplizierte Aufruf ist in der Prozedur bv gekapselt. Ein Aufruf sieht dann so aus:

`>` bv(10,0.5,3);

Will man eine bestimmte Binomialverteilung häufiger verwenden, kann man die folgenden Funktion zur Erzeugung einer Binomialverteilung verwenden:

`>` makebv:=(n,p)->unapply(bv(n,p,k),k);

Man kann dann wie folgt vorgehen:

`>` b0:=makebv(10,0.5):

`>` b0(3);

`>`

zurück zum Anfang

Summenverteilung

Will man die summierte Wahrscheinlichkeitsdichte berechnen, so kann man die Prozedur cbv benutzen. (Die Möglichkeit, statevalf[dcdf,binomiald[n,p]] zu verwenden, scheitert an einem Fehler in der Implementation dieser Funktion) :

`>` cbv(10,0.5,3);

Auch hier kann man einen abkürzenden Aufruf verwenden, wenn man immer mit der gleichen B(n,p)-verteilten Funktion arbeitet.

`>` makecbv:=(n,p)->unapply(cbv(n,p,k),k);

`>` cb0:=makecbv(10,0.5):

`>` cb0(3);

`>`

zurück zum Anfang

Histogramme

Das Histogramm einer bestimmten Binomialverteilung erhält man am einfachsten mit der Prozedur histo :

`>` histo(10,0.5,color=cyan);

`>` display([histo(100,0.4,color=cyan),histo(100,0.6,color=magenta)],view=[20..80,0..0.1]);

Die Bedeutung der Trefferwahrscheinlichkeit p für die Verteilung lässt sich sehr deutlich in der folgenden Animation bv_ani veranschaulichen.

`>` bv_ani(15,[0.001,0.01,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.99,0.999]);

A nimation !

Die Prozedur bv_ani kann ebenfalls die Bedeutung von n bei fester Trefferwahrscheinlichkeit p demonstrieren.

`>` bv_ani(15..50,0.5,color=cyan);

A nimation !

Will man statt eines Histogramms nur ein Polygon durch die Mitten der oberen Rechtecksseiten des Histogramms zeichnen, so kann man die Funktion dichtebin verwenden:

`>` dichtebin(10,0.5,view=[0..11,0..0.3],color=blue);

Natürlich ist auch eine Kombination der beiden Darstellungen möglich:

`>` display([histo(10,0.5,color=cyan),dichtebin(10,0.5,0..10,color=navy)]);

`>`

zurück zum Anfang

Umkehrung der Summenverteilung

Für viele Aufgaben benötigt man die Umkehrung der summierten Verteilung. (Leider muss man auch hier wegen eines Fehlers in statevalf selbst programmieren)
Mit Hilfe der Prozeduren licbv , ricbv und icbv kann man den Bereich bestimmen, bis zu dem die Wahrscheinlichkeit die angegebene Grenze nicht überschreitet

`>` licbv(10,0.4,0.2);
bv(10,0.4,0)+bv(10,0.4,1)+bv(10,0.4,2);

Für eine Trefferzahl von 0 bis 2 liegt die Wahrscheinlichkeit bei 10 Versuchen unter 20%.

`>` ricbv(10,0.4,0.2);
bv(10,0.4,6)+bv(10,0.4,7)+bv(10,0.4,8)+bv(10,0.4,9)+bv(10,0.4,10);

Für eine Trefferzahl von 6 und 10 liegt die Wahrscheinlichkeit bei 10 Versuchen ebenfalls unter 20%.

`>`

zurück zum Anfang

Wert aus einem Intervall

Häufig interessiert man sich nicht für die Wahrscheinlichkeit eines einzelnen Wertes der Zufallsvariablen, sondern für die Wahrscheinlichkeit, dass die Zufallsvariable einen Wert aus einem bestimmten intervall für k annimmt:

`>` intervall(100,0.3,20,30);

`>` evalb(intervall(10,0.5,0,0)=bv(10,0.5,0));

zurück zum Anfang

Testen von Hypothesen

Man kann auch leicht Ablehnungsbereiche für Tests mit der Binomialverteilung zu bestimmen. Dabei wird die maximale Wahrscheinlichkeit , mit der eine zutreffende Nullhypothese über den Wert der Trefferwahrscheinlichkeit p verworfen wird (Fehler 1. Art) vorgegeben. Der Ablehnungsbereich des Tests besteht aus allen Ergebnissen, für die die Nullhypothese verworfen wird. Die Wahrscheinlichkeit aller dieser Ergebnisse darf zusammen nicht größer als sein. Die Wahrscheinlichkeit wird als das Signifikanzniveau des Tests bezeichnet. In der Praxis werden dafür häufig die Werte 0,05 und 0,001 verwendet.
Die Prozeduren links , rechts und beidseitig erlauben die entsprechenden Tests.

Linksseitiger Test

( : ): Gesucht ist ein maximales k mit für eine -verteilte Zufallsvariable X.

`>` links(100,0.4,0.05);

Bei einem linksseitigen Test mit n=100 und kann die Nullhypothese auf dem Signifikanzniveau bis inklusive 31 Treffern abgelehnt werden.

Rechstseitiger Test

( : ): Gesucht ist ein minimales k mit für eine -verteilte Zufallsvariable X.

`>` rechts(150,0.02,0.05);

Bei einem rechtsseitigen Test mit n=150 und kann die Nullhypothese auf dem Signifikanzniveau ab 7 Treffern abgelehnt werden.

Beidseitiger Test

Bei einem rechtsseitigen Test mit n=150 und kann die Nullhypothese auf dem Signifikanzniveau ab 7 Treffern abgelehnt werden

`>` beidseitig(100,0.4,0.05);

`>`

Fehler 2. Art

Als Fehler zweiter Art beim Testen einer Hypothese der Form : bezeichnet man den Fehler, die Nullhypothese nicht abzulehnen, obwohl p einen von verschiedenen Wert hat. Die Wahrscheinlichkeit , diesen Fehler zu begehen, hängt natürlich vom wahren Wert von p ab. Für ein festes p dieser Art ist diese Wahrscheinlichkeit gleich der Wahrscheinlichkeit, dass die zu diesem p gehörende Zufallsvariable einen Wert annimmt, der nicht zur Ablehnung der Nullhypothese führt. Die Prozedur guete bestimmt die Fehlerwahrscheinlichkeit für ein p direkt mit der oben angegebenen Funktion intervall bestimmen.

Man definiert die Gütefunktion eines Test mit:
Diese Funktion gibt an, mit welcher Wahrscheinlichkeit der Test (festgelegt durch die Anzahl n der Versuche, den kleinsten Wert ug und den größten Wert og, für die die Nullhypothese nicht verworfen wird) die Nullhypothese verwirft, wenn die wirkliche Trefferwahrscheinlichkeit p beträgt. Für erhält man damit gerade die Wahrscheinlichkeit für den Fehler erster Art. Man kann sich diese Gütefunktion für einen festen Test auch zeichnen lassen. Wir testen die Nullhypothese p=0,4 bei 100 Versuchen und lehnen sie ab für Werte kleiner 30 und größer 50:

`>` plot([guete(100,p,30,50),0.9,0.1],p=0..1,0..1,scaling=constrained,color=[red,green,blue]);

Mit mehr als 90% Wahrscheinlichkeit (grüne Linie) wird die Nullhypothese ( p=0,4) für Werte kleiner als 0,24 und größer 0,56 abgelehnt. Die Wahrscheinlichkeit, dass die Nullhypothese auch für p=0,4 abgelehnt wird, beträgt etwa 0,03. Mit weniger als 10% Wahrscheinlichkeit abgelehnt (blaue Linie) werden p-Werte zwischen etwa 0,36 und 0,44, eine recht große Spanne. Will man die Nullhypothese schärfer testen, indem man das Konfidenzintervall verkleinert, so erhält man für ein Konfidenzintervall zwischen 35 und 45 Treffern:

`>` plot([guete(100,p,35,45),0.9],p=0..1,0..1,scaling=constrained,color=[red,green]);

Wie man sieht, werden hier zwar von der Nullhypothese abweichende p-Werte schneller abgelehnt, dafür ist aber auch die Wahrscheinlichkeit für den Fehler 1. Art auf 26% gewachsen. Die einzige Möglichkeit, einen Test von größerer Trennschärfe zu erhalten, besteht darin, die Anzahl der Versuche zu erhöhen:

Achtung: Die Rechenzeit beträgt auch auf einem Pentium II 300 ca. 30s.

`>` plot([guete(1000,p,370,430),0.9,0.1],p=0..1,0..1,scaling=constrained,color=[red,green,blue]);

Wenn man viel Zeit hat, kann man auch den folgenden Versuch machen:

Achtung: Die Rechenzeit beträgt auch auf einem Pentium II 300 ca. 6min.

`>` plot([guete(10000,p,3900,4100),0.9,0.1],p=0..1,0..1,scaling=constrained,color=[red,green,blue]);

`>`

zurück zum Anfang

Erwartungswert , Varianz und Standardabweichung einer B(n;p)-verteilten Zufallsvariablen:

Der Erwartungswert einer B(n,p)-verteilten Zufallsvariablen ist definiert als , die Standardabweichung als die Varianz als Quadrat der Standardabweichung aus . Die Prozeduren mu , sigma und varianz berechnen diese Werte.

`>` E:=mu(20,0.4);

`>` S:=sigma(20,0.4);

`>` with(plottools):

`>` p1:=histo(20,0.4,color=aquamarine):

`>` p2:=plot([[E,0],[E,1]],color=blue):

`>` p3:=polygon([[E-S,0],[E-S,1],[E+S,1],[E+S,0]],color=turquoise):

`>` display([p1,p2,p3],view=[0..20,0..0.22]);

``

    Warning, new definition for transform

Man kann leicht einsehen, dass für festes n die Varianz einer B(n;p)-verteilten Zufallsvariablen für p=0,5 maximal ist:

`>` plot(varianz(10,p),p=0..1);

Das Schaubild der Funktion, die für festes n zu Werten von p zwischen 0 und 1 die Varianz liefert, ist eine nach unten geöffnete Parabel, die bei p=0 und p=1 den Wert 0 hat, ihr Maximum also bei p=0,5 annimmt.

Wir interessieren uns nun dafür, mit welcher Wahrscheinlichkeit eine B(n;p)-verteilte Zufallsvariable einen Wert im Intervall annimmt. Dazu benutzen wir eine Funktion zweisigw .

`>` zweisigw(100,0.4);zweisigw(1000,0.8);zweisigw(1500,0.5);

Es fällt auf, dass die Werte der Intervallwahrscheinlichkeiten dicht beieinander liegen, obwohl sie von verschiedenen Binomialverteilungen stammen. Wir untersuchen dies näher, indem wir eine größere Anzahl dieser Intervallwahrscheinlichkeiten berechnen und graphisch darstellen:

`>` p1:=plot([seq([n*5,zweisigw(n*5,0.8)],n=10..600)],view=[0..3000,0.9..1],color=red,style=POINT,symbol=CIRCLE):

`>` display({p1,plot(0.955,x=0..3000,color=blue)});

`>` p2:=plot([seq([n*5,zweisigw(n*5,0.5)],n=10..600)],view=[0..3000,0.9..1],color=red,style=POINT,symbol=CIRCLE):

`>` display({p2,plot(0.955,x=0..3000,color=blue)});

`>` p3:=plot([seq([n*5,zweisigw(n*5,0.01)],n=10..600)],view=[0..3000,0.9..1],color=red,style=POINT,symbol=CIRCLE):

`>` display({p3,plot(0.955,x=0..3000,color=blue)});

`>`

Das Ergebnis legt den empirischen Befund nahe, dass die Wahrscheinlichkeit eines Ergebnisses in der - Umgebung von µ wenigstens 95,5% beträgt. Man kann diesen Befund nun ausnutzen, um aus Versuchen Schätzungen von p für eine B(n;p)-verteilte Zufallsvariable zu gewinnen.

Geht man zunächst von der Zufallsvariablen X über zu Z = X, so erhält man für die Standardabweichung und für den Erwartungswert .

Wegen gilt daher .

Für geht dieser Wert gegen 0, d.h. die 2 -Umgebung um den Erwartungswert, in der 95,5% der Ergebnisse liegen kann für genügend großes n beliebig klein gemacht werden. Man kann daher das Ergebnis von Z als Schätzwert für das zu Grunde liegende p verwenden. Man spricht in diesem Fall von einer Punktschätzung.

Will man eine genauere Aussage über die möglichen Werte von p machen, so kann man mit dem Ergebnis des Zufallsversuchs ein Konfidenzintervall bestimmen. Zu dem Konfidenzintervall sollen alle Werte von p gehören, für die das Versuchsergebnis im - Bereich um den Erwartungswert der zugehörigen Zufallsvariablen liegt. Für solche Werte von p gilt:

Dabei sind n und bekannt, die Ungleichung kann also nach p aufgelöst werden. Die Prozedur konfidenz berechnet dieses Intervall.

`>` konfidenz(1000,518);konfidenz(10000,5180);konfidenz(2000,231);

`>`

Man kann sagen, dass für -Werte im jeweils berechneten Konfidenzintervall der im Versuch erhaltene Wert der Zufallsvariablen X auf einem Signifikanzniveau nicht zu einer Ablehnung der Nullhypothese : geführt hätten.

Man kann die bisherigen Erkenntnisse auch dazu benutzen, den minimalen Umfang einer Stichprobe zu bestimmen, die den Wert des Parameters p mit einer vorgegebenen Genauigkeit g (auf dem Signifikanzniveau ) liefern soll. In diesem Fall muss die -Umgebung kleiner als die vorgegebene Genauigkeit g sein:

Daraus erhält man für n die Abschätzung:

Weiß man nicht, in welchem Bereich sich p befindet, muss man den ungünstigsten Fall p=0,5 annehmen. Man erhält dann die Abschätzung:

Will man also die Trefferwahrscheinlichkeit eines Laplace-Versuchs mit einem Signifikanzniveau auf 2,5% genau bestimmen, so muss man mindestens

`>` ceil(1/(0.025^2));

Versuche machen, wenn über die Trefferwahrscheinlichkeit nichts bekannt ist. (Was ist in diesem Zusammenhang von Umfragen zu politischen Fragen zu halten, bei denen nur 1000 Personen befragt werden?)

Ist schon bekannt, dass das voraussichtliche Ergebnis im Bereich von p=0,2 liegt, so kann man das Ergebnis auch mit

`>` ceil(4*0.2*0.8/(0.025^2));

`>`

Versuchen in der gewünschten Genauigkeit erwarten. Man nutzt hier wieder aus, dass die Varianz einer B(n;p)-verteilten Zufallsvariablen für p=0,5 den Maximalwert erreicht und für p-Werte nahe bei 0 oder 1 deutlich kleiner ist.

zurück zum Anfang

zurück zum Anfang