gpt4 book ai didi

python - 在 PyMC 中设置随机变量的界限

转载 作者:太空宇宙 更新时间:2023-11-04 10:18:10 27 4
gpt4 key购买 nike

我有一个变量A,它是伯努利分布的,A = pymc.Bernoulli('A', p_A),但我没有硬值p_A 并想对其进行采样。我知道它应该很小,所以我想使用指数分布 p_A = pymc.Exponential('p_A', 10)

但是,指数分布可以返回高于 1 的值,这将抛出 A。有没有一种方法可以限制 p_A 的输出,而不必在我自己的 @pymc.stochastic 装饰函数中重新实现伯努利或指数分布?

最佳答案

您可以使用确定性函数截断指数分布。我个人认为,如果您使用介于 0 和 1 之间的分布会更好,但要准确解决您的问题,您可以执行以下操作:

import pymc as pm
p_A = pm.Exponential('p_A',10)

@pm.deterministic
def p_B(p=p_A):
return min(1, p)

A = pm.Bernoulli('A', p_B)

model = dict(p_A=p_A, p_B=p_B, A=A)
S = pm.MCMC(model)
S.sample(1000)
p_B_trace = S.trace('p_B')[:]

关于python - 在 PyMC 中设置随机变量的界限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34094468/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com