Numpy np.随机二项式(n,p,size=1000)中n和大小参数之间的差异

Numpy np.随机二项式(n,p,size=1000)中n和大小参数之间的差异,numpy,statistics,Numpy,Statistics,我无法理解np.random.binomial中n和大小参数之间的差异 N = 1200 p =0.53 q = 1000 np.random.binomial(N, p, size = q) np.random.binomial(1, p, size = q) np.random.binomial(N,p, size= q) N是试验的次数,但在上述公式中是尺寸的作用。还请解释上述三种版本的二进制代码。n和p描述发行本身大小给出结果的数量(和形状)。本手册中的示例最能说明问题: >

我无法理解np.random.binomial中n和大小参数之间的差异

N = 1200
p =0.53
q = 1000

np.random.binomial(N, p, size = q) 
np.random.binomial(1, p, size = q)
np.random.binomial(N,p, size= q)

N是试验的次数,但在上述公式中是尺寸的作用。还请解释上述三种版本的二进制代码。

n
p
描述发行本身<代码>大小给出结果的数量(和形状)。本手册中的示例最能说明问题:

>>> n, p = 10, .5 # number of trials, probability of each trial
>>> s = np.random.binomial(n, p, 1000)
# result of flipping a coin 10 times, tested 1000 times.
您将得到1000个数字向量,每个数字来自(10,0.5)二项分布

  • np.随机二项(N,p,size=q)
  • np.随机二项(1,p,大小=q)
  • np.随机二项(N,p,size=q)
  • 我可以看出,第一和第三是相似的。这两个是二项式随机数发生器

    第二个是伯努利随机数发生器


    二项式解释:

    二项式随机变量统计特定事件在固定次数的尝试或试验中发生的频率

    这里,

    • n=试验次数
    • p=在任何一次试验中发生感兴趣事件的概率
    • size=您希望运行此实验的次数
    假设,你想检查一下,如果你掷骰子10次,你会得到多少次六。 这里,

    • n=10
    • p=(1/6)#每卷获得六分的概率
    但是,你必须多次做这个实验

    让,, 在第一个实验中,你得到了36

    在第二次实验中,你得到26

    在第三个实验中,你得到26

    在Pth实验中,你得到26,这里p是大小


    伯努利的解释:

    假设你做了一个有两种可能结果的实验:成功或失败。成功发生在概率p,而失败发生在概率1-p。成功时取1,失败时取0的随机变量称为伯努利随机变量

    这里,

    • n=1,因为您需要一次检查它是成功还是失败
    • p=成功概率
    • 大小=您将检查此项的次数

    你也可以看这个,

    而且


    在概率论和统计学中,参数为n和p的二项分布是成功次数的离散概率分布(这是函数的输出,测试1次时为np.random.binomial)在一系列n个独立实验中(在您的表格中为n),每个人都会问一个是-不是的问题,每个人都有自己的布尔值结果:成功/是/真/一(概率p)或失败/否/假/零(概率q=1)− p) .

    测试不过是我们想运行这个实验的多少时间,测试=10会生成10个输出(所有表示不同的‘得到Yes’的时间都不一样)

    < p>对于一个可视化的例子,考虑下面的情节

    此分布中的可能值范围似乎是一组包含(0,1,2)的整数。 0表示在两次试验中没有成功的次数。 1表示两次试验成功率为50%的次数,即两次试验中只有一次成功。2代表所有试验成功的次数,在本例中,我们看到大约250次2/2试验成功

    数字1出现的次数似乎最高,如图的y轴所示,约为500次。x轴代表可能的结果,当我们分别将1、2、3的杆高相加时,测试总量为1000。这意味着,给定几个试验,以及所有这些试验发生的概率,我们可以这样绘制分布图

    因为在这种情况下,试验的数量是2次,并且在所有的2次试验中,每次试验发生的几率是50%,所以为了使所有试验成功,这意味着你需要试验1和2才能成功,这是25%,因为p(试验)=.5和p(试验)*p(试验)=.25或25%。要想在所有的试验中都不成功,你也只能得到25%的试验结果。 我们剩下的是50%的试验会成功,而50%不会成功。 在上面的图中用1表示。换句话说,1000次中有500次,我们进行了2次试验,其中只有一次成功,这给了我们500次成功,因为500/1000=1/2

    现在,我可以向您展示此绘图的代码:

    import numpy as np
    import matplotlib.pyplot as plt
    
    distro = np.random.binomial(2, .5, 1000)
    plt.hist(distro, 100)
    
    这基本上是说,“为我创建一个分布,这样我将有2个试验,每个试验的成功概率为50%,并运行1000个案例”——这些案例不是试验。从技术上讲,可以在第一个参数中输入100,这不会改变分布的总体情况,会改变的是密度或值的范围,即图中的条数,但会遵循相同的分布

    另一个例子:

    你认为本案的审判次数是多少

    答案大约是10,正如我们在x轴上看到的,大约有10次试验,似乎概率分布不是50%

    您认为我们测试这个场景的次数是多少

    答案是100,如果你把所有的酒吧高度加起来,结果正好是100

    事实证明,第二个图的概率分布也是50%,这意味着我们应该得到一个均匀分布,即获得5/10试验的概率是50%,4/10和6/10都有40%的概率,3/10和7/10都有30%的概率,2/10和8/10都有20%的概率等等。但我们不认为分布是均匀的原因是测试的数量仅限于100次。这是相同的概率分布,但只是更多的测试,比如说10000次

    np.random.binomial(n = 1, p = 0.5 , size = 1)
    
    array([1])
    
    np.random.binomial(n = 1, p = 0.5 , size = 2)
    
    array([1, 0])
    
    np.random.binomial(n = 3, p = 0.5 , size = 15)
    
    array([1, 0, 0, 3, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 0])