Menu
CoddyTech

Stichprobe oder Grundgesamtheit?

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

Ein Imker wog den Honig von 5 Bienenstöcken in kg. NumPy und pandas sind sich bei der Standardabweichung nicht einig:

values = [18, 22, 25, 19, 26]
print(np.round(np.std(values), 2))
print(np.round(pd.Series(values).std(), 2))

Das gibt Folgendes aus:

3.16
3.54

Beide addieren dieselben quadrierten Abweichungen und teilen dann:

Die quadrierten Abweichungen von 5 Bienenstöcken, 16, 0, 9, 9 und 16, ergeben zusammen 50. Ein Pfeil führt zu np.std: 50 / 5 = 10, Standardabweichung 3.16, die Populationsformel. Der andere führt zu pandas: 50 / 4 = 12.5, Standardabweichung 3.54, die Stichprobenformel

Durch n zu teilen eignet sich für eine Grundgesamtheit, in der jeder Wert enthalten ist. Eine Stichprobe liegt eng um ihren eigenen Mittelwert, sodass ihre Streuung klein wirkt; n - 1 gleicht das aus.

ddof=1 gibt NumPy die Stichprobenformel: np.std(a, ddof=1) entspricht pandas. Modelldaten sind eine Stichprobe: Eine Abweichung der Standardabweichung zwischen Tools liegt an ddof, nicht an einem Fehler.

challenge icon

Aufgabe

Einfach

Ein Biologe erhielt für die Flügelspannweiten einiger Fledermäuse unterschiedliche Standardabweichungen in cm. Der Starter liest sie in das Array spans und die Series column ein; seine Prüfung gibt False aus.

  1. Die Fledermäuse sind eine Stichprobe: Korrigiere die NumPy-Zeile, damit beide Werkzeuge die Stichproben-Standardabweichung liefern.
  2. Gib darunter aus, um wie viel NumPys Standardwert von np.std(spans) unter column.std() liegt, auf 2 Dezimalstellen.

Für die Flügelspannweiten 33, 27, 30, 35 und 29:

Sample std: 3.19 cm, tools agree: True
Dividing by n underestimated it by 0.34 cm

Probier es selbst

import numpy as np
import pandas as pd

n = int(input())
values = []
for i in range(n):
    values.append(int(input()))
spans = np.array(values)
column = pd.Series(values)

# Diese Prüfung gibt False aus: Korrigiere die NumPy-Zeile, damit beide Werkzeuge die Stichprobenstandardabweichung liefern
numpy_std = np.round(np.std(spans), 2)
pandas_std = np.round(column.std(), 2)
print(f"Sample std: {numpy_std} cm, tools agree: {numpy_std == pandas_std}")

# 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