Hello,
I am trying to use beta regression for modeling cognitive scores and am running into the problem of very long run time for 500 iteration with 1 chain it says :
1000 transitions using 10 leapfrog steps per transition would take 47960 seconds.
My outcome is a cognitive score between 0 - 1.94, which I have transformed to lie in the interval (0,1), 0 and 1 not inclusive. And have about 4 categorical (with 2 or 3 categories) and 1 continuous predictor (age centered). the number of obervations is about 9000.
data{
int<lower = 1> N; // sample size
int<lower = 1> k; // number of auxilliary variables (independent predictors)
vector<lower = 0, upper = 1>[N] Y; // vector of outcome (dependent variable)
matrix[N, k] X; // design matrix
}
parameters{
vector[k] beta; // fixed effects (regression parameters)
real<lower = 0> phi; //dispersion parameter
}
transformed parameters{
vector[N] Xbeta;
vector[N] mu; // transformed (inverse logit) linear predictor
vector[N] p; // shape parameter 1 for beta distribution
vector[N] q; // shape parameter 1 for beta distribution
Xbeta = X * beta;
for(i in 1:N)
mu = inv_logit(Xbeta);
p = mu * phi;
q = (1 - mu) * phi;
}
model{
// priors
beta ~ normal(0, 1);
phi ~ cauchy(0, 5);
// likelihood
Y ~ beta(p, q);
}
Could some one suggest why this would be taking so long to run? I also tried using the stan_betareg function of the betareg and rstanarm packages and everything works alright (it is slow, but definitely like the stan code I’ve written).
Thanks!