Menu
CoddyTech

Die Stichprobenverteilung

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

Videositzungen sind rechtsschief verteilt: Die meisten dauern einige Minuten, einige laufen zwei Stunden. Dennoch bilden die Mittelwerte von 1000 Stichproben mit jeweils 40 Sitzungen eine Glockenkurve:

Zwei Histogramme in einem Diagramm. Einzelne Sitzungen häufen sich grau nahe 0 Minuten und haben einen langen Schweif bis 120. Die Mittelwerte von 40 Sitzungen bilden eine schmale blaue Glockenkurve um den Populationsmittelwert von 30 Minuten

Das Histogramm vieler Stichprobenmittelwerte ist die Stichprobenverteilung. Bei genügend vielen Werten in jeder Stichprobe ist es eine Glockenkurve, die auf den Populationsmittelwert zentriert ist, selbst bei schiefen Daten:

means = sample_means(sessions, 40, 1000)  # deine Funktion aus Sample Means Vary
ax.hist(means, bins=12)

Das ist der zentrale Grenzwertsatz. Er macht Mittelwerte vorhersagbar: Der mittlere Fehler eines Modells über einen Testsatz ist ebenfalls ungefähr normalverteilt.

challenge icon

Aufgabe

Mittel

Die 6000 Dateigrößen eines Cloud-Laufwerks in files (MB) sind rechtsschief verteilt: viele Dokumente, wenige Videos. Das Programm liest eine Stichprobengröße ein; der Startercode enthält sample_means und zwei Diagramme.

  1. Ermittle 500 Stichprobenmittelwerte dieser Größe.
  2. Gib den Mittelwert minus den Median für die Dateien und anschließend für die Mittelwerte aus (2 Dezimalstellen).
  3. Erstelle ein Histogramm der Dateien auf axs[0] und der Mittelwerte auf axs[1] mit bins=12 und zeige die Diagramme an.

Für ein anderes Laufwerk und 60:

Files: mean - median = 25.28 MB
Sample means: mean - median = 0.55 MB

Zwei Histogramme nebeneinander. Alle Dateien: ein hoher erster Balken und ein langer dünner Schwanz nach rechts. Stichprobenmittelwerte: eine symmetrische Glockenkurve

Dann zeigt Coddy jedes Diagramm an. Eine Differenz nahe 0 bedeutet, dass die Schiefe verschwunden ist.

Probier es selbst

import numpy as np
import matplotlib.pyplot as plt

size = int(input())

# Ändere die folgenden Zeilen nicht: die Größe jeder Datei auf dem Laufwerk in MB
rng = np.random.default_rng(21)
files = np.round(rng.random(6000) ** 4 * 300 + 5, 2)


# 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)


fig, axs = plt.subplots(1, 2)
axs[0].set_title("All Files")
axs[0].set_xlabel("File size (MB)")
axs[1].set_title("Sample Means")
axs[1].set_xlabel("Mean file size (MB)")

# 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