CmdStan.rb

Bayesian inference for Ruby, powered by CmdStan

Build Status

Installation

Add this line to your application’s Gemfile:

gem 'cmdstan'

Installation can take a few minutes as CmdStan downloads and builds.

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

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

Maximum Likelihood Estimation

mle = model.optimize(data: data)
mle.optimized_params

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:

To get started with development:

git clone https://github.com/ankane/cmdstan.git
cd cmdstan
bundle install
bundle exec ruby ext/cmdstan/extconf.rb
bundle exec rake test