【发布时间】:2017-04-10 16:43:54
【问题描述】:
我仍然是 PyMC3 的菜鸟,所以这个问题可能我很幼稚,但我不知道如何在 pymc3 中翻译这个 pymc2 代码。特别是我不清楚如何翻译 R 函数。
beta = pymc.Normal('beta', mu=0, tau=1.0e-4)
s = pymc.Uniform('s', lower=0, upper=1.0e+4)
tau = pymc.Lambda('tau', lambda s=s: s**(-2))
### Intrinsic CAR
@pymc.stochastic
def R(tau=tau, value=np.zeros(N)):
# Calculate mu based on average of neighbors
mu = np.array([sum(W[i]*value[A[i]])/Wplus[i] for i in xrange(N)])
# Scale precision to the number of neighbors
taux = tau*Wplus
return pymc.normal_like(value, mu, taux)
@pymc.deterministic
def M(beta=beta, R=R):
return [np.exp(beta + R[i]) for i in xrange(N)]
obsvd = pymc.Poisson("obsvd", mu=M, value=Y, observed=True)
model = pymc.Model([s, beta, obsvd])
来自https://github.com/Youki/statistical-modeling-for-data-analysis-with-python/blob/945c13549a872d869e33bc48082c42efc022a07b/Chapter11/Chapter11.rst 和http://glau.ca/?p=340 的代码
你能帮帮我吗?谢谢
【问题讨论】:
-
pymc3 文档确实很痛苦...我花了几天时间将一些代码从 pymc2 改编为 pymc3...你还有兴趣吗?
-
是的,我也有同样的担忧。我不想开始另一个问题,因为这正是引起了我的关注。所以我改为提供赏金。我的具体问题:我不明白如何将可以返回自动相关结果的
@deterministic函数(如[np.exp(beta + R[i]) for i in xrange(N)])转换为PyMC3 等效项。 PyMC3怎么写def M? -
@MikeWilliamson PyMC 文档中有 CAR 的实现。我在这里加了一个。
-
@Nathan 谢谢!!不幸的是,我的赏金过期了……我不得不在工作中完成另一项任务,无法重新访问。我希望我能给你赏金。 :(
-
@MikeWilliamson 没关系!很高兴您的问题得到解决。
标签: python bayesian pymc3 pymc