首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Uniform没有logp方法

Uniform没有logp方法
EN

Stack Overflow用户
提问于 2017-05-20 13:07:37
回答 1查看 511关注 0票数 1

我一定漏掉了什么。我可以从正态分布计算对数概率,但不能计算均匀分布:

代码语言:javascript
复制
>>> import pymc as pm
>>> with pm.Model():
...     b = pm.Normal('b', 0, 1)
...
>>> b.logp({'b': 2)
array(-2.9189385332046727)

>>> with pm.Model():
...     a = pm.Uniform('a', 0, 1)
...
>>> a.logp({'a': 0.5})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'TransformedRV' object has no attribute 'logp'
EN

回答 1

Stack Overflow用户

发布于 2017-05-22 02:50:30

PyMC3将有界分布(如均匀分布)变换为无界分布。因此,您可以要求PyMC3不转换变量:

代码语言:javascript
复制
with pm.Model() as model:
    a = pm.Uniform('a', 0, 1, transform=None)
a.logp({'a': 0.5})

或者请求转换后的变量,如下所示:

代码语言:javascript
复制
with pm.Model() as model:
    a = pm.Uniform('a', 0, 1)
model.logp({'a_interval__': 0.5})

您可能需要检查modelunobserved_RVsfree_RVs属性

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44082141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档