【Rでベイズ統計モデリング#1】Stanのインストールと基礎

記事の目的

Stanのインストールから、基礎までを解説していきます。

 

目次

  1. rstanのインストール
  2. Stanファイル
  3. 利用例

 

1 rstanのインストール

1.1 コード

# 1 rstanのインストール
## 1.1 rstanのインストール
install.packages("rstan", repos='https://cloud.r-project.org/', dependencies = TRUE)
library(rstan)

## 1.2 C++の確認
pkgbuild::has_build_tools(debug=TRUE)

 

1.2 解説

StanをRで利用する際に必要なものは「rstan」と「C++」の二つである。Windowsの場合は上記のコードを実行することでインストールすることができます。Macの場合は、以上のコードを実行する前に「C++」の必要なものをインストールする必要があります。例えば、ターミナルで「xcode-select –install」を実行する必要があります。

 

2 Stanファイル

2.1 Stanファイルの作成

RStudioの右上のプラスボタンから作成することができます。

 

2.2 Stanファイルのデフォルト

//
// This Stan program defines a simple model, with a
// vector of values 'y' modeled as normally distributed
// with mean 'mu' and standard deviation 'sigma'.
//
// Learn more about model development with Stan at:
//
//    http://mc-stan.org/users/interfaces/rstan.html
//    https://github.com/stan-dev/rstan/wiki/RStan-Getting-Started
//

// The input data is a vector 'y' of length 'N'.
data {
  int<lower=0> N;
  vector[N] y;
}

// The parameters accepted by the model. Our model
// accepts two parameters 'mu' and 'sigma'.
parameters {
  real mu;
  real<lower=0> sigma;
}

// The model to be estimated. We model the output
// 'y' to be normally distributed with mean 'mu'
// and standard deviation 'sigma'.
model {
  y ~ normal(mu, sigma);
}

 

3 Stanの利用例

3.1 コード

# 3 Stanの利用例
# 3.1 Stanの効率化
rstan_options(auto_write=TRUE)
options(mc.cores=parallel::detectCores())

# 3.2 sampleデータ
set.seed(1)
data <- rnorm(100, 50, 10)
dlist <- list(N=100, y=data)

# 3.3 Stanの利用
mcmc_result <- stan(file="1.sample.stan", data=dlist, seed=1)
mcmc_result

 

3.2 実行結果