# Confirmatory Factor Analysis Model

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?

Hi

I previosuly showed how to estimate one oif these models in Stan, with normal likelihoods. So you can work from it and adjust the likelihoods to gamma and beta for your case

https://discourse.mc-stan.org/t/non-convergence-of-latent-variable-model/12450/13?u=mauricio_garnier-villarre

Thank you!