【发布时间】:2015-07-25 19:14:02
【问题描述】:
我正在尝试模拟一个过程,其中在二项式过程中使用的试验次数 n 是由非齐次泊松过程生成的。我目前正在使用 PyMC 来拟合其中的泊松部分(例如 here,没有整个封顶部分),但我不知道如何将它与二项式集成。我怎样才能使用泊松过程生成的东西并将其用于拟合二项式过程?或者有没有更好的方法使用类似的方法来做到这一点?
这是我尝试过的:
import pymc as pm
import numpy as np
t = np.arange(5)
a = pm.Uniform(name='a', value=1., lower=0, upper=10)
b = pm.Uniform(name='b', value=1., lower=0, upper=10)
@pm.deterministic
def linear(a=a, b=b):
return a * t + b
N_A = pm.Poisson(mu=linear, name='N_A')
C = pm.Beta('C', 1, 1)
obs_A = pm.Binomial('obs_A', N_A, C, observed=True, value=np.array([0,1,4,3,7])
mcmc = pm.MCMC([obs_A, C, N_A, a, b])
mcmc.sample(10000,5000)
当我尝试提取样本时,它会抛出错误
pymc.Node.ZeroProbability: Stochastic obs_A's value is outside its support, or it forbids its parents' current values.
我确定我的表述不正确,但我不确定如何。
【问题讨论】: