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)
Umkehrung der Summenverteilung
Erwartungswert, Varianz und Standardabweichung
-----------------------
>
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)
(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
> 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
>
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
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