Hi everyone,
I’m a newbie Stan programmer and I am trying to fit a confirmatory factor analysis model. I programmed the model in Jags, but I am having a difficult time getting it converge. I’ve also looked into packages like blavaan
but I need to fit the model with beta and gamma likelihoods. Here is my Jags code:
model {
# Main Components
for (i in 1:n) {
# Latent Variable
concentration[i] ~ dnorm(0, 1)
# Simpson's Diversity Index Model
simpson_d[i] ~ dbeta(alpha1[i], beta1[i])
alpha1[i] <- mu1[i] * phi1
beta1[i] <- (1 - mu1[i]) * phi1
logit(mu1[i]) <- a[1] + beta * concentration[i]
# Shannon's Entropy
entropy[i] ~ dgamma(shape, shape / mu2[i])
log(mu2[i]) <- a[2] - b[2] * concentration[i]
# Herfindal Index
hhi[i] ~ dbeta(alpha2[i], beta2[i])
alpha2[i] <- mu3[i] * phi2
beta2[i] <- (1 - mu3[i]) * phi2
logit(mu3[i]) <- a[3] + b[3] * concentration[i]
# Berger Parker Index
berger_parker_d[i] ~ dbeta(alpha3[i], beta3[i])
alpha3[i] <- mu4[i] * phi3
beta3[i] <- (1 - mu4[i]) * phi3
logit(mu4[i]) <- a[4] + b[4] * concentration[i]
}
# Model Constraints
beta <- 1
# Priors
for (j in 1:4) {
a[j] ~ dnorm(0, 0.1)
}
for (j in 2:4) {
b[j] ~ dgamma(0.1, 0.1)
}
shape ~ dgamma(0.1, 0.1)
phi1 ~ dgamma(0.1, 0.1)
phi2 ~ dgamma(0.1, 0.1)
phi3 ~ dgamma(0.1, 0.1)
}
Could someone help me translate this to Stan?