• MCS:离散随机变量——Binomial分布


    Binomial

    当变量 x x x为某个事件独立重复 n n n次,其中成功的次数时,变量 x x x为二项式分布。每次成功的概率为 p p p,变量 x x x的取值范围为[ 0 ∼ n 0 \sim n 0n]:

    P ( x ) = n ! [ x ! ( n − x ) ! ] p x ( 1 − p ) n − x , x = 0 , . . . , n P(x) = \frac{n!}{[x!(n - x)!]p^x(1 - p)^{n-x}},x = 0,...,n P(x)=[x!(nx)!]px(1p)nxn!x=0,...,n

    期望和方差:

    E ( x ) = n p E(x) = np E(x)=np
    V ( x ) = n p ( 1 − p ) V(x) = np(1 - p) V(x)=np(1p)

    累积分布函数:

    F ( x o ) = P ( x < = x o ) F(x_o) = P(x <= x_o) F(xo)=P(x<=xo)

    生成随机二项式变量的三种方式

    1. n n n 较小时
    2. Normal 近似
    3. Poisson 近似

    n n n值足够小:

    1. x = 0 x = 0 x=0
    2. For i = 1 → n i = 1 \to n i=1n:
      • 生成随机连续均匀变量: u ∼ U ( 0 , 1 ) u \sim U(0, 1) uU(0,1)
      • if u < p , x = x + 1 u < p, x = x + 1 u<p,x=x+1
    3. Return x x x

    例:设 x x x为二项式分布,且 n = 5 n = 5 n=5, p = 0.375 p = 0.375 p=0.375,生成一个随机二项式变量:

    1. 生成5个随机的均匀变量:0.28,0.94,0.71,0.63,0.32
    2. 只有两个小于 p = 0.375 p = 0.375 p=0.375
    3. x = 2 x = 2 x=2

    正态近似

    • n n n值足够大,且 p < = 0.5 , n p > 5 p <= 0.5, np > 5 p<=0.5,np>5,或者 p > 0.5 , n ( 1 − p ) > 5 p > 0.5, n(1 - p) > 5 p>0.5,n(1p)>5
    • x ∼ N [ n p , n p ( 1 − p ) ] x \sim N[np, np(1 - p)] xN[np,np(1p)]
    1. 生成随机的标准正态分布变量 z ∼ N ( 0 , 1 ) z \sim N(0, 1) zN(0,1)
    2. 通过标准正态分布生成任意正态分布: x = i n t e g e r [ n p + z n p ( 1 − p ) + 0.5 ] x = integer[np + z \sqrt{np(1 - p)} + 0.5] x=integer[np+znp(1p) +0.5]

    例:假设二项式分布的 n = 100 n = 100 n=100, p = 0.4 p = 0.4 p=0.4,生成随机的二项式变量 x x x:

    • $n = 100, p = 0.4, np = 40 > 5, 选择正态近似法
    • x ∼ N ( n p , n p ( 1 − p ) ) x \sim N(np, np(1-p)) xN(np,np(1p))
    • x ∼ N ( 40 , 4.9 ) x \sim N(40, 4.9) xN(40,4.9)
    1. 生成随机标准正态分布变量: z = 0.8 z = 0.8 z=0.8
    2. x = i n t [ n p + 0.8 × 4.9 + 0.5 ] = 44 x = int[np + 0.8 \times 4.9 + 0.5] = 44 x=int[np+0.8×4.9+0.5]=44

    泊松近似

    • n n n很大, p p p很小
    1. 泊松变量的期望记为 θ \theta θ, E ( x ) = θ = n p E(x) = \theta = np E(x)=θ=np
    2. 生成期望为 θ \theta θ的泊松变量 x x x

    例:设随机二项式变量 x x x,来自于独立重复次数为 n = 1000 n = 1000 n=1000的实验, p = 0.001 p = 0.001 p=0.001,生成该分布随机变量:

    • n p = 1 < 5 , p < 0.5 np = 1 < 5, p < 0.5 np=1<5,p<0.5,只能通过泊松分布来近似
    • θ = n p = 1 \theta = np = 1 θ=np=1

    模拟生成二项式变量

    import numpy as np
    import matplotlib.pyplot as plt
    
    • 1
    • 2
    def generate_Binomial_var(n=1, p=0.5):
        if n <= 100:
            u = np.random.uniform(0, 1, (n,))
            x = np.sum(u < p)
        if (p >= 0.1):
            z = np.random.normal(loc=0.0, scale=1.0)
            x = int(n*p + z*np.sqrt(n*p*(1 - p)) + 0.5)
        else:
            x = np.random.poisson(lam=n*p)
        return x
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

  • 相关阅读:
    Max Sum Plus Plus HDU - 1024
    【网页设计】期末大作业:化妆品主题——绿色大气的html5响应式化妆品护肤品肌肤网页设计(11页)
    idea jsp文件 高亮_有了这几款idea插件后,同事再也不叫我小白了
    【Vue】详细介绍Vue-cli部署流程
    简单的ajax任务:get和post方式提交前端用户输入信息给服务器
    React组件
    tcpdump 抓包快速上手
    vue3项目中mitt的使用
    计网小题题库整理第一轮(面向期末基础)(3)
    ray.tune调参学习笔记1:超参数优化器tuner设置
  • 原文地址:https://blog.csdn.net/u014281392/article/details/125474608