我有一个描述分层模型的 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/项目中。不知道这是否有帮助。
我想要结束的是类似于这样的东西: