У меня есть файл STAN, описывающий иерархическую модель. Я хотел бы визуализировать эту иерархию со всеми параметрами, преобразовав код STAN в файл Graphviz DOT. Подойдет и другое графическое представление.
Рассмотрим следующий небольшой пример:
data {
int<lower=0> J; // number of items
int<lower=0> y[J]; // number of successes for j
int<lower=0> n[J]; // number of trials for j
}
parameters {
real<lower=0,upper=1> theta[J]; // chance of success for j
real<lower=0,upper=1> lambda; // prior mean chance of success
real<lower=0.1> kappa; // prior count
}
transformed parameters {
real<lower=0> alpha; // prior success count
real<lower=0> beta; // prior failure count
alpha <- lambda * kappa;
beta <- (1 - lambda) * kappa;
}
model {
lambda ~ uniform(0,1); // hyperprior
kappa ~ pareto(0.1,1.5); // hyperprior
theta ~ beta(alpha,beta); // prior
y ~ binomial(n,theta); // likelihood
}
generated quantities {
real<lower=0,upper=1> avg; // avg success
int<lower=0,upper=1> above_avg[J]; // true if j is above avg
int<lower=1,upper=J> rnk[J]; // rank of j
int<lower=0,upper=1> highest[J]; // true if j is highest rank
avg <- mean(theta);
for (j in 1:J)
above_avg[j] <- (theta[j] > avg);
for (j in 1:J) {
rnk[j] <- rank(theta,j) + 1;
highest[j] <- rnk[j] == 1;
}
}
Есть ли способ разобрать это и преобразовать в файл, похожий на язык DOT, который я могу нарисовать, чтобы визуализировать иерархию?
Я много гуглил, и самое близкое к парсеру, что я смог найти, было внутри http://gephi.github.io/ проект.. Не уверен, что это поможет.
В итоге я хочу получить нечто похожее на это: