首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制runjags输出中的特定变量

绘制runjags输出中的特定变量
EN

Stack Overflow用户
提问于 2015-10-05 15:04:15
回答 1查看 526关注 0票数 0

在绘制runjags输出时,当许多其他变量具有相似的名称时,如何绘制单个特定变量?提供带有vars参数的引用变量名似乎并不能做到这一点(它仍然提供所有部分匹配)。

这里是一个简单的可重复的例子。

代码语言:javascript
复制
N <- 200
nobs <- 3
psi <- 0.35
p <- 0.45
z <- rbinom(n=N, size=1,prob=psi)
y <- rbinom(n=N, size=nobs,prob=p*z)

sink("model.txt")
cat("
model {
for (i in 1:N){
    z[i] ~ dbern(psi)
    pz[i] <- z[i]*p
    y[i] ~ dbin(pz[i],nobs) 
    } #i
psi ~ dunif(0,1)
p ~ dunif(0,1)
}                                                   
",fill = TRUE)
sink()

m <-list(y=y,N=N,nobs=nobs)
inits <- function(){list(psi=runif(1),p=runif(1),z=as.numeric(y>0))}  
parameters <- c("p","psi")

ni <- 1000
nt <- 1
nb <- 200
nc <- 3
ad <- 100

library(runjags)

out <- run.jags(model="model.txt",monitor=parameters,data=m,n.chains=nc,inits=inits,burnin=nb,
    sample=ni,adapt=ad,thin=nt,modules=c("glm","dic"),method="parallel")

windows(9,4)
plot(out,plot.type=c("trace","histogram"),vars="p",layout=c(1,2),new.window=FALSE)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-07 13:35:09

应该有可能双引号变量得到一个完全匹配,但这似乎是坏的。也应该可以为vars指定一个逻辑向量,但是对于绘图方法来说,这似乎被打破了……多尴尬啊。不过,以下几点确实有效:

代码语言:javascript
复制
# Generate a logical vector to use with matching variable names:
variables <- extract(out, 'stochastic')
variables['psi'] <- FALSE

# Add summary statistics only for the specified variables and pre-draw plots:
out2 <- add.summary(out, vars=variables, plots=TRUE)

plot(out2, plot.type=c("trace","histogram"))

我将修复下一个版本的其他问题。

哑光

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

https://stackoverflow.com/questions/32951832

复制
相关文章

相似问题

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