Python Bayseian+;Pymc。在pymc中定义模型时如何调用集成

Python Bayseian+;Pymc。在pymc中定义模型时如何调用集成,python,bayesian,pymc,mcmc,Python,Bayesian,Pymc,Mcmc,我是pymc的新手。我在代码中定义模型时遇到困难。 模型涉及步长上的积分。我很困惑,因为我不知道我是否可以将一个函数定义为确定性函数,其中包含来自数据和均匀随机数(即H(哈勃常数)和O(某个常数)),的变量。我在互联网上找到的所有例子,在这些例子中,模型只涉及线性或不需要调用或定义函数的东西。我对python非常了解,因此我可以不用pymc解决这个问题,但如果我不能用pymc解决这个问题,那有什么好玩的呢。我试图通过阅读可用的代码来学习,但是没有很好的解释,我现在太困惑了 “这是一个错误” 您的

我是pymc的新手。我在代码中定义模型时遇到困难。 模型涉及步长上的积分。我很困惑,因为我不知道我是否可以将一个函数定义为确定性函数,其中包含来自数据和均匀随机数(即H(哈勃常数)和O(某个常数)),的变量。我在互联网上找到的所有例子,在这些例子中,模型只涉及线性或不需要调用或定义函数的东西。我对python非常了解,因此我可以不用pymc解决这个问题,但如果我不能用pymc解决这个问题,那有什么好玩的呢。我试图通过阅读可用的代码来学习,但是没有很好的解释,我现在太困惑了

“这是一个错误”


您的模型中到底有什么不起作用?你的问题不清楚。一个问题是您的
tau
随机变量没有
参数,这是必需的

请帮忙。我在这上面停留了很长时间。我已经添加了一个图像文件。将方程4.4输入方程4.3,这将给出模型。我不明白为什么应该以及如何给出这个“值”?所有随机变量都必须有值。回想一下,一个随机变量代表一个我们试图估计的未知变量,我们正在迭代地为它的值.okk。。。除了y_模型中的错误是什么??因为当我使用一个线性函数来检查我的代码时,它不会给出任何错误。但是对于积分来说,它会显示错误。如果不看到任何错误输出,很难判断。
This is the error
Traceback (most recent call last):
  File "5.py", line 21, in <module>
    def y_model(z=z_true,a=H,b=O ): # this is my model like in on line examples (y=mx+c kind of )
  File "/home/gaurav/anaconda/lib/python2.7/site-packages/pymc/InstantiationDecorators.py", line 250, in deterministic
    return instantiate_n(__func__)
  File "/home/gaurav/anaconda/lib/python2.7/site-packages/pymc/InstantiationDecorators.py", line 243, in instantiate_n
    return Deterministic(parents=parents, **kwds)
  File "/home/gaurav/anaconda/lib/python2.7/site-packages/pymc/PyMCObjects.py", line 442, in __init__
    verbose=verbose)
  File "/home/gaurav/anaconda/lib/python2.7/site-packages/pymc/Node.py", line 219, in __init__
    Node.__init__(self, doc, name, parents, cache_depth, verbose=verbose)
  File "/home/gaurav/anaconda/lib/python2.7/site-packages/pymc/Node.py", line 129, in __init__
    self.parents = parents
  File "/home/gaurav/anaconda/lib/python2.7/site-packages/pymc/Node.py", line 152, in _set_parents
    self.gen_lazy_function()
  File "/home/gaurav/anaconda/lib/python2.7/site-packages/pymc/PyMCObjects.py", line 453, in gen_lazy_function
    self._value.force_compute()
  File "LazyFunction.pyx", line 257, in pymc.LazyFunction.LazyFunction.force_compute (pymc/LazyFunction.c:2409)
  File "5.py", line 22, in y_model
    nd1=(1+z_true)*integrate.quad(fun,0,z_true,O)/H
  File "/home/gaurav/anaconda/lib/python2.7/site-packages/scipy/integrate/quadpack.py", line 311, in quad
    points)
  File "/home/gaurav/anaconda/lib/python2.7/site-packages/scipy/integrate/quadpack.py", line 360, in _quad
    if (b != Inf and a != -Inf):
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()