二项分布近似模拟实验

作者: zoyanhui | 来源:发表于2016-12-02 10:23 被阅读142次

    二项分布

    • 正态近似
      如果n足够大,那么分布的偏度就比较小。在这种情况下,如果使用适当的连续性校正,那么B(n, p)的一个很好的近似是正态分布N~(np, np(1-p)).
      n越大(至少20),近似越好,当p不接近0或1时更好。不同的经验法则可以用来决定n是否足够大,以及p是否距离0或1足够远:
      一个规则是x=np和n(1 − p)都必须大于 5。

    • 泊松近似
      当试验的次数趋于无穷大,而乘积np固定时,二项分布收敛于泊松分布。因此参数为λ = np的泊松分布可以作为二项分布B(n, p)的近似,如果n足够大,而p足够小.

    模拟实验

    import random
    import matplotlib.pyplot as plt
    
    LMBDA = 1
    
    def binomial(n, p):
        sumOb = 0
        for i in range(n):
            pp = random.uniform(0,1)
            sumOb += (1 if pp < p else 0)
        return int(float(sumOb) / n * 100000)
    
    # np固定(n->无穷大,p->正无穷小),二项分布趋近于泊松分布,模拟实验
    def experimentPoison(times):
        ob = []
        for i in range(times):
            n = random.randint(80000, 100000)
            p = float(LMBDA) / n
            ob.append(binomial(n, p))
        return ob
    
    # p固定,n->无穷大,二项分布趋近于正态分布,模拟实验
    def experimentNorm(times):
        ob = []
        p = 0.3
        for i in range(times):
            n = random.randint(80000, 100000)
            tmp = binomial(n, p)
            ob.append(tmp)
        return ob
    
    # 正态模拟画图
    obNorms = experimentNorm(10000)
    plt.hist(obNorms, 50)
    plt.show()
    
    
    output_2_0.png
    # 泊松模拟画图
    obsPoison = experimentPoison(10000)
    plt.hist(obsPoison, 50)
    plt.show()
    
    output_3_0.png

    相关文章

      网友评论

        本文标题:二项分布近似模拟实验

        本文链接:https://www.haomeiwen.com/subject/niwfmttx.html