Compiling a (simple) model graph (the DAG) to a Stan (or BUGS) program

Does anyone know of tools that can take in a model graph (the DAG specifying all the conditional distributions) and at least in simple enough cases, compile the graph into a Stan/BUGS/… model?

If I were to write one - would anyone have advice on how to go about doing this?

1 Like

What language do you intend to write the graph in? I think the sort of cheeky/obnoxious answer here is that you could just write the graph in Stan… in fact, BUGS is quite literally a language for specifying the DAG. Stan is a bit more flexible, but retains that capability.

So, there’s a UI/DSL that I’m working with that outputs a graph. I could write the parser in python or R?

1 Like

How’s the DAG specified? I suppose one can turn a dagitty DAG specification into a brms formula, with additional information of data, parameters, etc.

I wish for a tool in the opposite direction: turn Stan code or brms formula into DAGs. It’d help model diagnostics and demonstration.

2 Likes

At the moment, it’s a list of nodes with some metadata (e.g. rv name, data type, range) and edges (rv to rv and what the conditional distributions are).

2 Likes

The suggestion of converting the DAGs to brms-type formulae is an excellent one! I think it might be perfect for the restricted subset of models that I’m currently using.

I believe this is what blavaan does.