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!