各試行の確率が同じであるPythonで標準的な二項分布を行う方法を知っています。私の質問は、試行確率が毎回変わる場合にどうするかです。私は以下の論文に基づいてアルゴリズムを起草していますが、標準的な方法が既にあるかどうかを確認するためにここをチェックする必要があると考えました.
http://www.tandfonline.com/doi/abs/10.1080/00949658208810534#.UeVnWT6gk6w
前もって感謝します、
ジェームズ
各試行の確率が同じであるPythonで標準的な二項分布を行う方法を知っています。私の質問は、試行確率が毎回変わる場合にどうするかです。私は以下の論文に基づいてアルゴリズムを起草していますが、標準的な方法が既にあるかどうかを確認するためにここをチェックする必要があると考えました.
http://www.tandfonline.com/doi/abs/10.1080/00949658208810534#.UeVnWT6gk6w
前もって感謝します、
ジェームズ
これはあなたが探しているものですか?
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).
コイントスを 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 個の値があります。
ジェリー
ええと、質問は古く、pythons 数学ライブラリを十分に知らないため、答えられません。
ただし、このディストリビューションはしばしば次の名前で実行されることを知っておくと、他の読者の役に立つかもしれません。