WuS_Hausaufgabe_3 (Score: 64.0 / 100.0)

  1. Written response (Score: 0.0 / 5.0)
  2. Written response (Score: 0.0 / 5.0)
  3. Written response (Score: 0.0 / 5.0)
  4. Written response (Score: 0.0 / 5.0)
  5. Test cell (Score: 5.0 / 5.0)
  6. Test cell (Score: 5.0 / 5.0)
  7. Test cell (Score: 3.0 / 3.0)
  8. Test cell (Score: 5.0 / 5.0)
  9. Test cell (Score: 2.0 / 2.0)
  10. Test cell (Score: 5.0 / 5.0)
  11. Test cell (Score: 4.0 / 4.0)
  12. Test cell (Score: 0.0 / 5.0)
  13. Test cell (Score: 0.0 / 6.0)
  14. Test cell (Score: 6.0 / 6.0)
  15. Test cell (Score: 7.0 / 7.0)
  16. Test cell (Score: 7.0 / 7.0)
  17. Test cell (Score: 5.0 / 5.0)
  18. Test cell (Score: 5.0 / 5.0)
  19. Test cell (Score: 5.0 / 5.0)
  20. Test cell (Score: 0.0 / 5.0)

Wahrscheinlichkeitstheorie und Statistik

WS 2023 / 2024

WuS Hausaufgabe 3

Abgabetermin

Die Abgabefrist dieser Hausaufgabe ist 2023-11-20 14:30!

Vergessen Sie nicht Ihre Übung abzugeben (Assignment Tab / Submit Button). Einfaches Speichern reicht nicht! Sie können beliebig oft abgeben, die letzte Abgabe vor der Deadline wird gewertet.

Viel Erfolg!

Hinweise zur Bearbeitung der Übung

Allgemeine Informationen:

  • Schreiben Sie Ihre Antwort an die Stelle YOUR CODE HERE.
  • Fügen Sie keine neuen Zellen hinzu oder löschen Zellen.
  • Benennen Sie keine der Dateien / Notebooks um.

Angabe von Ergebnissen

  • Runden Sie Ihre Ergebnisse nicht. Bei den Tests werden bis zu 6 Nachkommastellen geprüft.
  • Prozentzahlen werden immer als Zahl zwischen 0 und 1 angegeben. 30% wird somit als 0.3 angegeben.
  • Fließkommazahlen werden mit einem Dezimalpunkt angegeben, nicht mit einem Komma. 140.25.

Programmcode

  • Das Ergebnis einer Funktion muss mittels return zurückgegeben werden. Ein print Statement ist keine gültige Rückgabe.
  • Stellen Sie sicher, dass sich Ihr Code ausführen lässt. Code der nicht läuft kann nicht automatisch bewertet werden.
  • Bevor Sie abgeben: Klicken Sie im Menü auf Kernel > Restart & Run All (oder den Button in der Toolbar). Damit führen Sie das Notebook linear von oben nach unten aus. Alle Fehler die dann auftreten, treten auch beim Bewerten auf.
  • Entfernen Sie die raise NotImplementedError(), wenn Sie eine Aufgabe bearbeiten. Ansonsten wird beim Bewerten eine Exception ausgelöst, die uns sagt, dass Sie die Aufgabe nicht bearbeitet haben!
In [1]:
1# execute this for default imports
2import math
3import random as rd
4import numpy as np
5import pandas as pd
6from matplotlib import pyplot as plt
7from scipy import stats

Task 1

[20 Point(s)]

Textaufgaben

Im Folgenden finden Sie Textaufgaben, die Ihr Verständnis des Vorlesungsstoffs abprüfen. Nutzen Sie gerne Formeln und Beispiele, halten Sie Ihre Antwort aber relativ kurz und verständlich. Übermäßig ausschweifende Antworten führen zu Punktabzug.

Task 1.1

[5 Point(s)]

Mittelwert, Median und Modus

Erläutern Sie kurz jeweils den Mittelwert, Median und Modus und gehen dabei insb. auch auf mögliche Unterschiede ein. Welches der Maße würden Sie bei großer Varianz verwenden und warum?

Student's answer Score: 0.0 / 5.0 (Top)

Mittelwert: Ist der Durchschnitt einer Stichprobe. Nicht bei großer Varianz zu verwenden, da ausreißer große Wertschwankungen erzeugen.

Median: Ist der Wert der mittig in der Stichprobe ist. Bleibt auch bei großer Varianz stabil.

Modus: Ist der Wert der am heufigsten in der Stichprobe vorkommt. Bleibt auch bei großer Varianz stabil, da er nur die häufigkeit der Werte betrachtet.

Task 1.2

[5 Point(s)]

Axiome von Kolmogorow

Erläutern Sie kurz die in der Vorlesung besprochenen Axiome von Kolmogorow in eigenen Worten und finden ein Beispiel, anhand dessen Sie jedes der Axiome kurz verdeutlichen.

Student's answer Score: 0.0 / 5.0 (Top)

Wahrscheinlichkeiten müssen zwischen 0 und 1 liegen. Alle möglichen Wahrscheinlichkeiten müssen sich zu 1 Addieren.Die Vereinigung aller Ereignisse entspricht der Summe der Wahrscheinlichkeiten aller eintelner Ereignisse

Beispiel: Münzwurf

Kopf: P(K)=1/2 Zahl: P(Z)=1/2

P(K)+P(Z)=1P(KZ)=P(K)+P(Z)

Task 1.3

[5 Point(s)]

Mittelwert vs. Erwartungswert

Erklären Sie kurz den Mittelwert und den Erwartungswert. Was ist der Zusammenhang, was der Unterschied zwischen beiden? Verdeutlichen Sie dies an einem einfachen Beispiel.

Student's answer Score: 0.0 / 5.0 (Top)

Mittelwert: Bei einem Zufallsexperiment ist der Mittelwert der wert der im Durchschnitt aufgetreten ist.#

Erwartungswert: Ist der Wert der für dieses Experiement als Mittelwert berechnet wird wenn man die Einzelwahrscheinlichkeiten zusammen nimmt.

Beispiel:

Würfel:

Erwartungswert: 1/61+1/62+1/63+1/64+1/65+1/66=3,5

Mittelwert: Wir würfeln 20 mal. Ergebnisse: [3, 1, 4, 6, 2, 2, 5, 3, 2, 5, 5, 4, 2, 4, 5, 6, 1, 2, 1, 1]

also: 64/20=3.2

Der Mittelwert ist also nahe oder genau dem Erwartungswert. Und nähert sich mit einer größeren Stichprobe immer weiter an

Task 1.4

[5 Point(s)]

Wahrscheinlichkeitbaum

Erläutern Sie kurz, was ein Wahrscheinlichkeitsbaum ist, welchen Zusammenhang dieser zu abhängigen Wahrscheinlichkeiten und Bayes hat und welche Rechenregeln in ihm gelten (z.B. welche Wahrscheinlichkeiten im Baum sich zu 1 aufsummieren).

Student's answer Score: 0.0 / 5.0 (Top)

In einem Wahrscheinlichkeitsbaum werden die Wahrscheinlichkeiten der Ereignisse übersichtlich dargestellt. Direkt unter der Wurzel sind die Äste mit nicht bedingten Wahrscheinlichkeiten. Unter den anderen Knoten sind die vom Knoten abhängigen Wahrscheinlichkeiten.

Alle Wahrscheinlichkeiten die unter einem Knoten oder der Wurzel stehen haben gemeinsam die Summe 1.

Produktregel: An einem Pfad entlang alle Wahrscheinlichkeiten multiplizieren um Wahrscheinlichkeit des Pfades zu erhaltenP(AB)

Summenregel: Mehrere Pfade addieren um Wahrscheinlichkeit eines Ereignisses zu erhaltenP(AB)+P(AB)=P(A)

Task 2

[25 Point(s)]

Kombinatorik - Verschiedenes

Task 2.1

[5 Point(s)]

Kombinatorik - Verschiedenes a)

Angenommen eine Sitzreihe in Hörsaal 8 hat 20 Plätze und Sie wollen sich mit Ihren 19 Freunden in diese Reihe setzen.

Wie viele verschiedene Anordnungsmöglichkeiten gibt es für die 20 Personen auf die 20 Plätze?

Speichern Sie ihre Lösung in der Variable anordnungen.

In [2]:
Student's answer(Top)
1anordnungen = math.factorial(20)
2anordnungen
Out[2]:
2432902008176640000
In [3]:
Grade cell: test_04_Kombinatorik_Verschiedenes_A0 Score: 5.0 / 5.0 (Top)
 1### BEGIN HIDDEN TESTS
 2import math
 3import numpy as np
 4from assignmenttest.decorators import test_asserts
 5
 6# mit Reihenfolge, ohne Wiederholungen
 7expected = math.factorial(20)
 8
 9points = 5
10@test_asserts(points)
11def check():
12    if anordnungen == 20**20:
13        print("Gängiger Fehler: Die Reihenfolge ist wichtig, die Wiederholungen nicht\n")
14    assert anordnungen == expected, f"anordnungen sollte n! = 20! = {expected} sein, ist aber {anordnungen}"
15check() 
16### END HIDDEN TESTS
1 / 1 tests passed

### BEGIN GRADE
5.0
### END GRADE

Task 2.2

[5 Point(s)]

Kombinatorik - Verschiedenes b)

Beim Doppelkopf erhalten Sie ein Blatt mit 12 Karten aus einem Doppelkopfspiel mit 48 verschiedenen Karten.

Wie viele mögliche Blätter gibt es?

Speichern Sie ihre Lösung in der Variable blaetter.

In [4]:
Student's answer(Top)
1blaetter = math.factorial(48) // (math.factorial(12) * math.factorial(48-12)) ## math.comb(48,12)
2blaetter
Out[4]:
69668534468
In [5]:
Grade cell: test_04_Kombinatorik_Verschiedenes_B0 Score: 5.0 / 5.0 (Top)
 1### BEGIN HIDDEN TESTS
 2import math
 3import numpy as np
 4from assignmenttest.decorators import test_asserts
 5
 6# ohne Wiederholung, ohne Reihenfolge
 7expected = math.comb(48,12)
 8
 9points = 5
10@test_asserts(points)
11def check():
12    if blaetter == 48**12:
13        print("Gängiger Fehler A: Wiederholungen sind nicht möglich, die Reihenfolge ist nicht wichtig\n")
14    if blaetter == math.perm(48,12):
15        print("Gängiger Fehler B: Sie berechnen mit perm die möglichen Reihenfolgen der Karten mit, statt mit comb die Reihenfolge zu ignorieren.\n")
16    assert blaetter == expected, f"blaetter sollte 48 über 12 = {expected} sein, ist aber {blaetter}"
17
18check() 
19### END HIDDEN TESTS
1 / 1 tests passed

### BEGIN GRADE
5.0
### END GRADE

Task 2.3

[3 Point(s)]

Kombinatorik - Verschiedenes c)

Angenommen Sie nutzen jedes Wochenende voll aus, um mit drei Freunden Doppelkopf zu spielen, und spielen pro Tag 3 Spiele. Angenommen bei jedem Spiel tritt eine Anordnung auf, die Sie vorher noch nie gespielt haben. Gehen Sie davon aus, dass ein Jahr 52 Wochen hat.

Wie viele Jahre brauchen Sie bis Sie jede Anordnung genau einmal gespielt haben?

Speichern Sie ihre Lösung in der Variable jahre.

In [6]:
Student's answer(Top)
1jahre = blaetter / (3 * 2 *52)
2jahre
Out[6]:
223296584.83333334
In [7]:
Grade cell: test_04_Kombinatorik_Verschiedenes_C0 Score: 3.0 / 3.0 (Top)
 1### BEGIN HIDDEN TESTS
 2import math
 3import numpy as np
 4from assignmenttest.decorators import test_asserts
 5
 6# für Folgefehler...
 7blaetter = globals().get('blaetter', 0) or math.comb(48, 12)
 8tageProWochenende = 2
 9spieleProTag = 3
10wochenProJahr = 52
11
12expected = blaetter / (tageProWochenende * spieleProTag * wochenProJahr)
13expected_r = blaetter // (spieleProTag * tageProWochenende * wochenProJahr)
14
15points = 3
16@test_asserts(points)
17def check():
18    if math.isclose(jahre, blaetter / (spieleProTag * tageProWochenende * wochenProJahr * 2), rel_tol=0):
19        print("Gängiger Fehler A: Die Spieldauer sollte ignoriert werden\n")
20    if math.isclose(jahre, (blaetter / (6/52)), rel_tol=0):
21        print("Gängiger Fehler B: Bruch falsch zusammengefasst\n")
22    if isinstance(jahre, int) and jahre in [expected_r, round(expected)]:
23        print("Gängiger Fehler C: Vorsicht, niemand hat etwas von Runden oder Integer-Division gesagt\n")
24    
25    assert math.isclose(jahre, expected, rel_tol=0) or math.isclose(jahre, expected_r, rel_tol=0) or math.isclose(jahre, round(expected), rel_tol=0)
26    assert math.isclose(jahre, expected, rel_tol=0), f"jahre sollte {expected} sein, ist aber {jahre}"
27
28check() 
29
30### END HIDDEN TESTS
2 / 2 tests passed

### BEGIN GRADE
3.0
### END GRADE

Task 2.4

[5 Point(s)]

Kombinatorik - Verschiedenes f)

Viele Fahrradschlösser haben ein 4-stelliges Zahlenschloss mit Zahlen von 0-9.

Wie viele Möglichkeiten gibt es für den Zahlencode?

Speichern Sie ihre Lösung in der Variable code.

In [8]:
Student's answer(Top)
1code = 10**4
2code
Out[8]:
10000
In [9]:
Grade cell: test_04_Kombinatorik_Verschiedenes_D0 Score: 5.0 / 5.0 (Top)
 1### BEGIN HIDDEN TESTS
 2from assignmenttest.decorators import test_asserts
 3import numpy as np
 4
 5expected = 10**4
 6points = 5
 7@test_asserts(points)
 8def check():
 9    if code == 9**4:
10        print("Gängiger Fehler A: 0-9 sind 10 Möglichkeiten")
11    if code in [math.comb(10, 4), math.perm(10, 4)]:
12        print("Gängiger Fehler B: Wiederholungen können vorkommen")
13    if code == 4**10:
14        print("Gängiger Fehler C: Sie haben ein Zahlenschloss mit 10 Stellen und je 4 Ziffern simuliert")
15    assert code == expected, f"code sollte {expected} sein, ist aber {code}"
16
17check() 
18### END HIDDEN TESTS
1 / 1 tests passed

### BEGIN GRADE
5.0
### END GRADE

Task 2.5

[2 Point(s)]

Kombinatorik - Verschiedenes g)

Angenommen jemand braucht 0.5 Sekunden zum Ausprobieren eines Codes.

Wie viele Minuten dauert es bis jemand alle Codes ausprobiert hat?

Speichern Sie ihre Lösung in der Variable dauer.

In [10]:
Student's answer(Top)
1dauer = 0.5*code/60
2dauer
Out[10]:
83.33333333333333
In [11]:
Grade cell: test_04_Kombinatorik_Verschiedenes_E0 Score: 2.0 / 2.0 (Top)
 1### BEGIN HIDDEN TESTS
 2from assignmenttest.decorators import test_asserts
 3import numpy as np
 4
 5# für Folgefehler:
 6code = globals().get('code', 0) or 10**4
 7expected = 0.5*code / 60
 8
 9points = 2
10@test_asserts(points)
11def check():
12    if dauer == 0.5*code//60:
13        print("Gängiger Fehler: Bitte mit Nachkommastellen\n")
14    assert np.allclose(dauer, expected, rtol=0) or dauer == 0.5*code//60
15    assert np.allclose(dauer, expected, rtol=0), f"dauer sollte {expected} sein, ist aber {dauer}"
16
17check() 
18### END HIDDEN TESTS
2 / 2 tests passed

### BEGIN GRADE
2.0
### END GRADE

Task 2.6

[5 Point(s)]

Kombinatorik - Verschiedenes h)

Angenommen in der Mensa gibt es 4 Gerichte. Das Mensapersonal weiß, dass um 12:15 Uhr immer 200 Personen essen kommen. Dem Kassenprüfer fällt auf, dass sich die 4 Summen der verkauften Gerichte an jedem Tag leicht unterscheiden. Das 4-tupel der Essenssummen hat sich aber in seinen Unterlagen über das letzte Jahr noch nie wiederholt. Er findet das seltsam und fragt sich, wie viele verschiedene Essenssummen es denn gibt. Helfen Sie ihm!

Nehmen Sie an, die 200 Personen wählen ihre Gerichte rein zufällig. Eine Möglichkeit für die Essenssummen ist z.B., dass 17x Essen 1, 113x Essen 2, 30x Essen 3 und 40x Essen 4 abgerechnet wurde.

Speichern Sie Ihre Lösung in der Variable essenssummen.

In [12]:
Student's answer(Top)
1essenssummen = math.comb(200+4-1,200)
2essenssummen
Out[12]:
1373701
In [13]:
Grade cell: test_04_Kombinatorik_Verschiedenes_F0 Score: 5.0 / 5.0 (Top)
 1### BEGIN HIDDEN TESTS
 2import math
 3import numpy as np
 4from assignmenttest.decorators import test_asserts
 5
 6
 7expected = math.comb(203,3)
 8points = 5
 9@test_asserts(points)
10def check():
11    if essenssummen == math.perm(200, 4):
12        print("Gängiger Fehler A: Die Reihenfolge innerhalb einer Schlange ist egal")
13    if essenssummen == math.comb(200, 4):
14        print("Gängiger Fehler B: Sie scheinen einfach 4 aus 200 zu ziehen, also eine Kombination ohne Wdh. Hier sind wir aber bei Kombination mit Wdh., d.h. Sie brauchen 3 Trennzeichen für die 4 Schlangen und sollten diese bei der Gesamtlänge oben mitzählen und unten auf diese reduzieren, siehe VL")
15    if essenssummen == math.comb(200, 3):
16        print("Gängiger Fehler C: Sie brauchen 3 Trennzeichen für die 4 Schlangen, und müssen diese bei der Gesamtlänge mitzählen, siehe VL")        
17    if essenssummen == math.comb(204, 4) or essenssummen == math.comb(203, 4):
18        print("Gängiger Fehler D: Sie brauchen 3 Trennzeichen für die 4 Schlangen, siehe VL")
19    if essenssummen == 4**200:
20        print("Gängiger Fehler E: Die Reihenfolge innerhalb einer Schlange ist egal")
21    assert essenssummen == expected, f"schlangen sollte {expected} sein, ist aber {essenssummen}"
22
23check() 
24### END HIDDEN TESTS
1 / 1 tests passed

### BEGIN GRADE
5.0
### END GRADE

Task 3

[15 Point(s)]

Urnen

Gegeben seien zwei Urnen.

Die Urne U1 enthält drei rote und sieben blaue Kugeln.

Die Urne U2 enthält zwei blaue und sechs rote Kugeln.

Beim Ziehen gehen Sie wie folgt vor: Im ersten Schritt wählen Sie blind (und zufällig) eine Urne aus. Im zweiten Schritt ziehen Sie eine Kugel aus der gewählten Urne.

Task 3.1

[4 Point(s)]

Urnen a)

Wie hoch ist die Wahrscheinlichkeit dafür eine rote Kugel zu ziehen?

Speichern Sie Ihre Lösung in der Variable wahrscheinlichkeitRot.

In [14]:
Student's answer(Top)
1wahrscheinlichkeitRot = 0.5 * 3/10 + 0.5 * 6/8 
2wahrscheinlichkeitRot
Out[14]:
0.525
In [15]:
Grade cell: test_05_Bedingte_Wkeiten_Kombinatorik_Bayes_Urnen_A0 Score: 4.0 / 4.0 (Top)
 1### BEGIN HIDDEN TESTS
 2import numpy as np
 3from assignmenttest.decorators import test_asserts
 4
 5expected = 3/20 + 6/16
 6
 7points = 4
 8@test_asserts(points)
 9def check():
10    assert np.allclose(wahrscheinlichkeitRot, expected), f"wahrscheinlichkeitRot sollte {expected} sein, ist aber {wahrscheinlichkeitRot}"
11
12check() 
13### END HIDDEN TESTS
1 / 1 tests passed

### BEGIN GRADE
4.0
### END GRADE

Task 3.2

[5 Point(s)]

Urnen b)

Sie haben eine rote Kugel gezogen. Wie hoch ist die Wahrscheinlichkeit dafür, dass diese aus der Urne U1 stammt?

Speichern Sie Ihre Lösung in der Variable wahrscheinlichkeitRotAusUrne1.

In [16]:
Student's answer(Top)
1wahrscheinlichkeitRotAusUrne1 = ((3/10) * .5) / 0.5
2
3wahrscheinlichkeitRotAusUrne1
Out[16]:
0.3
In [17]:
Grade cell: test_05_Bedingte_Wkeiten_Kombinatorik_Bayes_Urnen_B0 Score: 0.0 / 5.0 (Top)
 1### BEGIN HIDDEN TESTS
 2import numpy as np
 3from assignmenttest.decorators import test_asserts
 4
 5P_U1 = P_U2 = 1 / 2
 6P1_rot = 3 / 10
 7P2_rot = 6 / 8
 8
 9expected = (P1_rot * P_U1) / (P1_rot * P_U1 + P2_rot * P_U2)
10
11points = 5
12@test_asserts(points)
13def check():
14    assert np.allclose(wahrscheinlichkeitRotAusUrne1, expected), f"wahrscheinlichkeitRotAusUrne1 sollte {expected} sein, ist aber {wahrscheinlichkeitRotAusUrne1}"
15
16check() 
17### END HIDDEN TESTS
!--> AssertionError: wahrscheinlichkeitRotAusUrne1 sollte 0.2857142857142857 sein, ist aber 0.3
     Line 2: assert np.allclose(wahrscheinlichkeitRotAusUrne1, expected), f"wahrscheinlichkeitRotAusUrne1 sollte {expected} sein, ist aber {wahrscheinlichkeitRotAusUrne1}"

0 / 1 tests passed

### BEGIN GRADE
0.0
### END GRADE

Task 3.3

[6 Point(s)]

Urnen c)

Nehmen Sie an Sie haben eine rote Kugel gezogen und diese nicht zurückgelegt.

Wie hoch ist nun die Wahrscheinlichkeit dafür im nächsten Versuch wieder eine rote Kugel zu ziehen?

Speichern Sie Ihre Lösung in der Variable wahrscheinlichkeitRotAlsZweite.

In [18]:
Student's answer(Top)
1P_U1_R_U1_R = (.5)*(3/10)*(.5)*(2/9)
2P_U1_R_U2_R = (.5)*(3/10)*(.5)*(6/8)
3P_U2_R_U1_R = (.5)*(6/8)*(.5)*(3/10)
4P_U2_R_U2_R = (.5)*(6/8)*(.5)*(5/7)
5
6wahrscheinlichkeitRotAlsZweite = P_U1_R_U1_R + P_U1_R_U2_R + P_U2_R_U1_R + P_U2_R_U2_R
7wahrscheinlichkeitRotAlsZweite
Out[18]:
0.26309523809523805
In [19]:
Grade cell: test_05_Bedingte_Wkeiten_Kombinatorik_Bayes_Urnen_C0 Score: 0.0 / 6.0 (Top)
 1### BEGIN HIDDEN TESTS
 2import numpy as np
 3from assignmenttest import VariableTest, FunctionTest, grade_report, comparators
 4from numbers import Number
 5
 6wahrscheinlichkeitRotU1 = 0.5 * 2 / 9 + 0.5 * 6 / 8
 7wahrscheinlichkeitRotU2 = 0.5 * 3 / 10 + 0.5 * 5 / 7
 8expected =  wahrscheinlichkeitRotU1 * wahrscheinlichkeitRotAusUrne1 + wahrscheinlichkeitRotU2 * (1 - wahrscheinlichkeitRotAusUrne1)
 9
10def grade():
11    percentage = 1
12    if 'wahrscheinlichkeitRotAlsZweite' not in globals():
13        print("Test for variable wahrscheinlichkeitRotAlsZweite failed.\nVariable bmi is not defined!")
14        return 0
15    
16    if np.allclose(wahrscheinlichkeitRotAlsZweite, expected):
17        print("Alles richtig!")
18        return 1
19    
20    if np.allclose(wahrscheinlichkeitRotAlsZweite, ((0.5 * 2/9 + 0.5 * 6/8) * 0.5 * 3/10 + (0.5 * 3/10 + 0.5 * 5/7) * 0.5 * 6/8)/wahrscheinlichkeitRot):
21        print("Gängiger Fehler A: Sie wissen ja bereits, dass im ersten Versuch eine rote Kugel gezogen wurde.\nSie sollten also die Wahrscheinlichkeit eine erste rote Kugel zu ziehen nicht mehr berücksichtigen, dies ist ja bereits passiert.")
22        print("Gnadenpunkt für die richtige Berechnung der Pfadwahrscheinlichkeiten")
23        return 1/6
24    if np.allclose(wahrscheinlichkeitRotAlsZweite, (1/2 * 3/10 * 2/9) + (1/2 * 6/8 * 5/7)):
25        print("Gängiger Fehler B: Sie ziehen zweimal aus der gleichen Urnen, es war aber eigentlich gemeint, dass man vor jedem Ziehen die Urne neu wählt.")
26        return 1/6
27    if np.allclose(wahrscheinlichkeitRotAlsZweite, .5 * (wahrscheinlichkeitRotU1 + wahrscheinlichkeitRotU2)):
28        print("Gängiger Fehler C: Sie berechnen die in Runde 1 gewählte Urne mit 50 % Wkt.\nMit dem Wissen, dass man als erstes eine rote Kugel gezogen hat, ist P(U1|R) jedoch nicht 50 %, sondern wie in der vorherigen Teilaufgabe.")
29        return 1/6
30    
31    return 0
32
33grade_report(grade(), points=6)
34### END HIDDEN TESTS
### BEGIN GRADE
0
### END GRADE

Task 4

[20 Point(s)]

Konzertkarten

Ihre Lieblingsband kommt in die Stadt und Sie wollen unbedingt eine Karte kaufen.

Zum Erwerb der Karten haben Sie folgenden Möglichkeiten:

  • per Telefon
  • über das Internet
  • über einen Freund der in der Nähe eines Ticketshops wohnt

Es gibt folgende Ereignisse:

  • T Telefon funktioniert
  • KT Es sind noch Karten über das Telefon verfügbar
  • I Ihr Internet funktioniert
  • KI Es sind noch Karten über das Internet verfügbar
  • F Ihr Freund verschläft nicht
  • KF Es sind noch Karten über den Ticketshop verfügbar

Es gelten folgende Wahrscheinlichkeiten:

P(T) P(KT) P(I) P(KI) P(F) P(KF)
0.95 0.75 0.9 0.85 0.6 0.95

Der Weg an Karten zu kommen ist in der folgenden Abbildung schematisch dargestellt konzertkarten.png

Task 4.1

[6 Point(s)]

Konzertkarten a)

Wenn Sie alle drei Möglichkeiten probieren um Karten zu bekommen, wie hoch ist die Wahrscheinlichkeit dafür, dass mindestens eine Möglichkeit funktioniert?

Speichern Sie Ihre Lösung in der Variable P_mindestens_eine_Karte.

In [20]:
Student's answer(Top)
1def nicht(P):
2    return 1-P
3
4P_T_KT = 0.95 * 0.75
5P_I_KI = 0.9 * 0.85
6P_F_KF = 0.6 * 0.95
7
8P_mindestens_eine_Karte = nicht(nicht(P_T_KT) * nicht(P_I_KI) * nicht(P_F_KF))
9P_mindestens_eine_Karte
Out[20]:
0.9709481249999999
In [21]:
Grade cell: test_05_Bedingte_Wkeiten_Bayesian_Networks_Konzertkarten_A0 Score: 6.0 / 6.0 (Top)
 1### BEGIN HIDDEN TESTS
 2from assignmenttest.decorators import test_asserts
 3import numpy as np
 4
 5expected = 0.970948125
 6
 7points = 6
 8@test_asserts(points)
 9def check():
10    if P_mindestens_eine_Karte > 1:
11        print("Gängiger Fehler: Ihre Wahrscheinlichkeit ist über 100 %.\nDas sollte Ihnen immer zu Denken geben.\nMalen Sie sich einmal ein Venn-Diagramm auf, dann sehen Sie, dass Sie die Schnittmengen der nicht disjunkten Ereignisse zu oft zählen.")
12    assert np.allclose(P_mindestens_eine_Karte, expected)
13
14check() 
15### END HIDDEN TESTS
1 / 1 tests passed

### BEGIN GRADE
6.0
### END GRADE

Task 4.2

[7 Point(s)]

Konzertkarten b)

Wie hoch ist die Wahrscheinlichkeit dafür, dass Sie Karten über das Internet und das Telefon erhalten aber nicht über Ihren Freund?

Speichern Sie Ihre Lösung in der Variable P_Telefon_und_Internet.

In [22]:
Student's answer(Top)
1P_Telefon_und_Internet = P_T_KT * P_I_KI * nicht(P_F_KF)
2P_Telefon_und_Internet
Out[22]:
0.23437687499999998
In [23]:
Grade cell: test_05_Bedingte_Wkeiten_Bayesian_Networks_Konzertkarten_B0 Score: 7.0 / 7.0 (Top)
 1### BEGIN HIDDEN TESTS
 2from assignmenttest.decorators import test_asserts
 3import numpy as np
 4
 5expected = 0.234376875
 6
 7points = 7
 8@test_asserts(points)
 9def check():
10    if np.allclose(1 - ((1-(0.95*0.75)) * (1-(0.9*0.85))), expected):
11        print("Gängiger Fehler: Die Gegenwahrscheinlichkeit von beidem ist nicht das gleiche, wie beides tritt ein und das Dritte nicht")
12        
13    assert np.allclose(P_Telefon_und_Internet, expected)
14
15check() 
16### END HIDDEN TESTS
1 / 1 tests passed

### BEGIN GRADE
7.0
### END GRADE

Task 4.3

[7 Point(s)]

Konzertkarten c)

Wie hoch ist die Wahrscheinlichkeit dafür, über alle drei Kanäle Karten zu erhalten?

Speichern Sie Ihre Lösung in der Variable P_alle_drei.

In [24]:
Student's answer(Top)
1P_alle_drei = P_T_KT * P_I_KI * P_F_KF
2P_alle_drei
Out[24]:
0.3106856249999999
In [25]:
Grade cell: test_05_Bedingte_Wkeiten_Bayesian_Networks_Konzertkarten_C0 Score: 7.0 / 7.0 (Top)
 1### BEGIN HIDDEN TESTS
 2from assignmenttest.decorators import test_asserts
 3import numpy as np
 4
 5expected = 0.310685625
 6
 7points = 7
 8@test_asserts(points)
 9def check():
10    assert np.allclose(P_alle_drei, expected)
11
12check() 
13### END HIDDEN TESTS
1 / 1 tests passed
### BEGIN GRADE
7.0
### END GRADE

Task 5

[20 Point(s)]

Paketzustellung [10 Punkte]

Die Paketzustellfirma wirbt damit, dass durchschnittlich 90% der Lieferungen innerhalb von 3 Tagen zugestellt werden. Sie ziehen eine Zufallsstichprobe vom Umfang 20 aus den Sendungen der letzten Wochen. Nehmen Sie an, dass die Angabe der Firma korrekt ist.

Task 5.1

[5 Point(s)]

Paketzustellung a) [5 Punkte]

Wie groß ist die Wahrscheinlichkeit, dass bei den 20 Sendungen in der Stichprobe die erste, dritte und zehnte verspätet zugestellt werden, alle anderen jedoch innerhalb der 3 Tage, wenn die 3-Tagesfrist in 90% aller Fälle eingehalten wird?

Speichern Sie Ihre Lösung in der Variablen wahrscheinlichkeitPaketA.

In [26]:
Student's answer(Top)
1p = 0.9 # Wahrscheinlichkeit für pünktlich
2
3wahrscheinlichkeitPaketA = p ** 17 * nicht(p) ** 3
4wahrscheinlichkeitPaketA
Out[26]:
0.00016677181699666565
In [27]:
Grade cell: test_06_Verteilungen_Binom_-_Pakete_A0 Score: 5.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2import numpy.testing as test
3from scipy.stats import binom
4from scipy import stats
5
6test.assert_almost_equal(wahrscheinlichkeitPaketA, 0.9**17 * (0.1)**3, decimal=4)
7### END HIDDEN TESTS

Task 5.2

[5 Point(s)]

Paketzustellung b) [5 Punkte]

Wie groß ist die Wahrscheinlichkeit, dass bei den 20 Sendungen in der Stichprobe drei beliebige Sendungen verspätet zugestellt werden, alle anderen jedoch innerhalb der 3 Tage, wenn die 3-Tagesfrist in 90% aller Fälle eingehalten wird?

Speichern Sie Ihre Lösung in der Variablen wahrscheinlichkeitPaketB.

In [28]:
Student's answer(Top)
1n = 20  # Stichprobe
2wahrscheinlichkeitPaketB = stats.binom.pmf(3, n, nicht(p))
3wahrscheinlichkeitPaketB
Out[28]:
0.19011987137619876
In [29]:
Grade cell: test_06_Verteilungen_Binom_-_Pakete_B0 Score: 5.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2import numpy.testing as test
3from scipy.stats import binom
4from scipy import stats
5
6test.assert_almost_equal(wahrscheinlichkeitPaketB, binom.pmf(n=20,p=0.9,k=17), decimal=4)
7### END HIDDEN TESTS

Task 5.3

[5 Point(s)]

Paketzustellung c) [5 Punkte]

Wie groß ist die Wahrscheinlichkeit, dass bei den 20 Sendungen in der Stichprobe höchstens 15 innerhalb der 3-Tagesfrist zugestellt werden, wenn diese in 90% aller Fälle eingehalten wird?

Speichern Sie Ihre Lösung in der Variablen wahrscheinlichkeitPaketC.

In [30]:
Student's answer(Top)
1wahrscheinlichkeitPaketC = stats.binom.cdf(15, n, p)
2wahrscheinlichkeitPaketC
Out[30]:
0.04317449528446335
In [31]:
Grade cell: test_06_Verteilungen_Binom_-_Pakete_C0 Score: 5.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2import numpy.testing as test
3from scipy.stats import binom
4from scipy import stats
5
6test.assert_almost_equal(wahrscheinlichkeitPaketC, binom.cdf(n=20,p=0.9,k=15), decimal=4)
7### END HIDDEN TESTS

Task 5.4

[5 Point(s)]

Paketzustellung d) [5 Punkte]

Wie groß ist die Wahrscheinlichkeit, dass bei der 3. ausgewählten Sendung das erste mal der Fall eintritt, dass diese verspätet zugestellt wurde, wenn die 3-Tagesfgrist in 90% aller Fälle eingehalten wird?

Speichern Sie Ihre Lösung in der Variablen wahrscheinlichkeitPaketD.

In [32]:
Student's answer(Top)
1wahrscheinlichkeitPaketD = nicht(stats.geom.cdf(2, nicht(p)))
2wahrscheinlichkeitPaketD
Out[32]:
0.81
In [33]:
Grade cell: test_06_Verteilungen_Binom_-_Pakete_D0 Score: 0.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2import numpy.testing as test
3from scipy.stats import binom
4from scipy import stats
5
6test.assert_almost_equal(wahrscheinlichkeitPaketD, stats.geom.pmf(p=0.1, k=3), decimal=4)
7### END HIDDEN TESTS
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
Cell In[33], line 6
      3 from scipy.stats import binom
      4 from scipy import stats
----> 6 test.assert_almost_equal(wahrscheinlichkeitPaketD, stats.geom.pmf(p=0.1, k=3), decimal=4)
      7 ### END HIDDEN TESTS

File /opt/conda/lib/python3.10/site-packages/numpy/testing/_private/utils.py:599, in assert_almost_equal(actual, desired, decimal, err_msg, verbose)
    597     pass
    598 if abs(desired - actual) >= 1.5 * 10.0**(-decimal):
--> 599     raise AssertionError(_build_err_msg())

AssertionError: 
Arrays are not almost equal to 4 decimals
 ACTUAL: 0.81
 DESIRED: 0.08100000000000002

Viel Erfolg

Erinnerungen: Ausführbar? Errors Raised? Abgegeben?

  • Stellen Sie sicher, dass sich Ihr Code ausführen lässt. Code der nicht läuft kann nicht automatisch bewertet werden.
  • Bevor Sie abgeben: Klicken Sie im Menü auf Kernel > Restart & Run All (oder den Button in der Toolbar). Damit führen Sie das Notebook linear von oben nach unten aus. Alle Fehler die dann auftreten, treten auch beim Bewerten auf.
  • Entfernen Sie die raise NotImplementedError(), wenn Sie eine Aufgabe bearbeiten. Ansonsten wird beim Bewerten eine Exception ausgelöst, die uns sagt, dass Sie die Aufgabe nicht bearbeitet haben!
  • Vergessen Sie nicht Ihr bearbeitetes Notebook zu abzugeben (Assignment Tab / Submit Button)! Einfaches Speichern reicht nicht und wird nicht bewertet.
Timestamp:

2023-11-19 19:32:55.164401 CET