gpt4 book ai didi

jags - 如何使用 jags() 函数设置随机种子?

转载 作者:行者123 更新时间:2023-12-01 13:31:13 27 4
gpt4 key购买 nike

每次我使用 jags() 函数运行我的 JAGS 模型时,我都会得到非常不同的拟合参数值。但是,我希望其他人重现我的结果。

我尝试添加 set.seed(123),但没有帮助。 This link描述了如何使用 run.jags() 函数实现我的目标。我想知道如何使用 jags() 做类似的事情。谢谢!

下面是我在 R 中的模型:

##------------- read data -------------##
m <- 6
l <- 3
node <- read.csv("answer.csv", header = F)
n <- nrow(node)

# values of nodes
## IG
IG <- c(c(0.0, 1.0, 0.0), c(0.0, 0.0, 1.0), c(1.0, 0.0, 0.0), c(1.0, 0.0, 0.0), c(0.0, 1.0, 0.0), c(0.0, 0.0, 1.0))
IG <- matrix(IG, nrow=6, ncol=3, byrow=T)
V_IG <- array(0, dim=c(n, m, l))
for (i in 1:n){
for (j in 1:m){
for (k in 1:l)
{
V_IG[i,j,k] <- IG[j,k] # alternatively, V[i,j,k] <- PTS[j,k]
}
}
}

## PTS
PTS <- c(c(1.0, 0.5, 0.0), c(1.0, 0.0, 0.5), c(1.0, 1.0, 0.0), c(1.0, 0.0, 1.0), c(0.0, 0.5, 1.0), c(0.0, 1.0, 0.5))
PTS <- matrix(PTS, nrow=m, ncol=3, byrow=T)
V_PTS <- array(0, dim=c(n, m, l))
for (i in 1:n){
for (j in 1:m){
for (k in 1:l)
{
V_PTS[i,j,k] <- PTS[j,k]
}
}
}

##------------- fit model -------------##
set.seed(123)
data <- list("n", "m", "V_IG", "V_PTS", "node")
myinits <- list(list(tau = rep(1,n), theta = rep(0.5,n)))
parameters <- c("tau", "theta")

samples <- jags(data, inits=myinits, parameters,
model.file ="model.txt", n.chains=1, n.iter=10000,
n.burnin=1, n.thin=1, DIC=T)

还有我的模型文件model.txt:

model{
# data: which node (1, 2, 3) was chosen by each child in each puzzle
for(i in 1:n) # for each child
{
for (j in 1:m) # for each problem
{
# node chosen
node[i,j] ~ dcat(mu[i,j,1:3])
mu[i,j,1:3] <- exp_v[i,j,1:3] / sum(exp_v[i,j,1:3])
for (k in 1:3) {
exp_v[i,j,k] <- exp((V_IG[i,j,k]*theta[i] + V_PTS[i,j,k]*(1-theta[i]))/tau[i])
}
}
}
# priors on tau and theta
for (i in 1:n)
{
tau[i] ~ dgamma(0.001,0.001)
theta[i] ~ dbeta(1,1)
}
}

最佳答案

我知道这是一个较老的问题,但对于任何使用 jagsUI 包的人来说,jags() 函数都有一个用于设置种子的参数,'seed = ####'。因此,例如,JAGS 调用可能是;

    np.sim1 <- jags(data = data1, parameters.to.save =  params1, model.file = "mod1_all.txt", 
n.chains = nc, n.iter = ni, n.burnin = nb, n.thin = nt, seed = 4879)

summary(np.sim1)

关于jags - 如何使用 jags() 函数设置随机种子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45872938/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com