首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >as.mcmc中的错误应用于R中的jags()输出?

as.mcmc中的错误应用于R中的jags()输出?
EN

Stack Overflow用户
提问于 2014-10-31 22:27:52
回答 1查看 344关注 0票数 1

我刚从R2jags转自R2OpenBUGS,注意到了一些我不明白的事情。在用jags()进行仿真和用as.mcmc()转换输出后,第一个样本总是有很大的偏差,并且通常离收敛参数估计很远。使用bugs()运行相同的数据时,不会出现此示例。这几乎就像第一个样本是真正的第一个样本,从烧伤阶段。

可重复的代码,包括一个糟糕的初始估计,以在jags()的第一个示例中显示糟糕的参数,而不是bugs()输出。

代码语言:javascript
复制
require(R2jags); require(R2OpenBUGS); require(mcmcplots)

set.seed(1)
x <- rnorm(100)
y <- 2*x + rnorm(100)

jags.model <- function()
{
    # likelihood
    for( i in 1:n ){
        mu[i] <- alpha + beta * x[i]
        y[i] ~ dnorm( mu[i], tau )
    }

    # priors
    alpha ~ dnorm(0,0.001)
    beta ~ dnorm(1,0.001)

    tau ~ dgamma(1,1)
    sigma <- 1/sqrt(tau)
}

n <- length(x)

inits <- function() list( "alpha"=5,"beta"=5,"tau"=5 ) # very far initial estimate

dat <- list("x","y","n")

out.jags <- jags( dat, 
    inits=inits, model=jags.model, 
    n.iter=1000, n.thin=1, n.chains=2,
    DIC=TRUE,
    parameters.to.save=c("alpha","beta") )
codaout.jags <- as.mcmc(out.jags)

out.bugs <- bugs( dat, 
    inits=inits, model=jags.model, 
    n.iter=1000, n.thin=1, n.chains=2,
    DIC=TRUE,
    parameters.to.save=c("alpha","beta") )
codaout.bugs <- as.mcmc.bugs(out.bugs)


plot(codaout.jags)
x11(); plot(codaout.bugs)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-22 17:54:44

对于后人来说,问题是R2jags并不总是像here所讨论的那样,在一段时间内处理好烧伤。

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

https://stackoverflow.com/questions/26684335

复制
相关文章

相似问题

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