PyMC:变量子集的汇总统计
PyMC: summary statistics for a subset of variables
我正在使用 PyMC 2.3.4 并尝试获取模型变量子集的汇总统计信息,但使用文档中的方法似乎无法做到这一点。
建模代码:
import pymc
a = pymc.Normal('a',0,1)
b = pymc.Normal('b',0,1)
myModel = pymc.Model((a,b))
M = pymc.MCMC(myModel)
M.sample(1000)
根据 https://pymc-devs.github.io/pymc/database.html 上的文档,我应该能够 运行
M.a.summary() -> summary statistics for a
但是,我得到了
AttributeError: 'MCMC' object has no attribute 'a'
但是,M.summary()
给出了所有变量的汇总统计数据。
在 PyMC2 中创建模型的方法可能太多了。您使用的那个传递了一个 pymc.Node
实例的可迭代对象,不记录名称,因此该模型没有 M.a
,即使 M.nodes
包含一个名为 [=26] 的随机变量=].
如果您更喜欢以这种方式创建模型,您可以直接从 a
获取摘要,使用
a.summary()
对我来说,这会打印
a:
Mean SD MC Error 95% HPD interval
------------------------------------------------------------------
[[-0.016]] [[ 0.992]] [[ 0.031]] [-1.986 1.939]
Posterior quantiles:
2.5 25 50 75 97.5
|---------------|===============|===============|---------------|
[[-2.047]] [[-0.665]] [[-0.058]] [[ 0.672]] [[ 1.937]]
我发现有时可以使用属性 M.a
很方便,在构建模型时可以使用字典而不是列表来获取它:
M2 = pymc.MCMC({'a':a, 'b':b})
M2.sample(1000)
M2.a.summary()
我正在使用 PyMC 2.3.4 并尝试获取模型变量子集的汇总统计信息,但使用文档中的方法似乎无法做到这一点。
建模代码:
import pymc
a = pymc.Normal('a',0,1)
b = pymc.Normal('b',0,1)
myModel = pymc.Model((a,b))
M = pymc.MCMC(myModel)
M.sample(1000)
根据 https://pymc-devs.github.io/pymc/database.html 上的文档,我应该能够 运行
M.a.summary() -> summary statistics for a
但是,我得到了
AttributeError: 'MCMC' object has no attribute 'a'
但是,M.summary()
给出了所有变量的汇总统计数据。
在 PyMC2 中创建模型的方法可能太多了。您使用的那个传递了一个 pymc.Node
实例的可迭代对象,不记录名称,因此该模型没有 M.a
,即使 M.nodes
包含一个名为 [=26] 的随机变量=].
如果您更喜欢以这种方式创建模型,您可以直接从 a
获取摘要,使用
a.summary()
对我来说,这会打印
a:
Mean SD MC Error 95% HPD interval
------------------------------------------------------------------
[[-0.016]] [[ 0.992]] [[ 0.031]] [-1.986 1.939]
Posterior quantiles:
2.5 25 50 75 97.5
|---------------|===============|===============|---------------|
[[-2.047]] [[-0.665]] [[-0.058]] [[ 0.672]] [[ 1.937]]
我发现有时可以使用属性 M.a
很方便,在构建模型时可以使用字典而不是列表来获取它:
M2 = pymc.MCMC({'a':a, 'b':b})
M2.sample(1000)
M2.a.summary()