Die Abgabefrist dieser Hausaufgabe ist 2023-12-04 12:00 (Montag Mittag)!
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.
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
[10 Point(s)]
50 Säuglinge erhalten eine bestimmte Impfung. Die Wahrscheinlichkeit, dass ein Säugling die Impfung nicht verträgt, ist . Die Reaktionen der einzelnen Säuglinge auf die Impfung sind unabhängig voneinander. Sei = Anzahl der Säuglinge, die die Impfung nicht vertragen.
Berechnen Sie und .
[5 Point(s)]
Berechnen Sie die Wahrscheinlichkeiten approximativ.
Speichern Sie Ihre Lösung in den Variablen P0, P1, P2, Pg3.
1P0 = stats.poisson.pmf(0, 50*0.05)
2P1 = stats.poisson.pmf(1, 50*0.05)
3P2 = stats.poisson.pmf(2, 50*0.05)
4Pg3 = 1 - stats.poisson.cdf(2, 50*0.05)
5
6P0, P1, P2, Pg3
test_06_Verteilungen_Poisson_Binom_Impfungen_A0
Score: 5.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2from scipy.stats import poisson
3from assignmenttest.decorators import test_asserts
4
5expected0 = poisson.pmf(0, 2.5)
6expected1 = poisson.pmf(1, 2.5)
7expected2 = poisson.pmf(2, 2.5)
8expected3 = 1 - poisson.cdf(2, 2.5)
9
10points = 5
11@test_asserts(points)
12def check():
13 # comment for P3 --> altes Blatt
14 assert np.isclose(P0, expected0, rtol=0, atol=1E-6)
15 assert np.isclose(P1, expected1, rtol=0, atol=1E-6)
16 assert np.isclose(P2, expected2, rtol=0, atol=1E-6)
17 if 'Pg3' not in globals() and 'P3' in globals():
18 print('Die Variable heißt (dieses Jahr nicht mehr) P3 sondern Pg3...')
19 assert np.isclose(Pg3, expected3, rtol=0, atol=1E-6)
20check()
21### END HIDDEN TESTS
[5 Point(s)]
Berechnen Sie die Wahrscheinlichkeiten genau.
Speichern Sie Ihre Lösung in den Variablen P0genau, P1genau, P2genau, Pg3genau.
1P0genau = stats.binom.pmf(0, 50, 0.05)
2P1genau = stats.binom.pmf(1, 50, 0.05)
3P2genau = stats.binom.pmf(2, 50, 0.05)
4Pg3genau = 1 - stats.binom.cdf(2, 50, 0.05)
5
6
7P0genau, P1genau, P2genau, Pg3genau
test_06_Verteilungen_Poisson_Binom_Impfungen_B0
Score: 5.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2from assignmenttest.decorators import test_asserts
3from scipy.stats import binom
4
5expected0 = binom.pmf(k=0, p=0.05, n=50)
6expected1 = binom.pmf(k=1, p=0.05, n=50)
7expected2 = binom.pmf(k=2, p=0.05, n=50)
8expected3 = 1 - binom.cdf(k=2, p=0.05, n=50)
9
10points = 5
11@test_asserts(points)
12def check():
13 assert np.isclose(P0genau, expected0, rtol=0, atol=1E-6)
14 assert np.isclose(P1genau, expected1, rtol=0, atol=1E-6)
15 assert np.isclose(P2genau, expected2, rtol=0, atol=1E-6)
16 if 'Pg3genau' not in globals() and 'P3genau' in globals():
17 print('Die Variable heißt (dieses Jahr nicht mehr) P3genau sondern Pg3genau...')
18 assert np.isclose(Pg3genau, expected3, rtol=0, atol=1E-6)
19check()
20### END HIDDEN TESTS
[15 Point(s)]
Um zu entscheiden, ob eine Lieferung von 100 Werkstücken angenommen werden soll, wird folgender Stichprobenplan durchgeführt:
5 Werkstücke werden zufällig entnommen. Falls sich darunter kein Ausschussstück befindet, wird die Lieferung angenommen.
Ist mehr als ein Ausschussstück darunter, wird die Lieferung abgelehnt.
Ist genau ein Ausschussstück darunter, dann wird eine zweite Stichprobe im Umfang von 10 entnommen. Falls sich kein Ausschussstück in dieser Stichprobe befindet, wird die Lieferung angenommen, andernfalls endgültig abgelehnt.
[6 Point(s)]
Das Ziel ist es nun die Wahrscheinlichkeit für die Annahme der Lieferung zu berechnen, wenn die gesamte Lieferung 4 defekte Werkstücke enthält und die entnommenen Werkstücke nach der Überprüfung nicht zurückgelegt werden. Berechnen Sie dazu zunächst die Wahrscheinlichkeit für 0 defekte Teile in der 1. Stichprobe.
Speichern Sie Ihre Lösung in der Variablen p0InEinsDefekt.
test_06_Verteilungen_Hypergeom_Werkstuecke_A0
Score: 6.0 / 6.0 (Top)
1### BEGIN HIDDEN TESTS
2from assignmenttest import VariableTest, grade_report
3from numbers import Number
4from scipy import stats
5
6expected = stats.hypergeom.pmf(k=0,M=100,n=4,N=5)
7points = 6
8
9test_cases = [
10 {
11 'name': 'p0InEinsDefekt',
12 'expected_type': Number,
13 'expected': expected,
14 }
15]
16
17passed = VariableTest(globals(), a_tol=1E-6).test(test_cases)
18grade_report(passed, points)
19assert passed == 1
20
21### END HIDDEN TESTS
[6 Point(s)]
Berechnen Sie nun die Wahrscheinlichkeit für genau 1 defektes Teil in der ersten Stichprobe und 0 defekte Teile in der zweiten Stichprobe.
Speichern Sie Ihre Lösung in der Variablen p1InEinsUnd0InZweiDefekt.
1einsImErsten = ((math.comb(4,1)*math.comb(96,4))/math.comb(100,5))
2keinsImZweiten = ((math.comb(3,0)*math.comb(92,10))/math.comb(95,10))
3p1InEinsUnd0InZweiDefekt = einsImErsten * keinsImZweiten
4p1InEinsUnd0InZweiDefekt, stats.hypergeom.pmf(k=1,M=100,n=4,N=5) * stats.hypergeom.pmf(k=0,M=95,n=3,N=10)
test_06_Verteilungen_Hypergeom_Werkstuecke_B0
Score: 6.0 / 6.0 (Top)
1### BEGIN HIDDEN TESTS
2from assignmenttest import VariableTest, grade_report
3from numbers import Number
4from scipy import stats
5
6expected = stats.hypergeom.pmf(k=1,M=100,n=4,N=5) * stats.hypergeom.pmf(k=0,M=95,n=3,N=10)
7points = 6
8
9test_cases = [
10 {
11 'name': 'p1InEinsUnd0InZweiDefekt',
12 'expected_type': Number,
13 'expected': expected,
14 }
15]
16
17passed = VariableTest(globals(), r_tol=0.01).test(test_cases)
18grade_report(passed, points)
19assert passed == 1
20
21### END HIDDEN TESTS
[3 Point(s)]
Berechnen Sie die Wahrscheinlichkeit für die Annahme der Lieferung.
Speichern Sie Ihre Lösung in der Variablen pAnnahmeA.
test_06_Verteilungen_Hypergeom_Werkstuecke_C0
Score: 3.0 / 3.0 (Top)
1### BEGIN HIDDEN TESTS
2from assignmenttest import VariableTest, grade_report
3from numbers import Number
4from scipy import stats
5import sys
6
7points = 3
8can_pass = True
9
10try:
11
12 expected = p0InEinsDefekt+p1InEinsUnd0InZweiDefekt
13except Exception as e:
14 print("{}: {}".format("Error", "Variable not set or set to None"))
15 points = 0
16 can_pass = False
17
18if can_pass:
19 test_cases = [
20 {
21 'name': 'pAnnahmeA',
22 'expected_type': Number,
23 'expected': expected,
24 }
25 ]
26
27 passed = VariableTest(globals(), a_tol=1E-6).test(test_cases)
28 grade_report(passed, points)
29 assert passed == 1
30else:
31 assert False
32### END HIDDEN TESTS
[35 Point(s)]
Sei X normalverteilt mit Mittelwert 5 und Standardabweichung 7.
[5 Point(s)]
Wie wahrscheinlich ist es, dass X kleiner als 5 ist?
Speichern Sie ihre Lösung in der Variable p_k_5.
test_06_Verteilungen_Norm_T_Rechenaufgaben_A0
Score: 5.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2import numpy as np
3from assignmenttest.decorators import test_asserts
4
5expected_p = 0.5
6
7points = 5
8@test_asserts(points)
9def check():
10 if expected_p == 0:
11 print("Gängiger Fehler A: Es ist nach kleiner, nicht gleich gefragt.\n")
12 assert np.isclose(expected_p, p_k_5, rtol=0, atol=1E-6), f"Die Wahrscheinlichkeit sollte = {expected_p} sein, ist aber {p_k_5}"
13check()
14### END HIDDEN TESTS
[5 Point(s)]
Wie wahrscheinlich ist es, dass X größer als 4 und kleiner als 6 ist?
Speichern Sie ihre Lösung in der Variable p_4_6.
1p_4_6 = stats.norm.cdf(6, loc=5, scale=7) - stats.norm.cdf(4, loc=5, scale=7)
2
3p_4_6
test_06_Verteilungen_Norm_T_Rechenaufgaben_B0
Score: 5.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2import numpy as np
3from assignmenttest.decorators import test_asserts
4from scipy.stats import norm
5
6x = norm(loc=5,scale=7)
7expected_p = x.cdf(6)-x.cdf(4)
8
9points = 5
10@test_asserts(points)
11def check():
12 if expected_p < 0:
13 print("Gängiger Fehler A: Wahrscheinlichkeiten können nicht negativ sein.\n")
14 assert np.isclose(expected_p, p_4_6, rtol=0, atol=1E-6), f"Die Wahrscheinlichkeit sollte = {expected_p} sein, ist aber {p_4_6}"
15check()
16### END HIDDEN TESTS
[3 Point(s)]
Wie wahrscheinlich ist es, dass X größer als 12 ist?
Speichern Sie ihre Lösung in der Variable p_g_12.
test_06_Verteilungen_Norm_T_Rechenaufgaben_C0
Score: 3.0 / 3.0 (Top)
1### BEGIN HIDDEN TESTS
2import numpy as np
3from assignmenttest.decorators import test_asserts
4from scipy.stats import norm
5
6x = norm(loc=5,scale=7)
7expected_p = 1-x.cdf(12)
8
9points = 3
10@test_asserts(points)
11def check():
12 if expected_p < 0:
13 print("Gängiger Fehler A: Wahrscheinlichkeiten können nicht negativ sein.\n")
14 if np.isclose(expected_p, 1-p_g_12, rtol=0, atol=1E-6):
15 print("Gängiger Fehler B: Es war nach größer nicht nach kleiner gefragt.\n")
16 assert np.isclose(expected_p, p_g_12, rtol=0, atol=1E-6), f"Die Wahrscheinlichkeit sollte = {expected_p} sein, ist aber {p_g_12}"
17check()
18### END HIDDEN TESTS
[4 Point(s)]
Wie wahrscheinlich ist es, dass X kleiner als 4 oder größer als 6 ist?
Speichern Sie ihre Lösung in der Variable p_6_4.
1x_kleiner_4 = stats.norm.cdf(4, loc=5, scale=7)
2x_größer_6 = 1 - stats.norm.cdf(6, loc=5, scale=7)
3x_zwischen_4_und_6 = stats.norm.cdf(6, loc=5, scale=7) - stats.norm.cdf(4, loc=5, scale=7)
4
5p_6_4 = x_kleiner_4 + x_größer_6 - x_zwischen_4_und_6
6
7p_6_4
test_06_Verteilungen_Norm_T_Rechenaufgaben_D0
Score: 0.0 / 4.0 (Top)
1### BEGIN HIDDEN TESTS
2import numpy as np
3from assignmenttest.decorators import test_asserts
4from scipy.stats import norm
5
6x = norm(loc=5,scale=7)
7expected_p = x.cdf(4)+(1-x.cdf(6))
8
9points = 4
10@test_asserts(points)
11def check():
12 if expected_p < 0:
13 print("Gängiger Fehler A: Wahrscheinlichkeiten können nicht negativ sein.\n")
14 if np.isclose(expected_p, 1-p_6_4, rtol=0, atol=1E-6):
15 print("Gängiger Fehler B: Es war nach kleiner 4 oder größer 6 nicht nach größer 4 und kleiner 6 gefragt.\n")
16 assert np.isclose(expected_p, p_6_4, rtol=0, atol=1E-6), f"Die Wahrscheinlichkeit sollte = {expected_p} sein, ist aber {p_6_4}"
17check()
18### END HIDDEN TESTS
[3 Point(s)]
Wie wahrscheinlich ist es, dass X = 5 ist?
Speichern Sie ihre Lösung in der Variable p_5.
test_06_Verteilungen_Norm_T_Rechenaufgaben_E0
Score: 3.0 / 3.0 (Top)
1### BEGIN HIDDEN TESTS
2import numpy as np
3from assignmenttest.decorators import test_asserts
4from scipy.stats import norm
5
6expected_p = 0
7
8points = 3
9@test_asserts(points)
10def check():
11 if expected_p < 0:
12 print("Gängiger Fehler A: Wahrscheinlichkeiten können nicht negativ sein.\n")
13 if expected_p > 0:
14 print("Gängiger Fehler B: Einzelne Werte haben keine Masse.\n")
15 assert np.isclose(expected_p, p_5, rtol=0, atol=1E-6), f"Die Wahrscheinlichkeit sollte = {expected_p} sein, ist aber {p_5}"
16check()
17### END HIDDEN TESTS
[5 Point(s)]
test_06_Verteilungen_Norm_T_Rechenaufgaben_F0
Score: 0.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2import numpy as np
3from assignmenttest.decorators import test_asserts
4from scipy.stats import chi2
5from scipy.stats import norm
6
7
8x = chi2(df=3)
9expected_p = x.cdf(5)
10
11points = 5
12@test_asserts(points)
13def check():
14 if expected_p < 0:
15 print("Gängiger Fehler A: Wahrscheinlichkeiten können nicht negativ sein.\n")
16 if np.isclose(expected_p, norm(loc=5,scale=7).cdf(5), rtol=0, atol=1E-6):
17 print("Gängiger Fehler B: Die Zufallsvariable ist nicht mehr normalverteilt.\n")
18 assert np.isclose(expected_p, p_chi_5, rtol=0, atol=1E-6), f"Die Wahrscheinlichkeit sollte = {expected_p} sein, ist aber {p_chi_5}"
19check()
20### END HIDDEN TESTS
[5 Point(s)]
test_06_Verteilungen_Norm_T_Rechenaufgaben_G0
Score: 5.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2import numpy as np
3from assignmenttest.decorators import test_asserts
4from scipy.stats import chi2
5from scipy.stats import norm
6
7
8x = chi2(df=3)
9expected_p = x.cdf(4)-x.cdf(2)
10
11points = 5
12@test_asserts(points)
13def check():
14 if expected_p < 0:
15 print("Gängiger Fehler A: Wahrscheinlichkeiten können nicht negativ sein.\n")
16 if np.isclose(expected_p, norm(loc=5,scale=7).cdf(4)-norm(loc=5,scale=7).cdf(2), rtol=0, atol=1E-6):
17 print("Gängiger Fehler B: Die Zufallsvariable ist nicht mehr normalverteilt.\n")
18 assert np.isclose(expected_p, p_chi_2_4, rtol=0, atol=1E-6), f"Die Wahrscheinlichkeit sollte = {expected_p} sein, ist aber {p_chi_2_4}"
19check()
20### END HIDDEN TESTS
[5 Point(s)]
test_06_Verteilungen_Norm_T_Rechenaufgaben_H0
Score: 5.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2import numpy as np
3from assignmenttest.decorators import test_asserts
4from scipy.stats import chi2
5from scipy.stats import norm
6
7
8x = chi2(df=3)
9expected_p = x.cdf(5)-x.cdf(2)
10
11points = 5
12@test_asserts(points)
13def check():
14 if expected_p < 0:
15 print("Gängiger Fehler A: Wahrscheinlichkeiten können nicht negativ sein.\n")
16 if np.isclose(expected_p, norm(loc=5,scale=7).cdf(5)-norm(loc=5,scale=7).cdf(2), rtol=0, atol=1E-6):
17 print("Gängiger Fehler B: Die Zufallsvariable ist nicht mehr normalverteilt.\n")
18 assert np.isclose(expected_p, p_chi_2_5, rtol=0, atol=1E-6), f"Die Wahrscheinlichkeit sollte = {expected_p} sein, ist aber {p_chi_2_5}"
19check()
20### END HIDDEN TESTS
[20 Point(s)]
[5 Point(s)]
Unter data/data.csv finden Sie einen Datensatz. Dieser enthält Messungen der Mengen in g an Müsli, die beim Einschütten aus der Packung in eine Schüssel auftraten.
Laden Sie den Datensatz aus der Datei und speichern sie ihn in der Variable data.
Sie können diese danach Plotten, um sich einen Überblick über die Daten zu verschaffen.
1data = pd.read_csv("WuS_Hausaufgabe_4_files/data/data.csv", header=None)
2data = np.array((data[0]))
3plt.hist(data, bins=range(150,247,4), rwidth=0.8, align='left')
4plt.grid() # Gitterlinien
5plt.xlabel('Gramm') # Achsenbeschriftung
6plt.ylabel('Müslischüsseln mit Gramm') # Achsenbeschriftung
7plt.title('Müslipackungen mit 10 Würfeln mit 4 Augen und 10000 Würfen') # Titel
8plt.show() # Plot Anzeigen
test_06_Verteilungen_Norm_Transformationen_A0
Score: 5.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2import collections
3import numpy as np
4import pandas as pd
5from assignmenttest import grade_report
6
7# quick tests:
8# data = pd.read_csv('WuS_Hausaufgabe_5_files/WuS_Hausaufgabe_4_files/data/data.csv').to_numpy()
9# data = pd.read_csv('WuS_Hausaufgabe_5_files/WuS_Hausaufgabe_4_files/data/data.csv')#, header=None)
10# data = pd.read_csv('WuS_Hausaufgabe_5_files/WuS_Hausaufgabe_4_files/data/data.csv').values.tolist()
11# data[17] = 3
12# data = []
13expected_data = np.genfromtxt('WuS_Hausaufgabe_4_files/data/data.csv', delimiter=',')
14
15
16def grade():
17 global data_as_array
18 if 'data' not in globals():
19 print("data not defined.")
20 return 0
21 if not isinstance(data, collections.abc.Sized) or not len(data):
22 print("data has no length, that's bad for a dataset")
23 return 0
24 points = 1
25 data_as_array = data
26 if isinstance(data_as_array, pd.DataFrame):
27 data_as_array = data_as_array.to_numpy()
28 if isinstance(data_as_array, (list, tuple)):
29 data_as_array = np.array(data_as_array)
30 if isinstance(data_as_array, np.ndarray) and len(data_as_array.shape) > 1:
31 data_as_array = data_as_array.flatten()
32 if len(data_as_array) < len(expected_data):
33 print(f"data hat zu wenige Elemente. Erwartet: {len(expected_data)}, Ist: {len(data)}")
34 if len(data_as_array) == len(expected_data) - 1:
35 print("Sie haben vermutlich aber per default mit pandas.read_csv die erste Zeile als header verwendet.")
36 print("Die Datei enthält aber keine header.")
37 print("Nächstes Mal Docs lesen und pd.read_csv(..., header=None) setzen!")
38 points = .8
39 else:
40 print("Daten leider falsch eingelesen.")
41 return 0
42
43 if (
44 (points == .8 and np.allclose(expected_data[1:], data_as_array))
45 or
46 (len(data_as_array) == len(expected_data) and np.allclose(expected_data, data_as_array))
47 ):
48 return points
49
50 print("Daten weichen leider zu stark vom erwarteten Datensatz ab.")
51 return 0
52
53grade_report(grade(), points=5)
54### END HIDDEN TESTS
[3 Point(s)]
Um diese Normalverteilung mit anderen vergleichbar zu machen und das Rechnen zu erleichtern, soll sie in eine Standardnormalverteilung transformiert werden.
Berechnen Sie dazu zunächst den Mittelwert und die Standardabweichung der Daten und speichern diese in mu und sigma.
Gehen Sie davon aus, dass der Datensatz keine Stichprobe, sondern die Grundgesamtheit repräsentiert.
test_06_Verteilungen_Norm_Transformationen_B0
Score: 3.0 / 3.0 (Top)
1### BEGIN HIDDEN TESTS
2import numpy as np
3import math
4from assignmenttest import grade_report
5
6expected_mu = 199.93070630416864
7expected_sigma = 9.999170641123184
8
9def grade():
10 assert 'mu' in globals()
11 assert 'sigma' in globals()
12 correct_mu = True
13 correct_sigma = True
14
15 if math.isclose(mu, 200):
16 print("Gängiger Fehler A: Der Mittelwert sollte berechnet, nicht geschätzt werden.\n")
17 correct_mu = False
18 if math.isclose(sigma, 10):
19 print("Gängiger Fehler B: Die Standardabweichung sollte berechnet, nicht geschätzt werden.\n")
20 correct_sigma = False
21 if not correct_mu and not correct_sigma:
22 return 0
23 if len(data) == 99999:
24 # Folgefehler header...
25 if math.isclose(mu, np.mean(expected_data[1:])):
26 print("Folgefehler (header): Mittelwert aber richtig über die restlichen Werte.")
27 else:
28 print(f"Mittelwert sollte = {expected_mu} sein, ist aber {mu}")
29 correct_mu = False
30 if math.isclose(sigma, np.std(expected_data[1:], ddof=1)):
31 print("Gängiger Fehler C: Sie scheinen die korrigierte Stichprobenstandardabweichung berechnet zu haben.\n"
32 "Bei pandas Dataframes ist das auch der default, bitte in Zukunft Docs beachten.\n"
33 "Wir suchten hier die normale Standardabweichung, also ddof=0, da wir direkt auf der Grundgesamtheit rechnen.\n")
34 correct_sigma = False
35 elif math.isclose(sigma, np.std(expected_data[1:])):
36 print("Folgefehler (header): Standardabweichung aber richtig über die restlichen Werte.")
37 else:
38 print(f"Die Standardabweichung sollte = {expected_sigma} sein, ist aber {sigma}")
39 correct_sigma = False
40 else:
41 if not math.isclose(mu, expected_mu):
42 print(f"Mittelwert sollte = {expected_mu} sein, ist aber {mu}")
43 correct_mu = False
44 if not math.isclose(sigma, expected_sigma):
45 if math.isclose(sigma, np.std(expected_data, ddof=1)):
46 print("Gängiger Fehler D: Sie scheinen die korrigierte Stichprobenstandardabweichung berechnet zu haben.\n"
47 "Bei pandas Dataframes ist das auch der default, bitte in Zukunft Docs beachten.\n"
48 "Wir suchten hier die normale Standardabweichung, also ddof=0, da wir direkt auf der Grundgesamtheit rechnen.\n")
49 print(f"Die Standardabweichung sollte = {expected_sigma} sein, ist aber {sigma}")
50 correct_sigma = False
51 return sum([correct_mu, correct_sigma]) / 2
52
53grade_report(grade(), points=3)
54### END HIDDEN TESTS
[4 Point(s)]
Wenden Sie nun Transformationen auf die Daten an, damit diese standardnormalverteilt sind.
Speichern Sie die Transformierten Daten in data_std_norm.
test_06_Verteilungen_Norm_Transformationen_C0
Score: 4.0 / 4.0 (Top)
1### BEGIN HIDDEN TESTS
2import collections
3import numpy as np
4from assignmenttest import grade_report
5
6def grade():
7 if 'data_std_norm' not in globals():
8 print("data_std_norm not defined.")
9 return 0
10 if not isinstance(data_std_norm, collections.abc.Sized) or not len(data_std_norm):
11 print("data_std_norm has no length, that's bad for a dataset")
12 return 0
13
14 # Berechne expected_data auf data_as_array von oben, um mit Folgefehlern besser umzugehen
15 expected_data = (data_as_array - np.mean(data_as_array)) / np.std(data_as_array)
16
17 # data_std_norm in nparray umwandeln...
18 data_std_norm_array = data_std_norm
19 if isinstance(data_std_norm_array, pd.DataFrame):
20 data_std_norm_array = data_std_norm_array.to_numpy()
21 if isinstance(data_std_norm_array, (list, tuple)):
22 data_std_norm_array = np.array(data_std_norm_array)
23 if isinstance(data_std_norm_array, np.ndarray) and len(data_std_norm_array.shape) > 1:
24 data_std_norm_array = data_std_norm_array.flatten()
25 if len(data_std_norm_array) == 99999:
26 print("Folgefehler (header): berechnen StdNorm ohne ersten Wert...")
27 if len(data_std_norm_array) != len(expected_data):
28 print(f"data_std_norm hat leider die falsche Anzahl an Elementen. Erwartet: {100000}, Ist: {len(data_std_norm)}")
29 return 0
30
31 if np.allclose(expected_data, data_std_norm_array):
32 return 1
33 print("Daten weichen leider zu stark vom erwarteten standardnormierten Datensatz ab.")
34 return 0
35
36grade_report(grade(), points=4)
37### END HIDDEN TESTS
[2 Point(s)]
Gegeben sei eine Normalverteilung mit Mittelwert = 5 und Varianz = 7.Nun wird die Transformation angewendet. Was ist der resultierende Mittelwert der Verteilung?
[2 Point(s)]
[2 Point(s)]
Gegeben sei eine Normalverteilung mit Mittelwert = 1 und Varianz = 1.Nun wird die Transformation angewendet. Was ist der resultierende Mittelwert der Verteilung?
[2 Point(s)]
[20 Point(s)]
Nehmen Sie an ein Wirt befüllt handelsübliche Kölschgläser mit durchschnittlich 200ml und einer Standardabweichung von 10ml. Gehen Sie davon aus, dass die Füllmenge normalverteilt ist.
[5 Point(s)]
Wie wahrscheinlich ist es, dass das Glas überläuft, wenn das Glas maximal 220ml fasst?
Speichern Sie Ihre Lösung in der Variablen pUeberlauf.
test_06_Verteilungen_Norm_Normal_Koelschglas_A0
Score: 5.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2import numpy.testing as test
3from scipy import stats
4from assignmenttest.decorators import test_asserts
5
6expected = 1-stats.norm.cdf(loc=200,scale=10,x=220)
7
8
9points = 5
10@test_asserts(points)
11def check():
12 assert np.isclose(expected, pUeberlauf, rtol=0, atol=1E-6), f"Die Wahrscheinlichkeit sollte = {expected} sein, ist aber {pUeberlauf}"
13check()
14### END HIDDEN TESTS
[5 Point(s)]
Welche Füllmenge wird in 85% der Fälle nicht überschritten?
Speichern Sie Ihre Lösung in der Variablen q85Prozent.
test_06_Verteilungen_Norm_Normal_Koelschglas_B0
Score: 5.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2import numpy.testing as test
3from scipy import stats
4from assignmenttest.decorators import test_asserts
5
6expected = stats.norm.ppf(loc=200,scale=10,q=0.85)
7
8
9points = 5
10@test_asserts(points)
11def check():
12 assert np.isclose(expected, q85Prozent, rtol=0, atol=1E-6), f"Die Füllmenge sollte = {expected} sein, ist aber {q85Prozent}"
13check()
14### END HIDDEN TESTS
[5 Point(s)]
Wie wahrscheinlich ist es, dass ein Glas exakt 200ml enthält?
Speichern Sie Ihre Lösung in der Variablen pGenau200ml.
1pGenau200ml = 0 ## Noramlverteilungen haben für ein Elementarereignis immer die Wahrscheinlichkeit 0
2pGenau200ml
test_06_Verteilungen_Norm_Normal_Koelschglas_C0
Score: 5.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2from scipy import stats
3from assignmenttest.decorators import test_asserts
4
5expected = 0
6
7
8points = 5
9@test_asserts(points)
10def check():
11 assert np.isclose(expected, pGenau200ml, rtol=0, atol=1E-6), f"Die Wahrscheinlichkeit sollte = {expected} sein, ist aber {pGenau200ml}"
12check()
13### END HIDDEN TESTS
[5 Point(s)]
Wie müsste sich die mittlere Füllmenge verändern, damit es nur in einem Prozent der Fälle zum Überlaufen kommt?
Hier sind einige Hinweise, die Ihnen dabei helfen könnten:
Speichern Sie Ihre Lösung in der Variablen myNeu.
1#for i in np.linspace(196.0, 198.0, 201):
2# print(i, 1 - stats.norm.cdf(220, loc=i, scale=10))
3
4
5myNeu= 220 + (sigma * stats.norm.ppf(.01))
6myNeu
test_06_Verteilungen_Norm_Normal_Koelschglas_D0
Score: 0.0 / 5.0 (Top)
1### BEGIN HIDDEN TESTS
2from scipy import stats
3from assignmenttest.decorators import test_asserts
4
5expected = stats.norm.ppf(loc=220,scale=10,q=0.01)
6
7
8points = 5
9@test_asserts(points)
10def check():
11 assert np.isclose(expected, myNeu, rtol=0, atol=1E-6), f"Die Füllmenge sollte = {expected} sein, ist aber {myNeu}"
12check()
13### END HIDDEN TESTS