1

我有一个描述分层模型的 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/项目中。不知道这是否有帮助。

我想要结束的是类似于这样的东西: 克鲁施克

4

1 回答 1

2

Stan 存储库中没有相应的工具。部分原因是,与 BUGS 系列不同,Stan 不需要这样的图表来操作。但它们是很好的可视化工具,所以如果你写了一个转换器,我相信会有兴趣使用它。我的猜测是阻力最小的路径将涉及将 .stan 文件转换为 PyMC 预期的格式并使用它们的绘图功能。

于 2015-03-11T07:13:40.843 回答