首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyMC MCMC分析- .summary()“

PyMC MCMC分析- .summary()“
EN

Stack Overflow用户
提问于 2014-06-16 16:12:05
回答 2查看 800关注 0票数 0

我是PyMC新手,在获取与我之前的数据相关的参数时遇到了一些困难,例如,均值和标准差。

我在一个名为“model.py”的文件中描述我的模型,如下所示:

代码语言:javascript
复制
    import pymc
    import numpy

    #constants
    r_div=numpy.loadtxt("r_div", comments="#", unpack=False)
    map=numpy.loadtxt("map", comments="#", delimiter=",", unpack=False)
    M_star=3*10^6;

    #data
    n=numpy.loadtxt("n")

    #priors
    alpha_0=pymc.Uniform('alpha_0end',-10,10, value=0)
    logA_0=pymc.Uniform('logA_0end',-10,10,value=-6.1246)

    #model

    @pymc.deterministic(plot=False)

    def r(logA_0=logA_0,alpha_0=alpha_0,M_star=M_star,r_div=r_div):

        r=r_div*numpy.exp(logA_0)*((numpy.exp(map[:,1])/M_star)**(alpha_0))

        return r

            #likelihood
            Distribution=pymc.Poisson('Distribution',mu=r,value=n,observed=True)

然后在ipython中使用以下脚本运行MCMC链:

代码语言:javascript
复制
            import pymc
            import model
            M=pymc.MCMC(model)
            M.sample(100000, burn=10000)
            M.summary()

在得到错误的最后命令M.summary()之前,一切似乎都正常:

AttributeError跟踪(最近一次调用)在() ->1 M.summary()

AttributeError:'MCMC‘对象没有属性’汇总‘

我确信这个链已经成功运行了,因为命令M.trace('alpha_0end')显示了那里有链元素,但是我无法得到任何关于先前的信息,比如平均值或标准差。我尝试过汇总命令的不同排列。例如: M.alpha_0end.summary()

这将有助于了解是否有一个简单的方法,以获得标准偏差和前项的均值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-17 19:32:37

我无法运行您的代码,但在这个最小的示例中,M.summary()为我工作:

代码语言:javascript
复制
In [1]: import pymc as pm

In [2]: pm.__version__
Out[2]: '2.3.2'

In [3]: X = pm.Normal('X', 0, 1)

In [4]: M = pm.MCMC(dict(X=X))

In [5]: M.sample(100000, burn=10000)
 [-----------------100%-----------------] 100000 of 100000 complete in 5.0 sec
In [6]: M.summary()

    X:

        Mean             SD               MC Error        95% HPD interval
        ------------------------------------------------------------------
        -0.0             1.003            0.003            [-1.897  2.026]


        Posterior quantiles:

        2.5             25              50              75             97.5
         |---------------|===============|===============|---------------|
        -1.961           -0.673          0.0            0.675         1.964
票数 0
EN

Stack Overflow用户

发布于 2014-07-10 22:00:21

摘要子例程于2012年2月添加(a04551094a70451a4afee4e11be8b6872e74fe46)。当时的版本号是2.2级.

如果你的pm.__version__是2.2分或更低,你有一个版本的pymc太老了,不能使用这个函数。版本2.2-测试版或更高版本应该可以工作。

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

https://stackoverflow.com/questions/24247983

复制
相关文章

相似问题

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