Menu
CoddyTech

Größere Stichproben, weniger Zufall

Teil des Abschnitts Statistik für ML der Machine Learning-Journey von Coddy. Lektion 22 von 64.

Größere Stichproben liefern bessere Schätzwerte, aber wie viel besser? Hier sind 1000 Mittelwerte von jeweils 25 Einkaufskörben und 1000 von jeweils 100 Körben:

Zwei Glockenkurven der Mittelwerte der Artikel pro Korb, beide um 30 zentriert. Die Mittelwerte von 25 Körben in Grau streuen von etwa 20 bis 40; die Mittelwerte von 100 Körben in Blau bilden eine halb so breite Glockenkurve

sample_means misst jede Streuung. Der Standardfehler, std / np.sqrt(n), sagt sie ohne Simulation voraus:

for n in [25, 100]:
    spread = sample_means(baskets, n, 1000).std()
    print(n, np.round(spread, 2), np.round(baskets.std() / np.sqrt(n), 2))

Dies gibt Folgendes aus:

25 3.43 3.45
100 1.72 1.72

Viermal so viele Daten, halb so viel Rauschen: Das ist die Wirkung der Quadratwurzel. Ein Modell, das mit 400 Beispielen getestet wurde, hat einen doppelt so präzisen Wert wie bei 100.

challenge icon

Aufgabe

Mittel

bags enthält die Gewichte der 5000 Mehlsäcke einer Mühle in Gramm. Die Qualitätskontrolle wiegt stündlich eine Stichprobe; das Programm liest den Standardfehler ein, den sie akzeptiert.

  1. Finde das kleinste n, dessen Standardfehler, bags.std() / np.sqrt(n), höchstens so groß ist: Beginne bei 1 und addiere 1, solange er zu groß ist.
  2. Überprüfe es: die Standardabweichung von 300 Stichprobenmittelwerten aus sample_means.
  3. Gib es wie unten mit 2 Dezimalstellen aus.

Für eine andere Mühle und 2.5:

Bags to weigh: 24
Standard error: 2.46 g
Simulated spread: 2.37 g

Probier es selbst

import numpy as np

target = float(input())

# Ändere die folgenden Zeilen nicht: das Gewicht jeder Tüte Mehl in Gramm
rng = np.random.default_rng(22)
bags = np.round(rng.normal(500, 8, size=5000), 1)


# Deine Funktion aus Sample Means Vary: die Mittelwerte von count Stichproben
def sample_means(data, size, count):
    means = []
    for i in range(count):
        sample = rng.choice(data, size=size, replace=False)
        means.append(sample.mean())
    return np.array(means)


# Schreibe deinen Code unten
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Statistik für ML

Übe selbstständig: Online-Python-Compiler