A while ago above question came up on the Julia MCMC issue list (
https://github.com/JuliaStats/MCMC.jl/issues/45 ).
I have no idea how much interest there is in such an interface, but I wanted it
at least for my own use, in addition to a similar interface to Jags (which I'm
working on), and of course Julia's own MCMC.jl is readily available from
METADATA.
Stan.jl is an initial version of such an interface. It is assumed users have
some experience with Julia (REPL, iJulia, LightTable, etc.) and some
familiarity with Stan script and data files.
To test it, three steps are needed:
1. Install CmdStan as described in the Getting Started sections 2.2, 2.3 (and
2.4 to test it) of the CmdStan Interface User's Guide (Version 2.3.0, Jun 20th,
2014).
2. Set the environment variable STAN_HOME to point to the directory where
CmdStan was downloaded, e.g. on OSX I added to my .bash_profile:
export STAN_HOME=/Users/rob/Projects/Stan/cmdstan/
launchctl setenv STAN_HOME /Users/rob/Projects/Stan/cmdstan/
The launchctl line (on OSX) will typically only be needed for e.g.
LightTable and similar apps that do not inherit the full shell environment.
3. Install Stan.jl:
Julia > 'Pkg.add("Stan")' .
To test the setup:
Julia > Pkg.test("Stan")
The README.md file in the Stan.jl package contains a walk-through example,
somewhat similar to section 2.4 of the CmdStan Interface User's Guide.
This is a first version of Stan.jl and no doubt will need tweaking (and more!).
I can't test on non-OSX platforms either, so I will need help to iron out
issues on those platforms.
Dependent on the level of interest and feedback ( please file requests/issues
at https://github.com/goedman/Stan.jl/issues ), additional features will be
added as time permits or through 'Pull Requests'.
R and Python are in a very different stage of their life cycle compared to
Julia and Stan, so I have opted to keep the package lightweight to track
changes in both Julia and Stan.
The two primary features currently implemented are generating a Model() to be
used to automatically generate the command to execute a Stan script and the use
of make to minimize the number of compilations required.
This Stan.jl version cannot activate sub-parts of Stan, like R can through
Rcpp. By default Stan.jl runs 4 chains when sampling.
Regards,
Rob J. Goedman
[email protected]