Menu
CoddyTech

Próba czy populacja?

Część sekcji Statystyka w uczeniu maszynowym ścieżki Machine Learning w Coddy. Lekcja 4 z 64.

Pszczelarz zważył miód z 5 uli, w kg. NumPy i pandas nie zgadzają się co do odchylenia standardowego:

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

Wypisuje:

3.16
3.54

Oba sumują te same kwadraty odchyleń, a następnie dzielą:

Kwadraty odchyleń dla 5 uli: 16, 0, 9, 9 i 16, sumują się do 50. Jedna strzałka prowadzi do np.std: 50 / 5 = 10, odchylenie standardowe 3.16, wzór dla populacji. Druga prowadzi do pandas: 50 / 4 = 12.5, odchylenie standardowe 3.54, wzór dla próby

Dzielenie przez n sprawdza się w przypadku populacji, czyli wszystkich jej wartości. Próba skupia się wokół własnej średniej, więc jej rozrzut wydaje się niewielki; n - 1 to kompensuje.

ddof=1 przekazuje NumPy wzór dla próby: np.std(a, ddof=1) daje taki sam wynik jak pandas. Dane modelu są próbą: różnica w odchyleniu standardowym między narzędziami wynika z ddof, a nie z błędu.

challenge icon

Wyzwanie

Łatwy

Biolog uzyskał dwa różne odchylenia standardowe rozpiętości skrzydeł kilku nietoperzy, w cm. Kod początkowy odczytuje je do tablicy spans i obiektu Series column; jego sprawdzenie wypisuje False.

  1. Nietoperze stanowią próbę: popraw wiersz NumPy, aby oba narzędzia podawały odchylenie standardowe próby.
  2. Poniżej wypisz, o ile domyślne np.std(spans) w NumPy jest mniejsze od column.std(), z dokładnością do 2 miejsc po przecinku.

Dla rozpiętości skrzydeł 33, 27, 30, 35 i 29:

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

Spróbuj swoich sił

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)

# To sprawdzenie wypisuje False: popraw linię z NumPy, aby oba narzędzia zwracały odchylenie standardowe próby
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}")

# Napisz swój kod poniżej
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Statystyka w uczeniu maszynowym

Poćwicz samodzielnie: Kompilator Python online