PyMC分析摘要()

2024-09-27 09:29:01 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我在一个名为'模型.py“就像这样:

    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链:

^{pr2}$

在最后一个命令M.summary()出现错误之前,一切似乎都正常:


AttributeError回溯(最近一次调用) 在() ----&1 M.总结()

AttributeError:“MCMC”对象没有属性“summary”

我确信链已经成功运行了,因为命令M.trace('alpha_0end')[:]显示那里有链元素,但我无法获得任何关于先前的信息,例如平均值或标准偏差。我试过对summary命令进行不同的排列。例如:M.alpha_0结束总结()

知道是否有一个简单的方法可以得到标准差和先验平均值,这将是很有帮助的。在


Tags: 命令alphadivnumpyfalsemap参数value
2条回答

我无法运行您的代码,但是M.summary()在这个最小的示例中对我有效:

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

摘要子程序于2012年2月添加(a04551094a70451a4afee4e11be8b6872e74fe46)。当时的版本号是2.2-grad。在

如果您的pm.__version__是2.2-grad或更低,那么您的pymc版本太旧,无法使用此函数。2.2-beta版或更高版本应该可以工作。在

相关问题 更多 >

    热门问题