Generatoren voor willekeur en hackerstatistiek

Statistisch denken in Python (deel 1)

Justin Bois

Teaching Professor at the California Institute of Technology

Hackerstatistiek

  • Gebruikt gesimuleerde herhaalde metingen om kansen te berekenen.
Statistisch denken in Python (deel 1)

  ch3-2.004.png

1 Afbeelding: kunstenaar onbekend
Statistisch denken in Python (deel 1)

ch3-2.005.png

1 Afbeelding: Heritage Auction
Statistisch denken in Python (deel 1)

Kop-of-munt simuleren

ch3-2.010.png

Statistisch denken in Python (deel 1)

Bernoulli-proeven

  • Een experiment met twee uitkomsten: "succes" (True) en "mislukking" (False).
Statistisch denken in Python (deel 1)

De module np.random

import numpy as np
rng = np.random.default_rng()

rng
Generator(PCG64) at 0x7F9433D38120
Statistisch denken in Python (deel 1)

Seed voor willekeurige getallen

  • Geheel getal voor het algoritme dat willekeurige getallen maakt
  • Seed de generator alleen handmatig als je reproduceerbaarheid nodig hebt
  • Opgeven met rng = np.random.default_rng(seed)
Statistisch denken in Python (deel 1)

4 keer kop/schotel simuleren

rng = np.random.default_rng(42)

random_numbers = rng.random(size=4)
random_numbers
array([0.77395605, 0.43887844, 0.85859792, 0.69736803])
heads = random_numbers < 0.5
heads
array([False,  True, False, False])
np.sum(heads)
1
Statistisch denken in Python (deel 1)

4 keer kop/schotel simuleren

n_all_heads = 0  # Aantal proeven met 4x kop
for _ in range(10000):
     heads = np.random.random(size=4) < 0.5
     n_heads = np.sum(heads)
     if n_heads == 4:
         n_all_heads += 1

n_all_heads / 10000
0.0607
Statistisch denken in Python (deel 1)

Kansen met hackerstatistiek

  • Bepaal hoe je de data simuleert
  • Simuleer heel vaak
  • Kans ≈ fractie proeven met de gewenste uitkomst
Statistisch denken in Python (deel 1)

Laten we oefenen!

Statistisch denken in Python (deel 1)

Preparing Video For Download...