Volker Traxler, TGM Wien

Näherung der Binomialverteilung durch die Normalverteilung

Mathematische Inhalte:

Anwendung: Statistische Grundlagen der Qualitätssicherung. Kurzzusammenfassung: Visualisierung der Näherung der Binomialverteilung durch die Normalverteilung mit Hilfe von Animationen, Herleitung der Wahrscheinlichkeitsdichtefunktion der Normalverteilung. Lehrplanbezug: 4. Jahrgang HTL - Statistik und Wahrscheinlichkeitsrechnung, (8. Klasse AHS). Zeitaufwand: Je nach "Besprechungstiefe" 15 Minuten bis 4 Stunden. Mediales Umfeld: Medien: PC´s, Software: Mathematica Version 2.2, Overhead - LCD - Display Anmerkungen: Ich habe versucht, dieses Thema (außer Anwendungen auf konkrete Beispiele und dem dabei auftauchenden Problem der Stetigkeitskorrektur) vollständig auszuleuchten. Ihnen bleibt es nun überlassen, ob Sie nur z.B. die beiden Animationen zwecks Visualisierung der Problemstellung vorführen wollen oder ob Sie gar bis zur Herleitung der Normalverteilung (und sei es nur an der Tafel) mit Ihrer Klasse vordringen. Wichtig: Mit Hilfe der Software MathReader Version 2.2 (die an Schüler und Lehrer weitergegeben werden darf) können Sie den Inhalt meines Mathematica - files, ohne im Besitz von Mathematica selbst zu sein, am PC betrachten und die Animationen vorführen !!!!. Allerdings können Sie keine Eingaben tätigen oder Berechnungen vornehmen !!!! Falls Sie die Disketten bestellt haben, sollte sich darauf MathReader befinden.

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:

  • Der Programmcode der einzelnen Befehle wurde hier am Papier nicht "versteckt" , siehe MathReader, d.h. die Schüler müssen am Bildschirm nicht damit konfrontiert werden.
  • Da in Winword Graphik-Animationen nicht möglich sind, erscheinen statt einer Graphik, die animiert werden kann, alle 10 Einzelbilder untereinander.
  • Näherung der Bi durch die NV

    Einleitung

    Bespricht man die Binomialverteilung, so gelangt man über kurz oder lang zu ähnlichen Fragestellungen:

    1. Wie groß ist die Wahrscheinlichkeit bei 1000-maligem Werfen einer "idealen" Münze zwischen 468- und 532-mal Wappen zu erhalten ?
    2. Die Wahrscheinlichkeit einer Knabengeburt beträgt p = 0.51. Bei einer Untersuchung von 10000 Geburten stellte sich die Frage, mit welcher Wahrscheinlichkeit zwischen 5000 und 5200 Geburten beobachtet werden können?
    Oder der "Praxis" näherstehende Fragestellungen:
    1. Eine Zuverlässigkeitsanalyse hat ergeben, daß von einem bestimmten Teil 75% nach

    2. 5 Jahren Einsatz ausgefallen sein werden. In einer Anlage sind 100 derartige Teile eingebaut. Mit wie vielen Ausfällen muß man bei zehn Anlagen maximal rechnen (Irrtumswahrscheinlichkeit 10 %) ?
    3. Von den ersten 1000 gefertigten Einheiten waren 35 fehlerhaft. Mit welchem Fehleranteil in der Fertigung muß man rechnen ( Irrtumswahrscheinlichkeit 5 %) ?
    Es erhebt sich nun die Frage, wie man den Rechenaufwand (übliche Tabellen und Larson-Nomogramm versagen) verringern kann, ohne die technisch erforderliche Genauigkeit zu vernachlässigen.

    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];

    Bemerkung: Sollten Sie bei obiger Graphik keine Punkte am Bildschirm entdecken, ist im Menü Graph "Make Lines Thin" eingestellt. Deaktivieren dieser Einstellung löst dieses Problem!

     

    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];

    Sie sind eingeladen, die Werte für n und p zu verändern (Sollte sich der Plotbereich (PlotRange) oder die Wahl des Achsenkreuzungspunkt (AxesOrigin) nicht als sinnvoll erweisen, so bitte ich Sie, dies zu ändern). Siehe (versteckte) Beispiele unterhalb !

     
    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];

     

    Das Experiment

    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]

    Die Kurven werden i.a. immer breiter und sie wandern nach rechts, je größer n wird. Um nun die Binomialverteilungen miteinander vergleichen zu können, führen wir eine "Standardisierung" durch.

    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];

    Wie man sieht, lassen sich die Histogramme der standardisierten Binomialverteilung bei n-> unendlich durch eine Glockenkurve approximieren.

     

    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.

    und erhält eine stetige Verteilung f(x) (kurz f bezeichnet) mit dx = 1.

    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}];

    Betrachten wir gemeinsam das Histogramm der Binomialverteilung für n = 100 und p=0,1 und deren Näherung für n-> unendlich: Bemerkung: Die Anwendung auf die zu Beginn aufgezählten Beispiele wird hier nicht weiter ausgeführt.

    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