Generadores de números aleatorios y estadísticas hacker

Pensamiento estadístico en Python (Parte 1)

Justin Bois

Teaching Professor at the California Institute of Technology

Estadísticas hacker

  • Usa mediciones simuladas repetidas para calcular probabilidades.
Pensamiento estadístico en Python (Parte 1)

  ch3-2.004.png

1 Imagen: autor desconocido
Pensamiento estadístico en Python (Parte 1)

ch3-2.005.png

1 Imagen: Heritage Auction
Pensamiento estadístico en Python (Parte 1)

Simulación de lanzamientos de moneda

ch3-2.010.png

Pensamiento estadístico en Python (Parte 1)

Ensayos de Bernoulli

  • Experimento con dos opciones: "éxito" (True) y "fallo" (False).
Pensamiento estadístico en Python (Parte 1)

El módulo np.random

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

rng
Generator(PCG64) at 0x7F9433D38120
Pensamiento estadístico en Python (Parte 1)

Semilla aleatoria

  • Entero que alimenta el algoritmo aleatorio
  • Solo pon semilla si necesitas reproducibilidad
  • Se especifica con rng = np.random.default_rng(seed)
Pensamiento estadístico en Python (Parte 1)

Simular 4 lanzamientos de moneda

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
Pensamiento estadístico en Python (Parte 1)

Simular 4 lanzamientos de moneda

n_all_heads = 0  # Inicializa el nº de ensayos con 4 caras
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
Pensamiento estadístico en Python (Parte 1)

Probabilidades con estadísticas hacker

  • Define cómo simular los datos
  • Simula muchísimas veces
  • La probabilidad ≈ fracción de ensayos con el resultado de interés
Pensamiento estadístico en Python (Parte 1)

¡Vamos a practicar!

Pensamiento estadístico en Python (Parte 1)

Preparing Video For Download...