两个二项式绘制的组合或“按值分组和求和矩阵”

时间:2016-03-31 08:44:40

标签: python numpy scipy

考虑两个骨灰盒,EU。每一个都有圣杯和粗糙的grails。用H表示圣者。

假设我们从两个骨灰盒中抽出xeE次,xu次抽出U - 我们会找到多少圣杯?这对任何一对(xexu)都很容易解决。但我想对xexu的抽奖网格执行此操作。

  1. 使用标准软件包在Python中执行此操作的最有效方法是什么?
  2. 这是我的方法。

    import numpy as np
    import scipy.stats as stats
    binomial = stats.binom.pmf
    # define the grids of E, U to search
    numberOfE = np.arange(3)
    numberOfHolyE = np.arange(3)
    numberOfU = np.arange(5)
    numberOfHolyU = np.arange(5)
    
    # mesh it
    E, U, EH, UH = np.meshgrid(numberOfE, numberOfU, numberOfHolyE, numberOfHolyU, indexing='ij')
    
    # independent draws from both urns. Probabilities are 0.9 and 0.1
    drawsE = binomial(EH, E, 0.9)
    drawsU = binomial(UH, U, 0.1)
    
    # joint probability of being at a specific grid point
    prob = drawsE * drawsU
    totalHigh = EH + UH
    

    这是我走了多远:

    In [77]: prob[1,1,:]
    Out[77]: 
    array([[ 0.09,  0.01,  0.  ,  0.  ,  0.  ],
           [ 0.81,  0.09,  0.  ,  0.  ,  0.  ],
           [ 0.  ,  0.  ,  0.  ,  0.  ,  0.  ]])
    
    In [78]: totalHigh[1,1,:]
    Out[78]: 
    array([[0, 1, 2, 3, 4],
           [1, 2, 3, 4, 5],
           [2, 3, 4, 5, 6]])
    

    我认为,,这些矩阵意味着以下内容:

    看看totalHigh有值1的位置:如果我从两个骨灰盒中抽出一次,我从E得到一个高点的概率为0.81,从U得到一个零点,和0.01相反。这意味着,绘制一个人的总概率是从两个骨灰盒中抽出一次是0.82

    这让我想到了第二个问题:

    1. 有条件地这样做,如何有效地总结这些概率,以前两个维度为条件?我实际上想要将这些4D矩阵转换为3D矩阵。

0 个答案:

没有答案