Slumptalsgeneratorer och hackarstatistik

Statistiskt tänkande i Python (del 1)

Justin Bois

Teaching Professor at the California Institute of Technology

Hackarstatistik

  • Använder simulerade upprepade mätningar för att beräkna sannolikheter.
Statistiskt tänkande i Python (del 1)

  ch3-2.004.png

1 Bild: upphovsman okänd
Statistiskt tänkande i Python (del 1)

ch3-2.005.png

1 Bild: Heritage Auction
Statistiskt tänkande i Python (del 1)

Simulera myntkast

ch3-2.010.png

Statistiskt tänkande i Python (del 1)

Bernoulliförsök

  • Ett experiment med två utfall: "framgång" (True) och "misslyckande" (False).
Statistiskt tänkande i Python (del 1)

Modulen np.random

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

rng
Generator(PCG64) at 0x7F9433D38120
Statistiskt tänkande i Python (del 1)

Startvärde för slumptalsgeneratorn

  • Heltal som matas in i slumptalsgeneratorns algoritm
  • Ange ett startvärde manuellt (endast) om reproducerbarhet krävs
  • Anges med rng = np.random.default_rng(seed)
Statistiskt tänkande i Python (del 1)

Simulera 4 myntkast

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
Statistiskt tänkande i Python (del 1)

Simulera 4 myntkast

n_all_heads = 0  # Initialize number of 4-heads trials
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
Statistiskt tänkande i Python (del 1)

Sannolikheter med hackarstatistik

  • Bestäm hur data ska simuleras
  • Simulera ett stort antal gånger
  • Sannolikheten är ungefär andelen försök med det önskade utfallet
Statistiskt tänkande i Python (del 1)

Nu kör vi en övning!

Statistiskt tänkande i Python (del 1)

Preparing Video For Download...