我的问题是如何使用 PYMC3 包进行条件概率模型。
我有一组数据a_observed、b_observed、c_observed,我想找出它们之间的关系。我怀疑a,b,c都是正态分布,b取决于a,c取决于a,b。我需要找到参数。
到目前为止,我有:
with model:
# define priors
muA = pm.Uniform('muA', lower=0, upper=24)
muB = pm.Uniform('muB', lower=0, upper=24)
muC = pm.Uniform('muC', lower=0, upper=24)
sigmaA = pm.Uniform('sigmaA', lower=0, upper=1000)
sigmaB = pm.Uniform('sigmaB', lower=0, upper=1000)
sigmaC = pm.Uniform('sigmaC', lower=0, upper=1000)
distributionA = pm.Normal('a', mu = muA, sd = sigmaA, observed = a_observed)
distributionB = pm.Normal('b', mu = muB, sd = sigmaB, observed = b_observed)
distributionC = pm.Normal('c', mu = muC, sd = sigmaC, observed = c_observed)
start = pm.find_MAP()
step = pm.Slice()
现在我想让A独立,B|A,C|A,B。PYMC3 中执行此操作的最佳方法是什么?我在这里看到了 lambda 函数http://healthyalgorithms.com/2011/11/23/causal-modeling-in-python-bayesian-networks-in-pymc/,但是这种方法直接给出了条件概率。
另外,我想知道将模型扩展到三个以上具有更复杂依赖关系的变量是多么容易。谢谢!