Я использую следующую модель для вывода модели IRT (Item Response Theory) в STAN.
Я хочу интегрировать параметр смеси для выделения определенных c групп.
Is есть ли способ реализовать в этом коде функцию STAN log_mix ()?
model <- "
data {
int<lower=0> n; // number of subjects
int<lower=0> k; // number of items
int<lower=0, upper=1> y1[n]; // manifestation variables
int<lower=0, upper=1> y2[n];
int<lower=0, upper=1> y3[n];
int<lower=0, upper=1> y4[n];
int<lower=0, upper=1> y5[n];
int<lower=0, upper=1> y6[n];
int<lower=0, upper=1> y7[n];
int<lower=0, upper=1> y8[n];
}
parameters {
vector[k] alpha;
real<lower=0> beta[k];
vector[n] x; // this is theta but its easier to see as x in the code
}
model {
// priors
x ~ normal(0,1);
alpha ~ normal(0,4);
beta ~ gamma(4,3);
// items
y1 ~ bernoulli_logit(alpha[1] + beta[1] * x);
y2 ~ bernoulli_logit(alpha[2] + beta[2] * x);
y3 ~ bernoulli_logit(alpha[3] + beta[3] * x);
y4 ~ bernoulli_logit(alpha[4] + beta[4] * x);
y5 ~ bernoulli_logit(alpha[5] + beta[5] * x);
y6 ~ bernoulli_logit(alpha[6] + beta[6] * x);
y7 ~ bernoulli_logit(alpha[7] + beta[7] * x);
y8 ~ bernoulli_logit(alpha[8] + beta[8] * x);
}
"