如果你有一个随机变量 $X$ 和一个函数 $f$,你可以将 $y=f(X)$ 定义为一个新的随机变量,其概率密度函数如下:
$p(y)=(f^{-1})'(y)p(x)$。有关详细信息,请参见此处。
现在我已经定义了一个随机变量 alpha,在下面的代码中具有指数分布。我想将 log(alpha) 作为新的随机变量添加到我的模型中。我应该如何在我的模型中实现它?
我已经做出了努力,但似乎这是错误的,答案中指出的原因是我使用了随机装饰器而不是确定性装饰器。但是因为后来我想在这个变量上应用 MCMC Metropolis,所以我需要它来统计!为了更清楚地说明,我想在 log(alpha) 上应用高斯建议。所以我需要向 Metropolis 函数提交随机输入。
所以这是我的模型:
import numpy as np
import pymc
lambd=1;
__all__=['alpha']
alpha=pymc.Exponential('alpha', beta=lambd)
@pymc.stochastic(plot=False)
def logalpha(value=0,c=alpha):
return np.log(c)