二项式过程的贝叶斯更新
Bayesian updating on binomial process
我是 运行 一个模拟,其中代理根据二项式 (n, p) 过程的结果更新信念。那部分就像
from numpy.random import binomial, random
from scipy.misc import comb
import math
eps = 0.01
belief = random()
n = 1100
result = binomial(n, 0.5 + eps)
prob2 = comb(n, result)*math.pow(0.5 + eps, result)*math.pow(.5 - eps, n - result)
prob1 = comb(n, result)*math.pow(0.5 - eps, result)*math.pow(.5 + eps, n - result)
bottom = prob2*belief + prob1*(1 - belief)
top = prob2*belief
bayes = top/bottom
问题是,如果 n 大于大约 1000,comb(n, result) 的结果是 "inf",因此其余的计算将停止工作。
如果您在数学上简化似然比表达式,您会发现 comb(n, result)
抵消了。您根本不需要包含它。
我是 运行 一个模拟,其中代理根据二项式 (n, p) 过程的结果更新信念。那部分就像
from numpy.random import binomial, random
from scipy.misc import comb
import math
eps = 0.01
belief = random()
n = 1100
result = binomial(n, 0.5 + eps)
prob2 = comb(n, result)*math.pow(0.5 + eps, result)*math.pow(.5 - eps, n - result)
prob1 = comb(n, result)*math.pow(0.5 - eps, result)*math.pow(.5 + eps, n - result)
bottom = prob2*belief + prob1*(1 - belief)
top = prob2*belief
bayes = top/bottom
问题是,如果 n 大于大约 1000,comb(n, result) 的结果是 "inf",因此其余的计算将停止工作。
如果您在数学上简化似然比表达式,您会发现 comb(n, result)
抵消了。您根本不需要包含它。