随机数生成器与黑客统计

Python 中的统计思维(第 1 部分)

Justin Bois

Teaching Professor at the California Institute of Technology

黑客统计

  • 用重复模拟来计算概率。
Python 中的统计思维(第 1 部分)

  ch3-2.004.png

1 图片:作者不详
Python 中的统计思维(第 1 部分)

ch3-2.005.png

1 图片:Heritage Auction
Python 中的统计思维(第 1 部分)

模拟抛硬币

ch3-2.010.png

Python 中的统计思维(第 1 部分)

伯努利试验

  • 只有两种结果的试验:"成功"(True)和"失败"(False)。
Python 中的统计思维(第 1 部分)

np.random 模块

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

rng
Generator(PCG64) at 0x7F9433D38120
Python 中的统计思维(第 1 部分)

随机种子

  • 输入到随机数算法的整数
  • 仅在需要可复现时手动设定随机种子
  • rng = np.random.default_rng(seed) 指定
Python 中的统计思维(第 1 部分)

模拟抛硬币 4 次

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
Python 中的统计思维(第 1 部分)

模拟抛硬币 4 次

n_all_heads = 0  # 初始化4次全为正面的次数
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
Python 中的统计思维(第 1 部分)

黑客统计求概率

  • 确定如何模拟数据
  • 重复模拟很多次
  • 概率≈出现目标结果的试验占比
Python 中的统计思维(第 1 部分)

Passons à la pratique !

Python 中的统计思维(第 1 部分)

Preparing Video For Download...