Ответ 1
Я не знаю, даст ли это вам то, что вы хотите. Обратите внимание, что код model
исходил от использования вашего кода, а затем набрал LINE
курсором. Остальное является стандартным кодом ошибок, за исключением того, что я использовал tau = rgamma(1,1)
для начального значения и не знаю, как это стандарт. Не раз я видел, что tau = 1
используется как начальное значение. Возможно, это было бы лучше.
Фактически, я создал объект rjags
, используя тот же код model
, который вы использовали, и добавил оператор jags
для его запуска. Я признаю, что это не то же самое, что преобразование вывода кода в объект bugs
, но это может привести к получению желаемого plot
.
Если у вас есть код mcmc.list
и no 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)
EDIT:
Основываясь на комментариях, возможно, что-то подобное поможет. Строка 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)
EDIT:
Обратите внимание, что:
class(new.data)
[1] "bugs"
тогда:
class(test.mcmc.list)
[1] "mcmc.list"
что является заголовком ваших сообщений.