我不知道这是否会给你你想要的。请注意,model
代码来自使用您的代码,然后LINE
在光标处键入。其余的只是标准错误代码,除了我用于tau = rgamma(1,1)
初始值并且不知道它有多标准。我不止一次看到tau = 1
用作初始值。也许这样会更好。
实际上,我使用您正在使用rjags
的相同model
代码创建了一个对象,并添加了一条jags
语句来运行它。我承认这与将 coda 输出转换为bugs
对象不同,但它可能会导致您获得所需的plot
.
如果您所拥有的只是一个mcmc.list
并且没有model
代码,而您只是想绘制mcmc.list
,那么我的回答将无济于事。
library(R2jags)
x <- c(1, 2, 2, 4, 4, 5, 5, 6, 6, 8)
Y <- c(7, 8, 7, 8, 9, 11, 10, 13, 14, 13)
N <- length(x)
xbar <- mean(x)
summary(lm(Y ~ x))
x2 <- x - xbar
summary(lm(Y ~ x2))
# Specify model in BUGS language
sink("model1.txt")
cat("
model {
for( i in 1 : N ) {
Y[i] ~ dnorm(mu[i],tau)
mu[i] <- alpha + beta * (x[i] - xbar)
}
tau ~ dgamma(0.001,0.001)
sigma <- 1 / sqrt(tau)
alpha ~ dnorm(0.0,1.0E-6)
beta ~ dnorm(0.0,1.0E-6)
}
",fill=TRUE)
sink()
win.data <- list(Y=Y, x=x, N=N, xbar=xbar)
# Initial values
inits <- function(){ list(alpha=rnorm(1), beta=rnorm(1), tau = rgamma(1,1))}
# Parameters monitored
params <- c("alpha", "beta", "sigma")
# MCMC settings
ni <- 25000
nt <- 5
nb <- 5000
nc <- 3
out1 <- jags(win.data, inits, params, "model1.txt", n.chains = nc,
n.thin = nt, n.iter = ni, n.burnin = nb)
print(out1, dig = 2)
plot(out1)
#library(R2WinBUGS)
#plot(out1)
编辑:
根据评论,也许这样的事情会有所帮助。这条线str(new.data)
表明有大量数据可用。如果您只是尝试创建默认图的变体,那么这样做可能只是根据需要提取和子集数据的问题。这plot(new.data$sims.list$P1)
只是一个简单的例子。在不确切知道您想要什么情节的情况下,我不会尝试更具体的数据提取。如果您发布一个显示您想要的确切情节示例的图形,也许有人可以从这里获取它并发布创建它所需的代码。
顺便说一句,我建议将示例数据集的大小减少到可能三个链,并且可能不超过 30 次迭代,直到您获得所需的确切代码以获取所需的确切绘图:
load("C:/Users/mmiller21/simple R programs/test.mcmc.list.Rdata")
class(test.mcmc.list)
library(R2WinBUGS)
plot(as.bugs.array(sims.array = as.array(test.mcmc.list)))
new.data <- as.bugs.array(sims.array = as.array(test.mcmc.list))
str(new.data)
plot(new.data$sims.list$P1)
编辑:
另请注意:
class(new.data)
[1] "bugs"
然而:
class(test.mcmc.list)
[1] "mcmc.list"
这就是您帖子的标题所要求的。