0

各試行の確率が同じであるPythonで標準的な二項分布を行う方法を知っています。私の質問は、試行確率が毎回変わる場合にどうするかです。私は以下の論文に基づいてアルゴリズムを起草していますが、標準的な方法が既にあるかどうかを確認するためにここをチェックする必要があると考えました.

http://www.tandfonline.com/doi/abs/10.1080/00949658208810534#.UeVnWT6gk6w

前もって感謝します、

ジェームズ

4

3 に答える 3

0

これはあなたが探しているものですか?

import numpy as np

def random_MN_draw(n, probs): # n=2 since binomial
    """ get X random draws from the multinomial distribution whose probability is given by 'probs' """
    mn_draw = np.random.multinomial(n,probs) # do 1 multinomial experiment with the given probs with probs= [0.5,0.5], this is a fair coin-flip
    return mn_draw 

def simulate(sim_probabilities):
    len_sim = len(sim_probabilities)
    simulated_flips = np.zeros(2,len_sim)
    for i in range(0,len_sim)
         simulated_flips(:,i) = random_MN_draw(2, sim_probabilities(i))

    # Here, at the end of the simulation, you can count the number of heads
    # in 'simulated_flips' to get your MLE's on P(H) and P(T).
于 2013-07-17T10:32:24.113 に答える
0

コイントスを 9 回行い、各フリップの P(H) がそれぞれ 0.1 .. 0.9 であるとします。!最初のフリップで表が出る確率は 0%、最後のフリップで 90%。

E(H)、表の予想数については、9 つ​​の個々の予想を合計することができます。

分布の場合、順序付けられた可能な結果を​​列挙できます (itertools.combinations_with_replacement(["H", "T"], 9))

(HHH HHH HHH) (HHH HHH HHT) ... (TTT TTT TTT)

順序付けられた結果の確率を簡単な方法で計算します。

順序付けられた結果ごとに、計算された p を使用して頭の数でインデックス付けされた defaultdict(float) をインクリメントします。

完了したら、ディクショナリ値の合計を計算し、ディクショナリ内のすべての値をその合計で割ります。

0 .. 9 回の頭が観察される可能性に対応する 10 個の値があります。

ジェリー

于 2013-07-17T18:09:06.357 に答える
0

ええと、質問は古く、pythons 数学ライブラリを十分に知らないため、答えられません。

ただし、このディストリビューションはしばしば次の名前で実行されることを知っておくと、他の読者の役に立つかもしれません。

  • ポアソン二項分布
于 2013-11-27T23:00:49.500 に答える