Volker Traxler, TGM Wien
Näherung der Binomialverteilung durch die Normalverteilung |
Mathematische Inhalte:
Bitte verwechseln Sie nicht MathReader (stark eingeschränkte Oberfläche, keine Eingabemöglichkeit etc.) mit dem CAS Mathematica !!!!
Der nachfolgende Ausdruck entspricht überwiegend der Ansicht am Bildschirm, mit zwei entscheidenden Ausnahmen:
Einleitung
Bespricht man die Binomialverteilung, so gelangt man über kurz oder lang zu ähnlichen Fragestellungen:
Bevor diese Fragestellung mit Hilfe des CAS Mathematica "visualisiert" wird, wird mit folgendem Befehl der Speicher gelöscht:
In[1]:=
Remove["Global`*"]
Weiters werden noch zusätzliche Pakete (packages) aus dem Bereich der Statistik und Graphik geladen:
In[2]:=
Needs["Statistics`Master`"]
In[3]:=
Needs["Graphics`Master`"]
Sammeln von Information
Betrachten wir verschiedene Arten der Darstellung der Wahrscheinlichkeitsfunktion einer Binomialverteilung, wobei eigene "Funktionen" definiert werden.
n Darstellung der Wahrscheinlichkeitsfunktion g(x) als Punktdiagramm:
¨ Die Funktion "punktdiagramm".
In[4]:=
punktdiagramm[stichprobenumfang_,
wahrscheinlichkeit_,
optionen___] :=
Module[{n,p,e,s,x},
n=stichprobenumfang;
p=wahrscheinlichkeit;
e=n*p;
s=Sqrt[n*p*(1-p)];
ListPlot[
Transpose[{
Table[x, {x,0,n}],
Table[Evaluate[
PDF[BinomialDistribution[n,p],x]],{x,0,n}]
}],
optionen,
PlotRange->{{If[e-4s>0,e-4s,-.5],e+4s},
{0,Max[Table[Evaluate[PDF[
BinomialDistribution[n,p],x]],
{x,0,n}]]}},
AxesOrigin->{If[e-4s>0,e-4s,-.5],0}
]
];
Wie erfolgt nun der Aufruf der Funktion "punktdiagramm" ? Im Prinzip ganz einfach: durch Eingabe von punktdiagramm[n,p] , wobei n der Stichprobenumfang und p die Grundwahrscheinlichkeit der Binomialverteilung darstellt (siehe unten!). Danach drückt man gleichzeitig die Shift- und Enter-Taste.
In[5]:=
punktdiagramm[20,0.1];
n Darstellung der Wahrscheinlichkeitsfunktion g(x) als Stabdiagramm:
¨ Die Funktion "histogramm".
In[6]:=
histogramm[stichprobenumfang_,
wahrscheinlichkeit_,
breitedeshistogramms_,
optionen___] :=
Module[{n,p,b,e,s,x},
n=stichprobenumfang;
p=wahrscheinlichkeit;
b=breitedeshistogramms;
e=n*p;
s=Sqrt[n*p*(1-p)];
GeneralizedBarChart[
Transpose[{
Table[x, {x,0,n}],
Table[Evaluate[
PDF[BinomialDistribution[n,p],x]],{x,0,n}],
Table[b, {i,0,n}]
}],
optionen,
BarStyle->{RGBColor[1,1,1]},
PlotRange->{{If[e-4s>0,e-4s,-.5],e+4s},
{0,Max[Table[Evaluate[PDF[
BinomialDistribution[n,p],x]],
{x,0,n}]]}},
AxesOrigin->{If[e-4s>0,e-4s,-.5],0}
]
];
Geben Sie histogramm[n,p,breite] ein; die Argumente n und p siehe "punktdiagramm". Das Argument breite legt die Breite der Säulen fest.
In[7]:=
histogramm[20,0.1,0.1];
n Das Galtonbrett
Als Modell für den Sonderfall der Binomialverteilung mit p = 0.5, sowie später, als Modell für die Überlagerung von Störungen bei Fertigungsprozessen, dient das Galtonbrett. Das Fächergestell des Galtonbretts weist in Richtung Histogramm.
n Summe versus Integral
Hier kann die Tatsache in Erinnerung gerufen werden, daß Integrale das stetige Analogon zu Summen sind. ("Integrale sind im gewissen Sinne leichter zu handhaben als eine Summe vieler Summanden!").
Beispiel für Summen: Verteilungsfunktion G(x)
Auswertung der Information
Obiges Kapitel legt nahe, die Wahrscheinlichkeit g(x) nicht als Punkt, sondern durch den Flächeninhalt eines Rechtecks mit der Breite 1 und der Höhe g(x) darzustellen.
In[12]:=
histogramm[20,0.1,1];
Der Computer soll nun Binomialverteilungen mit verschiedenen n, jedoch gleichem p, nacheinander darstellen. Betrachten wir folgende Animation:
¨ Die Funktion animatio
In[13]:=
animatio[stichprobenumfang_,
wahrscheinlichkeit_,
anfangswert_,
schrittweite_,
optionen___] :=
Module[{p,a,sch,ende,e,s,x},
p=wahrscheinlichkeit;
a=anfangswert;
sch=schrittweite;
ende=stichprobenumfang;
e=ende*p;
s=Sqrt[ende*p*(1-p)];
Do[
GeneralizedBarChart[
Transpose[{
Table[x, {x,0,n}],
Table[Evaluate[PDF[BinomialDistribution[n,p],x]],
{x,0,n}],
Table[1,{x,0,n}]
}],
optionen,
BarStyle->{RGBColor[1,1,1]},
PlotRange->{ {-2,e+3.5*s},
{0,Max[Table[Evaluate[PDF
[BinomialDistribution[a,p],x]],
{x,0,n}]]}
}
],
{n,a,ende,sch}
]
];
Geben Sie animatio[n,p,anfangswert,schrittweite] ein. Die Argumente n und p siehe "punktdiagramm", anfangswert ist der Beginn, schrittweite die Schrittweite, ende aus dem Abschnitt Module ist ident mit dem Stichprobenumfang, die Schleifenvariable ist n.
In[16]:=
animatio[100,0.1,10,10]
Ziel: "Festnageln" der Lage ( my=0 ).
"Festnageln" der Streuung (ungefähr "gleiche
Ausdehnung" der Histogramme).
Gesamtfläche des Histogramms muß 1 bleiben.
Transformation: u = (x-my)/sigma.
Ergebnis: Der Nullpunkt fällt mit Mittelwert
zusammen.
Die neue Breite der Rechtecke beträgt das 1/sigma-fache
der alten.
Die neue Höhe der Rechtecke beträgt das
sigma-fache der alten.
¨ Die Funktion animatio1
In[17]:=
animatio1[stichprobenumfang_,
wahrscheinlichkeit_,
anfangswert_,
schrittweite_,
optionen___] :=
Module[{p,a,sch,ende,e,s},
p=wahrscheinlichkeit;
a=anfangswert;
sch=schrittweite;
ende=stichprobenumfang;
my=n*p;
sigma=Sqrt[n*p*(1-p)];
Do[
GeneralizedBarChart[
Transpose[{
(* "Festnageln" der Lage (my=0),Transf.:(x-my)/sigma *)
Table[(x-my)/sigma, {x,0,n}],
(* Die neue Höhe der Rechtecke beträgt
das sigma-fache
der alten *)
sigma*Table[Evaluate[PDF[BinomialDistribution[n,p],x]],
{x,0,n}],
(* Die neue Breite der Rechtecke beträgt
das
1/sigma-fache der alten *)
Table[1/sigma,{x,0,n}]
}],
optionen,
BarStyle->{RGBColor[1,1,1]},
PlotRange->{{-3.5,3.5},{0,0.45}}
],
{n,a,ende,sch}
]
];
Geben Sie animatio1[n,p,anfangswert,schrittweite] ein. Argumente analog zu animatio.
Wichtiger Unterschied: siehe mit Kommentar (* *) versehener Code von animatio1 !!!!!
In[18]:=
animatio1[100,0.1,10,10];
Herleitung der Normalverteilung
Wie in der obigen Animation veranschaulicht, verteilt man die Wahrscheinlichkeit g(x,p) der diskreten Verteilung an der Stelle x gleichmäßig über den Bereich x-0.5 bis x+0.5.
Bilden wir mit Hilfe der Rekursionsformel für die Binomialverteilung die Differenz zweier benachbarter Werte
In[22]:=
df = f((n-x)/(x+1) p/q - 1) dx
Out[22]:=
und bringen den Klammerausdruck auf gemeinsamen Nenner
In[23]:=
gl1 = Together[df]
Out[23]:=
Ersetzen wir p x + q x durch x
In[24]:=
gl2 = gl1 /. -p x-q x-> -x
Out[24]:=
und führen wir die Standardabweichung
In[25]:=
s = Sqrt[n p q];
ein.
Standardisieren des Merkmals x (siehe Standardisierung der Binomialverteilung) und Bildung der Differenzengleichung
In[26]:=
gl3 = gl2/du //. {x -> u s + n p , dx ->
du s }
Out[26]:=
ergibt für n->unendlich die rechte Seite der Differentialgleichung
In[27]:=
Limit[gl3,n->Infinity]
Out[27]:=
-(f u)
Die Lösung der Differentialgleichung
In[28]:=
lsg1 = DSolve[f'[u] == -f[u] u, f[u],u]
Out[28]:=
ergibt folgende Funktion:
In[29]:=
f[u_] = f[u] /. lsg1[[1]]
Out[29]:=
Als Wert für die Fläche unterhalb des Graphen erhalten wir:
In[30]:=
lsg2 = Integrate[f[u],{u,-Infinity,Infinity}]
Out[30]:=
Sqrt[2 Pi] C[1]
Um den Wert der Konstante C[1] festzulegen, wählen wir für die Fläche sinnvollerweise 1:
In[31]:=
lsg3 = Solve[lsg2 == 1, C[1]]
Out[31]:=
In[32]:=
lsg4 = C[1] /. lsg3[[1]]
Out[32]:=
Somit lautet unsere Approximationsfunktion:
In[33]:=
f[u_] = f[u] /. C[1]->lsg4
Out[33]:=
Der Graph der standardisierten Normalverteilung ergibt sich zu
In[34]:=
nv1 = Plot[f[u],{u,-3,3}];
Buchliste:
¨
Reichel, Hans Christian (Hrsg.): "Wahrscheinlichkeitsrechnung und Statistik",
Mathematik für Schule und Praxis, Verlag Hölder-Pichler-Tempsky,
1987
ISBN 3-209-00736-5
¨ Stange, Kurt : "Angewandte Statistik", Erster Teil, eindimensionale Probleme, Springer-Verlag, Berlin-Heidelberg-New York 1970
¨ Wolfram, Stephen: "Mathematica, Ein System für Mathematik auf dem Computer", Zweite Auflage,Addison-Wesley Verlag (Deutschland) GmbH
¨
Kofler, Michael: "Mathematica", Einführung und Leitfaden für
den Praktiker, 1. Auflage, Addison-Wesley Verlag (Deutschland) GmbH
ISBN 3-89319-485-1