CmdStan.rb
Bayesian inference for Ruby, powered by CmdStan
Installation
Add this line to your application’s Gemfile:
gem "cmdstan"
Getting Started
Create a Stan file, like bernoulli.stan
data {
int<lower=0> N;
int<lower=0,upper=1> y[N];
}
parameters {
real<lower=0,upper=1> theta;
}
model {
theta ~ beta(1,1);
y ~ bernoulli(theta);
}
Compile the model (this can take a few minutes the first time as CmdStan downloads and builds)
model = CmdStan::Model.new(stan_file: "bernoulli.stan")
Fit the model
data = {"N" => 10, "y" => [0, 1, 0, 0, 0, 0, 0, 0, 0, 1]}
fit = model.sample(data: data, chains: 5)
Summarize the results
fit.summary
Load a compiled model
model = CmdStan::Model.new(exe_file: "bernoulli")
Check out Strata for shipping models
Maximum Likelihood Estimation
mle = model.optimize(data: data)
mle.optimized_params
Reference
Check if CmdStan is installed
CmdStan.cmdstan_installed?
Install CmdStan manually
CmdStan.install_cmdstan
Credits
This library is modeled after the CmdStanPy API.
History
View the changelog
Contributing
Everyone is encouraged to help improve this project. Here are a few ways you can help:
- Report bugs
- Fix bugs and submit pull requests
- Write, clarify, or fix documentation
- Suggest or add new features
To get started with development:
git clone https://github.com/ankane/cmdstan-ruby.git
cd cmdstan-ruby
bundle install
bundle exec rake test